Language Transformations in the Classroom

by   Matteo Cimini, et al.

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.


page 1

page 2

page 3

page 4


From Theory to Systems: A Grounded Approach to Programming Language Education

I present a new approach to teaching a graduate-level programming langua...

Catalogs of C and Python Antipatterns by CS1 Students

Understanding students' programming misconceptions is critical. Doing so...

Layer by layer - Combining Monads

We develop a method to incrementally construct programming languages. Ou...

Design of Classes I

The use of functional programming languages in the first programming cou...

Incremental Parametric Syntax for Multi-Language Transformation

We present a new approach for building source-to-source transformations ...

Optimizing Space of Parallel Processes

This paper is a contribution to exploring and analyzing space-improvemen...

Retentive Lenses

Based on Foster et al.'s lenses, various bidirectional programming langu...