Language Transformations in the Classroom

Matteo Cimini
(University of Massachusetts Lowell)
Benjamin Mourad
(University of Massachusetts Lowell)

Language transformations are algorithms that take a language specification in input, and return the language specification modified. Language transformations are useful for automatically adding features such as subtyping to programming languages (PLs), and for automatically deriving abstract machines.

In this paper, we set forth the thesis that teaching programming languages features with the help of language transformations, in addition to the planned material, can be beneficial for students to help them deepen their understanding of the features being taught.

We have conducted a study on integrating language transformations into an undergraduate PL course. We describe our study, the material that we have taught, and the exam submitted to students, and we present the results from this study. Although we refrain from drawing general conclusions on the effectiveness of language transformations, this paper offers encouraging data. We also offer this paper to inspire similar studies.

In Ornela Dardha and Valentina Castiglioni: Proceedings Combined 28th International Workshop on Expressiveness in Concurrency and 18th Workshop on Structural Operational Semantics (EXPRESS/SOS 2021), Paris, France (online event), 23rd August 2021, Electronic Proceedings in Theoretical Computer Science 339, pp. 43–58.
Published: 23rd August 2021.

ArXived at: https://dx.doi.org/10.4204/EPTCS.339.6 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org