<- 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

Prerequisites
  • Rigorous Methods okprogram design (eg INGI1122)
  • High-level programming language, algorithmics and data structures (eg SINF1121)
  • Logic and discrete structures (eg INGI1101)
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

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
Cycle et année
d'étude
> Master [120] in Computer Science and Engineering
> Master [120] in Computer Science
> Master [60] in Computer Science
> Master [120] in Biomedical Engineering
Faculty or entity
in charge
> INFO


<<< Page précédente