Informations générales
Number of hours
- Lectures 24.0
- Projects -
- Tutorials 10.0
- Internship -
- Laboratory works 14.0
- Written tests -
ECTSECTS
4.0
Goal(s)
- Understand programming languages beyond their syntactical aspects
- Implement a simple compiler
- Interpret compiler error messages correctly
Responsible(s)
Laure GONNORD
Content(s)
The course covers the following concepts
- The role and architecture of a compiler
- Lexical and syntactic analysis
- Semantic analysis, typing
- Compiler data structures: syntax trees, control flow graphs, SSA form
- Register allocation
- Code generation to assembler
These concepts will be put into practice in practical exercises by creating a compiler for a mini imperative language.
Prerequisites- Familiarity with an imperative programming language (C, Java, etc.)
- Basic knowledge of regular expressions and grammars.
- Basic knowledge of assembly language programming: assembly language, run-time stack, etc.
Test
Evaluation : 25% of TP et projets notés + examens écrits et oraux and 75% of Examen écrit (1,5H)
Resit : 25% of TP et projets notés + examens écrits et oraux (reported score) and 75% of Examen écrit (1,5H)
- E1 = Session 1 Written, 1.5 hours, no document or calculator allowed.
- E2 = Session 2: Written, 1.5 hours, no document or calculator allowed.
- CC = 1 or more marks (lab delivery, in-house problems, paper assessment)
Calendar
The course exists in the following branches:
- Curriculum - Core curriculum - Semester 7
Additional Information
Course ID : 4MMCOMP
Course language(s): 
You can find this course among all other courses.
Bibliography
TBD