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

  • Characteristics of various languages
  • Compilation issues affected by these languages
  • Basic lexical and syntactic analysis

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:

  1. Describe the steps and algorithms used by language translators.
  2. Recognize the underlying formal models such as finite state automata, push-down automata and their connection to language definition through regular expressions and grammars.
  3. Discuss the effectiveness of optimization.
  4. Explain the impact of a separate compilation facility and the existence of program libraries on the compilation process.
  5. Explain the importance of formal semantics.
  6. Differentiate between formal and informal semantics.
  7. Evaluate the impact of different typing regimes on language design, language usage, and the translation process.
  8. Explain the role of different abstraction mechanisms in the creation of user-defined facilities.

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:

  • Language Translation Systems PL8
  • Programming Language Semantics PL10
  • Programming Language Design PL11

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.