A new practicum in compiler construction

This article introduces a compiler construction practicum based on the implementation of a compiler for a small C‐like language. The compiler has three phases, viz., lexical analysis, syntax analysis, and intermediate code generation. It uses some venerable principles of compiler construction like recursive descent parsing, syntax directed translation, and backpatching. The practicum is appropriate for pedagogical purposes because of its balanced design and the availability of an open source reference implementation of the compiler with a source code size of 2.2 KLOC only. © 2011 Wiley Periodicals, Inc. Comput Appl Eng Educ 22:429–441, 2014; View this article online at wileyonlinelibrary.com/journal/cae; DOI 10.1002/cae.10.1002/cae.20566

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

[2]  A. C. L. Barnard Planning and experience with a one-quarter course on compiler writing using Gries' book and structured programming , 1975, SGCS.

[3]  Elaine R Milito,et al.  Compiler construction: a course outline and project description , 1986, SGCS.

[4]  Martin Ruckert,et al.  Teaching compiler construction and language design: making the case for unusual compiler projects with postscript as the target language , 2007, SIGCSE.

[5]  Harbans L. Sathi,et al.  A project-based course in compiler construction , 1986, SIGCSE '86.

[6]  Bill Appelbe Teaching Compiler Development , 1979, SIGCSE '79.

[7]  Abdulaziz Ghuloum An Incremental Approach to Compiler Construction , 2006 .

[8]  José de Oliveira Guimarães Learning compiler construction by examples , 2007, SGCS.

[9]  Norman Neff OO design in compiling an OO language , 1999, SIGCSE '99.

[10]  Andrew Meneely,et al.  Fifteen compilers in fifteen days , 2006, SIGCSE '06.

[11]  Frank Friedman,et al.  An undergraduate compiler laboratory , 1979, SIGCSE '79.

[12]  David Furcy,et al.  Bantam Java compiler project: experiences and extensions , 2010 .

[13]  Pinaki Chakraborty A language for easy and efficient modeling of Turing machines , 2007 .

[14]  James S. Daley A laboratory approach to teaching compiler writing , 1978, SIGCSE '78.

[15]  Pinaki Chakraborty,et al.  A compiler‐based toolkit to teach and learn finite automata , 2013, Comput. Appl. Eng. Educ..

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

[17]  Pinaki Chakraborty,et al.  Teaching purpose compilers: an exercise and its feedback , 2011, INROADS.

[18]  Marc L. Corliss,et al.  Bantam: a customizable, java-based, classroom compiler , 2008, SIGCSE '08.

[19]  Abdul Sattar,et al.  Develop a compiler in Java for a compiler design course , 2007, SGCS.

[20]  Michael Lorenz,et al.  NARPL: A solution to the student compiler project problem , 1989, SIGP.

[21]  Charles E. Hughes,et al.  ORACLE a tool for learning compiler writing , 1977, SIGCSE '77.

[22]  Kenneth A. Lambert,et al.  Parsing tinyada in a programming language design course , 1989, SGCS.

[23]  Tyson R. Henry Teaching compiler construction using a domain specific language , 2005, SIGCSE.

[24]  Lawrence A. Coon A sequence of lab exercises for an introductory compiler construction course , 1996, SGCS.

[25]  R. N. Chanon Compiler construction in an undergraduate course: some difficulties , 1975, SGCS.

[26]  Shweta Taneja,et al.  An Optimizing Compiler for Turing Machine Description Language , 2012 .

[27]  Kenneth A. Lambert,et al.  Compiling Tinyturing in a compiler construction course , 1990, SGCS.

[28]  Christian Trefftz,et al.  Using XML in a compiler course , 2004, ITiCSE '04.

[29]  Henry D. Shapiro,et al.  A new approach to teaching a first course in compiler construction , 1976, SIGCSE '76.

[30]  E. F. Elsworth,et al.  The MSL compiler writing project , 1992, SGCS.

[31]  Richard J. Reid A toolkit for individualized compiler-writing projects , 1990, SIGCSE '90.

[32]  Mark Temte A compiler construction project for an object-oriented language , 1992, SIGCSE '92.

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

[34]  R. P. van de Riet The little language compiler course project , 1979, SGCS.