CMPS 450, Compiler Construction
Course Description
Computer Science Department
California State University, Bakersfield
V1, 5/9/2003
| Catalog Description: | Introduction to programming language implementation. Implementation strategies such as compilation, interpretation, and translation. Major compilation phases such as lexical analysis, semantic analysis, optimization, and code generation. | 
| Prerequisite: | CMPS 223, 350 Prerequisites by Topic  
 | 
| Units: | 5 | 
| Coordinator: | Jim Moloney | 
| Goals: | Goal: To provide the student with a basic knowledge of the compilation process; to prepare the student for advanced study in compilation. Objectives: 
 | 
| Current Text: | Aho, Sethi, Ullman, Compiler Construction: Principles, Theory, and Practice, Addison-Wesley, 1986 | 
| Topics: | (1) 
  Overview of compilation (2 hrs)  (2) Lexical analysis (10 hrs) (3) Symbol table management (3 hrs) (4) Theory of parsing (4 hrs) (5) Recursive descent parsing (4 hrs) (6) Non-recursive predictive parsing (10 hrs) (7) Syntax directed translation (6 hrs) (8) Intermediate code generation (8 hrs) (9) Tests (3 hrs) (10) Labs (25 hrs) | 
| Laboratory: | (1) Students will work on the implementation of a compiler for a small language. Code generated will run on a simulated computer architecture. | 
| ACM/CSAB Category Content: | Estimated CSAB Category Content: 
 | 
| Oral and Written Communication: | Oral presentations are given by students during the project reviews. A final project report containing the deliverables described in the laboratory section above will be required of all students. | 
| Social and Ethical Issues: | None | 
| Problem Analysis and Design: | Students are required to develop an understanding of the structure of programming languages, requirements for parsing and implementation of a language. Development of a compiler for a small language is the final project. | 
| Version & Date | Version 1, 5/9/2003 | 
| Comments | The first draft based on ACM curricula 2001 in the format of ABET sample course description. |