SCS3108 Compiler Design

Course Unit Title

SCS3108 Compiler Design

Side Navigation

Course Unit Description

This course covers the principles and practices for the design and implementation of compilers and interpreters. Topics include all stages of the compilation and execution process: lexical analysis; parsing; symbol tables; type systems; scope; semantic analysis; intermediate representations; run-time environments and interpreters; code generation; program analysis and optimization; and garbage collection. The course covers both the theoretical and practical implications of these topics. Students construct a full compiler for a simple object-oriented language.

Course Objectives
The objectives are to:

  • Learn and practice the design and implementation of compilers and interpreters.
  • Understand the concepts of grammar and languages.
  • Understand the functions of a scanner.
  • Understand the functions of recognizers.
  • Understand run time storage allocation.
  • Understand the function of error routine at each phase of compilation.
  • Understand code generation

Learning  Outcomes
On completion of this course the student should be able to:

  • Construct a full compiler for a simple object-oriented language.
  • Know the differences among a compiler, assembler and an interpreter
  • Understand the compilation process.