Compiler Design (CCOM4087)

Latest Course Syllabus-ABET Style () (PDF)

Credits: 3
Students should take this course at: 4th Year - 2nd Semester

Pre-requisite: High Level Programming Languages (CCOM4029) and Operating Systems (CCOM4017)


Introduction to compiling, structure of simple one-step compilers: syntax and lexical analysis, parsing, introduction to type checking, intermediate code generation, introduction to code generation and optimization. Discussion about tools for compilers design (e.g. Lex and Yacc).


  • Introduction to compiling

  • Simple one pass compilers

  • Lexical analysis

  • Symbol tables

  • Parsing

  • Syntax directed translation

  • Introduction to type checking and run time environment

  • Intermediate code generation

  • Introduction to code generation and code optimization

  • Discussion of tools in compiler design


  • Understand how the design of a compiler requieres most of the knowledge acquire during their study

  • Develop a firm and enlightened grasp of concepts learned earlier in their study like higher level programming, assemblers, automata theory, and formal languages, languages, languages specifications, data structure and algorithms, operating systems and com

  • Develop an in–depth knowledge of major topics in compiler design.

  • Develop a fundamental understanding of various stages of compiling.

  • Apply the ideas, the techniques, and the knowledge acquired for the purpose of other software design

  • Develop fundamental knowledge of language specifications using context and free grammars (CFG).