Syllabus for |
|
TDA283 - Compiler construction
|
|
Syllabus adopted 2014-02-18 by Head of Programme (or corresponding) |
Owner: MPALG |
|
7,5 Credits |
Grading: TH - Five, Four, Three, Not passed |
Education cycle: Second-cycle |
Major subject: Computer Science and Engineering, Information Technology
|
Department: 37 - COMPUTER SCIENCE AND ENGINEERING
|
Teaching language: English
Open for exchange students
Course module |
|
Credit distribution |
|
Examination dates |
Sp1 |
Sp2 |
Sp3 |
Sp4 |
Summer course |
No Sp |
0114 |
Project |
7,5 c |
Grading: TH |
|
|
|
|
7,5 c
|
|
|
|
|
In programs
MPSOF SOFTWARE ENGINEERING, MSC PROGR, Year 1 (elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 1 (compulsory elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 2 (elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)
TKITE SOFTWARE ENGINEERING, Year 3 (elective)
MPEES EMBEDDED ELECTRONIC SYSTEM DESIGN, MSC PROGR, Year 1 (elective)
Examiner:
Docent
Magnus Myreen
Replaces
TDA281
Compiler construction TDA282
Compiler construction
Go to Course Homepage
Eligibility:
In order to be eligible for a second cycle course the applicant needs to fulfil the general and specific entry requirements of the programme that owns the course. (If the second cycle course is owned by a first cycle programme, second cycle entry requirements apply.)
Exemption from the eligibility requirement:
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling these requirements.
Course specific prerequisites
General programming skills (C, C++, Haskell, or Java). Data structures. Formal languages and automata. The course DAT151 Programming language technology or equivalent is required.
Aim
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.
Learning outcomes (after completion of the course the student should be able to)
- know the basic principles of run-time organization, parameter passing, and memory management, and implement them as a part of the compiler;
- 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.
Content
Theory and implementation of compilers, with an emphasis on the backend phases of code generation runtime environments.
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.
Literature
See separate literature list.
Examination
Compiler project and oral presentation. Grading scale F, 3, 4, 5.