A new compiler construction textbook
   published by Addison–Wesley,
   an imprint of Pearson
Buy this book

Charles N. Fischer
Ron K. Cytron
Richard LeBlanc, Jr.

© 2010

Source code for labs and studios
The code for the book's labs and studios is intended for installation in eclipse, as follows: Eclipse should import all of the projects into your workspace. Some may have red flags until you follow the directions associated with that lab or studio.

About this web site:
This site is meant to accompany the text book Crafting a Compiler. The site primarily features resources that supplement the text through active learning and laboratory exercises.

Studio sessions (active learning)
There is evidence to suggest that active learning sessions can enhance a student's interest in a subject and improve retention of subject material. Such sessions are typically collaborative in nature, fostering team work and encouraging sharing of ideas and approaches.

This web site contains studio sessions for most of the text's chapters. The pattern for such sessions is as follows:

  • Students organize themselves into groups of 2–3 students.
  • Some software is typically distributed and installed at the beginning of the session.
  • The students work as a team to solve the problems posed in the session. Each session contains a sequence of problems, and students are encouraged to explore topics within and between the stated problems.
  • Students submit some artifact of their work during studio, which is typically made available for their use after studio in the laboratory sessions.

Laboratory exercises
This site contains laboratory assignments in which students develop and demonstrate proficiency with the course material. Such assignments could be performed indivdually or collaboratively at the discretion of the instructor.

The laboratory exercises culminate in a working compiler for a subset of Java.

About the book:
Much has changed since Crafting a Compiler, by Fischer and LeBlanc, was published in 1988. While instructors may remember the 5.25-inch floppy disk of software that accompanied that text, most students today have neither seen nor held such a disk. Many changes have occurred in the programming languages that students experience in class and in the marketplace.

While much has changed, students and faculty alike continue to study and teach the subject of compiler construction. Research in the area of compilers and programing language translation continues at a brisk pace, as compilers are tasked with accommodating an increasing diversity of architectures and programming languages. Software development environments depend on compilers interacting successfully with a variety of software toolchain components such as syntax-informed editors, performance profilers, and debuggers. All modern software efforts rely on their compilers to check vigorously for errors and to translate programs faithfully.

This book reflects a substantive revision of the material from 1988 and 1991. While the focus of this text remains on teaching the fundamentals of compiler construction, the algorithms and approaches have been brought into modern practice:

Some texts undergo revision by the addition of more graduate-level material. While such information may be useful in an advanced course, the focus of Crafting a Compiler remains on the undergraduate-level study of compiler construction. A graduate course could be offered using Chapters 13 and 14, with the earlier portions of the text serving as reference material.



Copyright 2010 by Ron K. Cytron
Last modified 12:04:03 CDT 22 June 2011