Note from June 29, 2020
Although we do not yet know how long the social distancing related to the Covid-19 pandemic will last, and regardless of the changes that had to be made in the evaluation of the June 2020 session in relation to what is provided for in this learning unit description, new learnig unit evaluation methods may still be adopted by the teachers; details of these methods have been - or will be - communicated to the students by the teachers, as soon as possible.
Although we do not yet know how long the social distancing related to the Covid-19 pandemic will last, and regardless of the changes that had to be made in the evaluation of the June 2020 session in relation to what is provided for in this learning unit description, new learnig unit evaluation methods may still be adopted by the teachers; details of these methods have been - or will be - communicated to the students by the teachers, as soon as possible.
6 credits
30.0 h + 30.0 h
Q2
Teacher(s)
Schaus Pierre;
Language
English
Main themes
- Methods to analyze context-free languages, upstream and downstream methods
- Generators of lexical analyzers and parsers
- Statistical semantics and attributed grammars
- Methods to translate a source code in a target code, and generation of target code
- Machine virtuelle et byte-code (JVM)
- Garbage Collection et gestion mémoire
- Domain Specific Languages (DSL)
Aims
At the end of this learning unit, the student is able to : | |
1 |
Given the learning outcomes of the "Master in Computer Science and Engineering" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
|
The contribution of this Teaching Unit to the development and command of the skills and learning outcomes of the programme(s) can be accessed at the end of this sheet, in the section entitled “Programmes/courses offering this Teaching Unit”.
Content
-
Introduction
- Formal Languages
- Chomsky's Formal Grammars
- Languages and Regular Expressions, Automata finite set of states
- Lexical Analysis
- Top-down Parsing: general method
- Top-down Parsing based on grammars LL (1)
- Scala and specific language to conduct DSL
- Some functional programming concepts relating to DSL (monads, etc.)
Teaching methods
- Lectures
- Pratical sessions
- Project (design and implementation of a compiler)
Evaluation methods
- written exam
- 3 assignments per groups of 2
- 1 project on DSL
Other information
Background :
- LINGI1122 : Program design
- LSINF1121 : High-level programming language, algorithmics and data structures
- LINGI1101 : Logic and discrete structures
Online resources
Bibliography
Supports du cours en ligne (site web du cours)
Ouvrage(s) recommandé(s) :
Ouvrage(s) recommandé(s) :
- Introduction to Compiler Construction in a Java World, Bill Campbell, Swami Iyer, Bahar Akbal-Deliba http://www.cs.umb.edu/j--/
- Scala for the Impatient, Cay Horstmann, Addison-Wesley 2012
- Programming in Scala: A Comprehensive Step-by-Step Guide, 2nd Edition, Martin Odersky , Lex Spoon, Bill Venners
Faculty or entity
INFO