Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

Cool: A Portable Project for Teaching Compiler Construction Alexander Aiken \Lambda

Summary: Cool: A Portable Project for Teaching Compiler Construction
Alexander Aiken \Lambda
EECS Department
University of California, Berkeley
1 Introduction
The compiler course is a fixture of undergraduate computer science education. Most CS programs offer a
course on compilers that includes a substantial project where students write a compiler for a small pro­
gramming language. The project often serves two distinct purposes: it teaches something about language
design and compiler implementation, and it gives students the experience of building a substantial soft­
ware system. A compiler project is the most complex software engineering task many students complete
in an undergraduate program.
Unfortunately, developing a compiler project is labor intensive and time consuming, as it incorporates
all of the problems of designing and implementing a programming language. Using a ``real'' language
(meaning any existing programming language that has a significant number of users) does not significantly
simplify the problem, because all such languages are too large to be implemented fully by undergraduates
in a single course---in practice, using a real language is a choice to use a subset of a real language, which
poses a substantial design problem in itself. Designing the language to be implemented is just the first
problem in creating a course project, however. Precise specifications for the project must be written,
any supporting software must be designed, implemented, tested, and documented, handouts must be


Source: Aiken, Alex - Department of Computer Science, Stanford University


Collections: Computer Technologies and Information Sciences