Making compiler construction projects relevant to core curriculums

Having 300 students a year implement a compiler is a debatable enterprise, since the industry will certainly not recruit them for this competence. Yet we made that decision five years ago, for reasons not related to compiler construction. We detail these motivations, the resulting compiler design, and how we manage the assignment. The project meets its goals, since the majority of former students invariably refer to it as the project that taught them the most.

[1]  Andrew W. Appel,et al.  Modern Compiler Implementation in ML , 1997 .

[2]  Chris Lattner,et al.  Architecture for a Next-Generation GCC , 2004 .

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Francis Maes Program Templates: Expression Templates Applied to Program Evaluation , 2003 .

[5]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[6]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[7]  John Aycock MBL: A LANGUAGE FOR TEACHING COMPILER CONSTRUCTION , 1995 .

[8]  John Aycock,et al.  The ART of compiler construction projects , 2003, SIGP.

[9]  James R. Larus,et al.  Specifying Instructions'' Semantics Using CSDL (Preliminary Report) , 1997 .

[10]  C Haythornwaite,et al.  Gamma, E., Helm, R., Johnson, R. & Vlissides, J. Design Patterns: Elements of Reusable Object Oriented Software. New York: Addison-Wesley, 1995. , 2002 .

[11]  Keith D. Cooper,et al.  Engineering a Compiler , 2003 .

[12]  Andrew W. Appel,et al.  Modern Compiler Implementation in Java , 1997 .

[13]  Saumya K. Debray Making compiler design relevant for students who will (most likely) never design a compiler , 2002, SIGCSE '02.

[14]  Alexander Aiken,et al.  Cool: a portable project for teaching compiler construction , 1996, SIGP.

[15]  Doug Baldwin A compiler for teaching about compilers , 2003, SIGCSE.