Section outline
-
Lectures:
- Frédéric Lang (semantics)
- Laurent Mounier (type checking, code optimization, code generation)
Tutorials:
- Group 1 : Ieva Petrulionytė
- Group 2: Cristian Ene
-
Introduction to the course
- Compilation and Semantics
- An overview of the architecture of a compiler
-
The While language (syntax)
Semantics of artihmetical and boolean expressions
Natural Semantics of Statements in Language While
-
The structural operational semantics of language While.
Comparing the natural and structural operational semantics.
-
Presentation of an abstract machine close to assembly code.
It will be endowed with an operational semantics.
The main purpose is to give you an idea of how to argue about the correctness of the implementation of a compiler for a given programming language.
We will see:
- how to define an operational semantics for an abstract machine: a machine with an evaluation stack
- how to specify a code generator for such a machine (translation functions on the syntax of While language)
- how to use the source and target language semantics to prove that the code generation is correct
-
This lecture is about axiomatic semantics.
Axiomatic semantics aims at defining an inference system that can be used to prove the essential properties of a program.
-
This lecture presents generation of intermediate code.
-
We review some very oftenly used optimizations based on data-flow analysis.
-
Some previous year exams to help you prepare the exams of this year.
-
For your information only.
The material in this section is not subject to examination, unless otherwise indicated during the course.