ID2202 Compilers and Execution Environments
KTH Royal Institute of Technology
Knowledge in basic computer engineering/architecture, 7.5 higher education credits, equivalent to completed course IS1200/IS1500.
Knowledge in algorithms and data structures, 7.5 higher education credits, equivalent to completed course ID1020/ID1021.
Active participation in a course offering where the final examination is not yet reported in LADOK is considered equivalent to completion of the course. Registering for a course is counted as active participation. The term 'final examination' encompasses both the regular examination and the first re-examination.
The course covers technologies for implementation of programming languages by means of compilers, both for real and virtual execution environments, technologies to read, understand, translate, improve as well as execute programs:
- To read programs: lexical analysis and syntax analysis. Finite state machines, regular expression context free grammars, LL and LR-parsing.
- To understand programs: semantic analysis, type checking.
- To translate programs: machines and instructions.
- Intermediary code, choice of instructions, conventions for procedure calls.
- To improve programs: machine independent optimisations; computer-oriented optimisations (register allocation, scheduling of instructions).
- To execute programs: virtual execution environments and runtime systems. Memory management, garbage collection, to load and link programs, just-in-time compilation.
After passing the course, the student shall be able to
- use methods for lexical, syntactic and semantic analysis
- use methods for generation of machine code
- use methods for optimizing programs
- give an account of common components in execution environments
in order to
- obtain an understanding of how a programming language is implemented as well as for the general theories that are used and how these can be applied.
For higher grades, the student should design more complex components of a compiler. The details are specified in the course memo.
Reviews
Improve accuracy by rating this course