Kursplan för |
|
TDA282 - Compiler construction
|
|
Kursplanen fastställd 2012-02-18 av programansvarig (eller motsvarande) |
Ägare: MPALG |
|
7,5 Poäng |
Betygskala: TH - Fem, Fyra, Tre, Underkänt |
Utbildningsnivå: Avancerad nivå |
Huvudområde: Datateknik, Informationsteknik
|
Institution: 37 - DATA- OCH INFORMATIONSTEKNIK
|
Undervisningsspråk: Engelska
Sökbar för utbytesstudenter
Blockschema:
X
Modul |
|
Poängfördelning |
|
Tentamensdatum |
Lp1 |
Lp2 |
Lp3 |
Lp4 |
Sommarkurs |
Ej Lp |
0107 |
Tentamen |
7,5 hp |
Betygskala: TH |
|
|
|
|
7,5 hp
|
|
|
|
|
0207 |
Laboration |
0,0 hp |
Betygskala: UG |
|
|
|
|
0,0 hp
|
|
|
|
|
I program
MPSOF SOFTWARE ENGINEERING, MSC PROGR, Årskurs 1 (valbar)
TKITE INFORMATIONSTEKNIK, CIVILINGENJÖR, Årskurs 3 (valbar)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Årskurs 1 (obligatoriskt valbar)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Årskurs 2 (valbar)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Årskurs 1 (valbar)
MPEES EMBEDDED ELECTRONIC SYSTEM DESIGN, MSC PROGR, Årskurs 1 (valbar)
Examinator:
Forskarassistent
Josef Svenningsson
Ersätter
TDA281
Kompilatorkonstruktion
Gå till kurshemsida
Behörighet:
För kurser inom Chalmers utbildningsprogram gäller samma behörighetskrav som till de(t) program kursen ingår i.
Kursspecifika förkunskaper
General programming skills (C, C++, Haskell, or Java).
Data structures.
Formal languages and automata.
The course DAT150 Programming language technology or equivalent is required.
Syfte
The aim of the course is to develop an understanding of the whole process of compiler construction, starting from lexical analysis and finishing with machine code generation. As the course laboration, the students build a complete compiler for a simple imperative language.
Lärandemål (efter fullgjord kurs ska studenten kunna)
* define the lexical and syntactic structure of a programming language and implement them efficiently by using standard tools;
* define a type system and implement type checking, which both reports errors to the programmer and prepares the program for
code generation;
* know the basic principles of run-time organization, parameter passing, and memory management, and implement them as a part of the compiler;
* be familiar with both stack machines and register-based machines;
* design and implement compilation schemes that generate intermediate or assembly code from a source program;
* use data flow analysis to implement register allocation and code optimizations;
* design and implement extensions of a simple imperative language, and know the main issues of compiling object-oriented languages.
Innehåll
Theory and implementation of compilers, with an emphasis on the backend phases of code generation and static analysis.
Organisation
The teaching consists of lectures and a project, as well as individual supervision in connection with the project. The project is the central part; it involves implementing a complete compiler for a small imperative programming language. The lectures provide knowledge that is needed in the laboration, as well as an overview of the theoretical foundations and possible extensions of the compiler.
Litteratur
See separate literature list.
Examination
Compiler project and oral exam. Grading scale: U, 3, 4, 5.