Home
About
Mobile
Open Content
Search
Module Overview
Description
Facilitators
Weblinks
Timetable
CS4212
COMPILER DESIGN
2018/2019, Semester 1
School of Computing (Computer Science)
Modular Credits: 4
Tags:
--
Collapse All
Learning Outcomes
Top
The objective of this module is to introduce the principal ideas behind program compilation, and discusses various techniques for program parsing, program analysis, program optimisation, and run-time organisation required for program execution. Topics covered include regular expressions, context-free grammars, lexical analysis, syntax analysis; different algorithms for parsing codes, such as top-down parsing, bottom-up parsing; translation to abstract syntax using modern parser generator technology, intermediate representation, semantics analysis, type system, un-optimised code generation, code optimisation, data-flow analysis, instruction scheduling.
Prerequisites
Top
CS2104 Programming Language
Teaching Modes
Top
Lectures and tutorials.
Schedule
Top
Week 1 - Introduction
Week 2 - Lexical analysis
Week 3 - Syntax analysis: top-down parsing
Week 4 - Syntax analysis: bottom-up parsing
Week 5 - Semantics analysis and type checking
Week 6 - Intermediate code generation
Recess week
Week 7 - Run-time environment
Week 8 - Code generation
Week 9 - Code generation
Week 10: Dataflow analysis
Week 11: Machine-independent analysis
Week 12: Dealing with loops
Week 13: Instruction-level parallelism
Reading week
Exam week
Assessment
Top
Two individual written assignment, 10% each totally 20%.
In-class pop-quiz - 5%
Three individual programming assignments, 10% + 10% + 15%, totalling 35%
Final assessment - 40%
Workload
Top
2-1-0-3-3
Workload Components : A-B-C-D-E
A: no. of lecture hours per week
B: no. of tutorial hours per week
C: no. of lab hours per week
D: no. of hours for projects, assignments, fieldwork etc per week
E: no. of hours for preparatory work by a student per week