CSE 304 Back to CSE Courses

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
Department of Computer Science • Stony Brook University, Stony Brook, NY 11794-4400 • 631-632-8470 or 631-632-8471