| TDDC52 |
Advanced Compiler Construction, 9 ECTS credits.
/Advanced Compiler Construction/
For:
CS
|
OBS! |
Only open for students admitted to the Computer Science Master programme
|
| |
Prel. scheduled
hours:
Rec. self-study hours: 240
|
| |
Area of Education: Technology
Subject area: Computer Science, Computer Engineering
|
| |
Advancement level
(G1, G2, A): A
|
|
Aim:
Give students or practitioners knowledge about advanced compiler technology, including program analysis, intermediate representations, compiler optimizations, code generation, compiler frameworks, run-time systems, compilation techniques for embedded systems, and compiler generation tools for code generation from natural semantics specifications.
|
|
Prerequisites: (valid for students admitted to programmes within which the course is offered)
Basic course in compiler construction, corresponding to the undergraduate courses Compilers and Interpreters, or Compiler Construction.
Basic course in data structures and algorithms.
Basic knowledge in processor architecture.
Programming in C++/Java for the Compiler framework labs.
Some background in combinatorial optimization may be useful.
Note: Admission requirements for non-programme students usually also include admission requirements for the programme and threshhold requirements for progression within the programme, or corresponding.
|
|
Organisation:
3 intensive weeks with 2 x 2h lectures per day. Lessons (assistant-guided repetition + problem solving sessions). Possibly shared lab sessions with some open-source compiler framework. Several extra sessions for student presentations
at the end of the course.
|
|
Course contents:
Introduction: Processor architectures, code generation, intermediate representations, tools.
Foundations, e.g., control and data dependence, data flow analysis. Interprocedural analysis.
Overview of optimizations.
SSA and its construction.
SSA based optimizations.
Memory SSA.
Chi functions in lazy memory SSA based analysis. Firm.
Compiler generators.
Generating semantics modules from Natural Semantics using RML.
Automatically generating code generators with RML. Some examples.
Interprocedural optimization.
Code selection. Instruction scheduling. Register allocation.
Mutation scheduling.
Data dependence analysis. Loop transformations.
Loop parallelization. Software pipelining.
Memory hierarchy optimization.
Special code generation problems for irregular architectures, DSPs.
Other topics, e.g., code motion, binary translation, garbage collection, as time permits.
|
|
Course literature:
|
|
Examination: |
|
Written examination. Compiler framework lab Written homework exercise on RML. Presentation, written summary, opposition. |
3 p 1 p 1 p 1 p
|
/ / / /
|
4,5 ECTS 1,5 ECTS 1,5 ECTS 1,5 ECTS
|
| |
|
Grades given are Pass, Fail. |
Course language is English.
Department offering the course: IDA.
Director of Studies:
Examiner: Christoph Kessler
Course Syllabus in Swedish
|