Course CSE304
Title Compiler Design
Credits 3
Course Coordinator

C.R. Ramakrishnan


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 C or higher: CSE 219 or CSE 260; CSE 220

Advisory Prerequisites: CSE 303 or CSE 350

Course Outcomes
  • An ability to use of formal attributed grammars for specifying the syntax and semantics of programming languages.
  • Working knowledge of the major phases of compilation, particularly lexical analysis, parsing, semantic analysis, and code generation.
  • An ability to design and implement a significant portion of a compiler for a language chosen by the instructor.


Aho, Lam, Sethi, Ullman. Compiler Design: Principles, Techniques, and Tools (Addison Wesley, 2nd Edition). ISBN: 978-0321486813.

Major Topics Covered in Course
  • Lexical analysis
  • Syntax analysis
  • Symbol tables
  • Memory allocation
  • Code generation
  • Semantic analysis
  • Abstract interpretation.

Laboratory Projects


Course Webpage