TDDE66 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 11x2 hours in the computer laboratories.
La0 | Formal languages and grammars (not mandatory). |
La1 | 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: Adrian Pop
Last updated: 2024-10-31