Sök i programutbudet

Använd sökfunktionen för att leta efter kurser och program i Chalmers utbildningsutbud. Den programplan och utbildningsplan som avser dina studier är i allmänhet från det läsår du började dina studier.

​​​​​​​​​​​​​

Kursplan för

Läså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.


Sidansvarig Publicerad: on 24 jan 2018.