| Course |
CSE304 |
| Title |
Compiler Design |
| Credits |
3 |
| Course Coordinator |
Radu Grosu |
| Current Catalog Description |
Topics studied include formal description of programming languages, lexical analysis, syntax analysis, semantic analysis, symbol tables and memory allocation and code generation. Students undertake a semester project that includes the design and implementation of a compiler for a language chosen by the instructor.
|
| Prerequisite |
CSE 219 or CSE 260, CSE 220, and CSE 303
|
| Course Goals |
- Demonstrate the use of formal attributed grammars for specifying the syntax and semantics of programming languages, and their impact on compiler design.
- Introduce the major phases of compilation, particularly lexical analysis, parsing, semantic analysis, and code generation.
- Provide a substantial experience in software engineering by designing and implementing a significant portion of a compiler for a language chosen by the instructor.
|
| Textbook |
- Compilers: Principles, Techniques and Tools. By A.V. Aho, R. Sethi and J.D. Ullman. Addison Wesley, ISBN 0-201-10088-6
|
| Major Topics Covered in Course |
- Lexical analysis, syntax analysis, symbol tables, memory allocation, code generation, semantic analysis and abstract interpretation.
|
| Laboratory Projects |
- A complete implementation of a compiler project. Includes 5 or 6 sub-projects one for each topic above. Each subproject is allocated between 2 and 3 weeks.
|
| Course Webpage |
/~cse304 |