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
