<- Archives UCL - Programme d'études ->



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