Hide menu

TDDB44 Compiler Construction

Course information


Course plan

Lecture plan (``fö'' in the schedule=lecture)

Fö1 Introduction. Translators in general. Compiler work flow.
Fö2 and Fö3 Short introduction of formal languages and automata.
(Mandatory for TDDD55 only. Skip this if you have taken TDDA89 or equivalent course.)
Fö4 Lexical analysis and symbol tables.
Fö5 Top-down parsing.
Fö6 Bottom-up parsing I
Fö7 Bottom-up parsing II - conflict handling, SLR(1), LALR(1). Using a LR parser generator.
For TDDD55 construction of LR(0), LR(1), etc. set of items and parse tables from these sets is not part of the course.
Fö8 Semantic analysis and intermediary representations. Syntax directed translation.
Fö9 Memory management. Run-time system organization.
Fö10 Intermediate code optimization.
Fö11 Code generation in general.
Fö12 Code generation for RISC and instruction-level parallel processors: Instruction scheduling, register allocation, phase ordering problems, integrated code generation.
Fö13 Error handling in compilers and run-time systems. Exception concept and implementation.
Fö14 Interpreters, JIT Compilers, Compiler frameworks.

Laboratory plan (``la''=laboratory exercise)

There are 7 separate parts of the compiler to complete in 10x2 hours in the computer laboratories.

La1a Formal languages and grammars (not mandatory).
La1b Creating a scanner using the ``flex'' tool.
La2 Symbol tables.
La3 LR parsing and abstract syntax tree construction using the ``bison'' parser generator.
La4 Semantic analysis (type checking).
La5 Optimization.
La6 Intermediary code generation (quadruples).
La7 Code generation (assembler) and memory management.

Page responsible: Martin Sjölund
Last updated: 2012-10-24