Courses Catalogue

Compiler Construction

ACADEMIC PROGRAMME: Information Technology, B.Sc
COLLEGE/SCHOOL/FACULTY: School of Mathematics and Computing
STATUS: Elective
PROGRAMME TYPE: Undergraduate

Course Description

Course Description

Introduces the theory and practice of programming language translation. Topics include compiler design, lexical analysis, parsing, symbol tables, declaration and storage management, code generation, and optimization techniques.



1.    The aim of this Course is to show how to apply the theory of language translation introduced in the prerequisite courses to build compilers and interpreters.

2.    It covers the building of translators both from scratch and using compiler generators. In the process, the Course also identifies and explores the main issues of the design of translators.

3.    The construction of a compiler/interpreter for a small language is a necessary component of this Course, so students can obtain the necessary skills.  

4.    Discuss the effectiveness of optimization techniques.

5.    Explain the impact of a separate compilation facility and the existence of program libraries on the compilation process.

6.    Explain the concept of an abstract data type, and recognize the importance of typing for abstraction and safety.


Learning Outcomes:

1.    Explain  the structure of compilers 

2.    Explain the basic techniques used in compiler construction such as lexical analysis, top-down, bottom-up parsing, context-sensitive analysis, and intermediate code generation 

3.    Explain  the basic data structures used in compiler construction such as abstract syntax trees, symbol tables, three-address code, and stack machines

Design and implement a compiler using a software engineering approach.