Languages and translators [ LINGI2132 ]
6.0 crédits ECTS
30.0 h + 30.0 h
2q
Teacher(s) |
Schaus Pierre ;
|
Language |
English
|
Place of the course |
Louvain-la-Neuve
|
Online resources |
> https://icampus.uclouvain.be/claroline/course/index.php?cid=ingi2132
|
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 |
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:
-
INFO1.1-3
-
INFO2.2-4
-
INFO5.2, INFO5.4, INFO5.5
-
INFO6.1, INFO6.4
Given the learning outcomes of the "Master [120] in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
-
SINF1.M2
-
SINF2.2-4
-
SINF5.2, SINF5.4, SINF5.5
-
SINF6.1, SINF6.4
Given the learning outcomes of the "Master [60] in Computer Science" program, this course contributes to the development, acquisition and evaluation of the following learning outcomes:
-
1SINF1.M2
-
1SINF2.2-4
-
1SINF5.2, 1SINF5.4, 1SINF5.5
-
1SINF6.1, 1SINF6.4
Students completing successfully this course will be able to
-
explain in a practical way the structure of compilers dealing with algorithmic languages
-
design and implement a compiler for a practical language which solves a interesting problem
-
show the interest of compiling techniques in problem resolving
Students will have developed skills and operational methodology. In particular, they have developed their ability to
-
treat rigorously a problem, justifying and validating each step of a project to be able to rely on it to implement the following one
-
explain in practical terms how a source code (Java) is finally translated into byte-code.
-
explain the enforcement mechanisms byte code by JVM
-
explain memory management during the execution of a program
-
explain how garbage collection mechanisms
|
Evaluation methods |
-
oral exam
-
3 assignments per groups of 2
-
1 project on DSL
The project and assignments can not be represented in second session.
|
Teaching methods |
-
Lectures
-
Pratical sessions
-
Project (design and implementation of a compiler)
|
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)
-
Bottom-up Parsing and relations of priorities
-
Scala and specific language to conduct DSL
-
Some functional programming concepts relating to DSL (monads, etc.)
|
Bibliography |
Course material available online (course website)
Recommended readings
-
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
|
Other information |
Background :
-
LINGI1122 : Rigorous Methods okprogram design
-
LSINF1121 : High-level programming language, algorithmics and data structures
-
LINGI1101 : Logic and discrete structures
|
Cycle et année d'étude |
> Master [120] in Computer Science
> Master [120] in Biomedical Engineering
> Master [60] in Computer Science
> Master [120] in Computer Science and Engineering
|
Faculty or entity in charge |
> INFO
|
<<< Page précédente
|