CMPS 450 Compilers
Catalog Description
CMPS 450 Compiler Design (5 units)
An introduction to compiler design and construction. Coverage includes lexical, syntactic and semantic analysis, top-down and bottom-up parsing, code generation, and error detection. Theoretical topics include finite and push-down automata. Students will implement a compiler front-end. CMPS 350 or permission of instructor.
Prerequisites by topic
Programming language formal grammars
Units and Contact Hours
5 quarter units. 4 units lecture (200 minutes), 1 unit lab (150 minutes).
Elective for CS.
Required Textbook
Compilers: Principles, Techniques, and Tools (2nd edition) by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
Recommended Textbook and Other Supplemental Materials
Donna Meyers
Student Learning Outcomes
This course covers the following ACM/IEEE Body of Knowledge student learning outcomes:

CC-AL: Algorithms and Complexity
CE-PL: Programming Languages

ABET Outcome Coverage
The course maps to the following program/student outcomes for Computer Science (CAC/ABET) and Computer Engineering (EAC/ABET):

(CAC PIb1): Identify key components and algorithms necessary for a solution.
Assessed by final project.
(CAC PIi1): Program in a suitable computer language.
Assessed by final project.

Lecture Topics and Rough Schedule

Introduction to Compilers week 01
Syntax-directed Translation
week 02
Lexical Analysis
week 03
Finite Automata
week 04
Formal Grammars
week 05
LL Parsing
week 06
LR Parsing and Push-down Automata
week 07
Syntax-directed Definitions
week 08
Intermediate Code Generation for Expressions
week 09
Intermediate Code Generation for Flow-Control
week 10

Grading Policy
                                    A   93%
                                    A-  90%
    10 HW/Labs...15%                B+  87%
    Project......60%                B   83%
    Final Exam...25%                B-  80%
                                    C+  77%
                                    C   70%
                                    C-  65%
                                    D+  60%
                                    D   50%
                                    D-  40%
                                    F  below 40% 
Estimated ABET Category Content
Algorithms and Complexity: 2 Credit Hours
Programming Languages: 3 Credit Hours
Prepared By
Donna Meyers on May 29, 2014
Approved by CEE/CS Department on October 17, 2013.
Effective Fall 2013