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.
Programming language formal grammars
5 quarter units. 4 units lecture (200 minutes), 1 unit lab (150 minutes).
Elective for CS.
Compilers: Principles, Techniques, and Tools (2nd edition)
by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
None.
Donna Meyers
This course covers the following ACM/IEEE Body of Knowledge student learning
outcomes:
CC-AL: Algorithms and Complexity
CE-PL: Programming Languages
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.
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
|
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%
Algorithms and Complexity: 2 Credit Hours
Programming Languages: 3 Credit Hours
Donna Meyers on May 29, 2014
Approved by CEE/CS Department on October 17, 2013.
Effective Fall 2013