CMPS 4500 Compiler Design (4 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 3500 or permission of instructor.
Programming language formal grammars
4 semester units. 3 units lecture, 1 unit lab.
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 |
Regular Languages |
week 04 |
Finite Automata |
week 05 |
Syntax Analysis & Context-Free Languages |
week 06 |
Semantic Analysis & Context-Sensitive Languages |
week 07 |
LL Parsing
|
week 08 |
Push-down Automata |
week 09 |
LR Parsing |
week 10 |
Syntax-directed Definitions
|
week 11 |
Intermediate Code Generation for Expressions |
week 12 |
Intermediate Code Generation for Flow-Control |
week 13 |
Backpatching for LR Parsers |
week 14 |
Intermediate Code Generation for Function Calls |
week 15 |
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, June 2014.
Approved by CEE/CS Department, June 2014.
Effective Fall 2013