COMP36512 Compilers syllabus 2019-2020
OverviewAny program written in any programming language must be translated before it can be executed on a certain piece of hardware. 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 key issues that arise in the construction of modern compilers.
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.
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.
Context-sensitive analysis, Attribute Grammars, Symbol Tables, Type Checking.
Properties, taxonomy, Graphical IRs, Linear IRs.
The Procedure Abstraction, Linkage convention, Run-time storage organisation.
Code Shape, Instruction Selection, Register Allocation, Instruction Scheduling.
Topics in Compiler Construction
Code Optimisation, JIT Compilation.
Written formative feedback is provided on student solutions of a set of problems which are commonly met when designing and building compilers; there are three such sets presented during the course.
- Lectures (24 hours)
- Analytical skills
- Problem solving
|Programme outcome||Unit learning outcomes||Assessment|
|A2 A3 A5 B1 B3||Understand the principles governing all phases of the compilation process.|
|A2 A3 A5||Understand the role of each of the basic components of a standard compiler.|
|A2 A3 A5||Have awareness of the problems of and methods and techniques applied to each phase of the compilation process.|
|A2 A3 A5 B1 B3||Apply standard techniques to solve basic problems that arise in compiler construction.|
|A2 A3 A5 B1 B3||Understand how the compiler can take advantage of particular processor characteristics to generate good code.|
|Compilers: principles, techniques and tools (2nd edition)||Aho, A.V. et al||9781292024349||Pearson||2013||✔|
|Engineering: a compiler (2nd edition)||Cooper, Keith D. and Linda Torczon||9780120884780||Morgan Kaufmann||2011||✖|
Course unit materials
Links to course unit teaching materials can be found on the School of Computer Science website for current students.