Inhalt

[ 921CGELACOK13 ] KV Advanced Compiler Construction

Versionsauswahl
Workload Education level Study areas Responsible person Hours per week Coordinating university
3 ECTS M1 - Master's programme 1. year Computer Science Hanspeter Mössenböck 2 hpw Johannes Kepler University Linz
Detailed information
Original study plan Master's programme Computer Science 2025W
Learning Outcomes
Competences
Students master advanced compilation techniques such as code generation for register machines and register allocation. They understand and can apply the concepts of intermediate program representations and common optimization techniques based on them.
Skills Knowledge
Students are able to

  • understand the concepts of separate compilation and type checking across compilation units (K2)
  • implement a code generator producing IA32 machine code for a simple programming language (K2, K6)
  • understand and implement intermediate program representations such as abstract syntax trees, control flow graphs and instructions in static single assignment form (K2, K6)
  • implement compiler optimizations such as copy propagation and common subexpression elimination (K2, K6)
  • implement a graph-coloring register allocator (K2, K6)
  • Separate compilation
  • Code generation for register machines (IA32)
  • Intermediate program representations (abstract syntax tree, control flow graph, dominator tree, static single assignment form)
  • Common compiler optimizations (common subexpression elimination, inlining, loop unrolling, loop-invariant code motion, ...)
  • Register allocation
Criteria for evaluation Written exam towards the end of the semester plus an assessment of the programming project, which the students have to present to the lecturer.
Methods The first part of the semester presents the subject matter based on slides and examples on the blackboard. The rest of the semester is spent on the programming project.
Language English
Study material See http://ssw.jku.at/Teaching/Lectures/ACC/
Changing subject? No
Further information This is a combined course (KV) in which theory is complemented by a programming project, where the students can choose one of several project variants.

For details see http://ssw.jku.at/Teaching/Lectures/ACC/

Corresponding lecture INMAWKVUEB2: KV Übersetzerbau 2 (3 ECTS)
On-site course
Maximum number of participants -
Assignment procedure Direct assignment