Skip to navigation | Skip to main content | Skip to footer
Menu
Menu

COMP36512: Compilers (2011-2012)

This is an archived syllabus from 2011-2012

Compilers
Level: 3
Credit rating: 10
Pre-requisites: COMP11120 or equivalent
Co-requisites: No Co-requisites
Duration: 11 weeks
Lectures: 22
Lecturers: Rizos Sakellariou
Course lecturer: Rizos Sakellariou

Additional staff: view all staff
Timetable
SemesterEventLocationDayTimeGroup
Sem 2 Lecture 1.4 Mon 10:00 - 11:00 -
Sem 2 Lecture 1.4 Fri 12:00 - 13:00 -
Assessment Breakdown
Exam: 100%
Coursework: 0%
Lab: 0%

Themes to which this unit belongs
  • Computer Languages

Aims

Any program written in a programming language must be translated before it can be executed. This translation is typically accomplished by a software system called compiler. This module aims to introduce students to the principles and techniques used to perform this translation and the issues that arise in the construction of a compiler.

Programme outcomeUnit learning outcomesAssessment
A2 A3 A5 B1 B3Understand the principles governing all phases of the compilation process.
  • Examination
A2 A3 A5Understand the role of each of the basic components of a standard compiler.
  • Examination
A2 A3 A5Have awareness of the problems of and methods and techniques applied to each phase of the compilation process.
  • Examination
A2 A3 A5 B1 B3Apply standard techniques to solve basic problems that arise in compiler construction.
  • Examination
A2 A3 A5 B1 B3Understand how the compiler can take advantage of particular processor characteristics to generate good code.
  • Examination

Syllabus

Introduction


What is a compiler? A high-level view of compilation. General structure of a compiler. An overview of compilation technology.

Lexical Analysis (Scanning)


Regular languages/expressions, finite state machines, building regular expressions from a finite automaton.

Syntax Analysis (Parsing)


Expressing Syntax, Context Free Grammars, Top-Down Parsing, Bottom-Up parsing.

Semantic Analysis


Context-sensitive analysis, Attribute Grammars, Symbol Tables, Type Checking.

Intermediate Representations


Properties, taxonomy, Graphical IRs, Linear IRs.

Storage Management


The Procedure Abstraction, Linkage convention, Run-time storage organisation.

Code Generation


Code Shape, Instruction Selection, Register Allocation, Instruction Scheduling.

Topics in Compiler Construction


Code Optimisation, JIT Compilation.

Conclusions