Teacher(s)
Language
English
> French-friendly
> French-friendly
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)
Learning outcomes
At the end of this learning unit, the student is able to : | |
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:
|
|
Content
The course presents the theory and practice of programming language implementation, as well as compiler architecture. We will review the standard components of a compiler, from front-end (parsing, lexical analysis) to back-end (code generation). Among others, we will see:
- Scanning/lexing and regular expressions
- Parsing and context free grammars
- Type checking
- Register allocation and code generation
Teaching methods
The course consists in a series of pre-recorded video lectures, lecture and Q&A sessions, and lab sessions.
A project will take place with several deadlines distributed over the quadrimester.
A project will take place with several deadlines distributed over the quadrimester.
Evaluation methods
June session: The evaluation consists of two components: The project (done in groups) accounts for 60% of the course's final grade. A written exam accounts for 40%.
August session: If the student did not successfully pass the course in the first session (i.e., they did not obtained at least 10/20 for the final grade), the student is allowed to redo those components (project or exam or both) of the evaluation for which they did not obtain at least 50% of the respective points. They will keep the points for the component that they passed (if any). The same weights as in the June session are applied for the calculation of the final grade.
Regarding the use of generative AI: Students are permitted to use generative AI tools to support their project work, e.g., to compare solution approaches, find errors in code, or improve the wording in reports. However, submissions, whether source code, reports, or other forms, must essentially be the students' own work. If generative AI tools have been used, their nature and scope must be described in detail in the submission (see the respective project instructions) and only the original part of the student's work will be evaluated. This also applies when drawing on the work of others, whether from the Internet or from another student. Failure to comply with these guidelines may result in reduced grades or other academic sanctions.
The teacher may request a student to go through an additional oral exam as a complement of the exam and/or of the project activities, in cases including, but not limited to, technical issues, or suspicion of irregularities.
August session: If the student did not successfully pass the course in the first session (i.e., they did not obtained at least 10/20 for the final grade), the student is allowed to redo those components (project or exam or both) of the evaluation for which they did not obtain at least 50% of the respective points. They will keep the points for the component that they passed (if any). The same weights as in the June session are applied for the calculation of the final grade.
Regarding the use of generative AI: Students are permitted to use generative AI tools to support their project work, e.g., to compare solution approaches, find errors in code, or improve the wording in reports. However, submissions, whether source code, reports, or other forms, must essentially be the students' own work. If generative AI tools have been used, their nature and scope must be described in detail in the submission (see the respective project instructions) and only the original part of the student's work will be evaluated. This also applies when drawing on the work of others, whether from the Internet or from another student. Failure to comply with these guidelines may result in reduced grades or other academic sanctions.
The teacher may request a student to go through an additional oral exam as a complement of the exam and/or of the project activities, in cases including, but not limited to, technical issues, or suspicion of irregularities.
Other information
Students should have solid knowledge of programming in a compiled object-oriented language, of algorithms and data structures, and of the basics of computer architectures, as taught for example in the following courses:
- LEPL1402 and/or LEPL1509: Programming of larger programs in Java
- LINFO1252 and/or LINFO2241: Computer systems/architecture
- LINFO1121: Algorithms and data structures
Online resources
Teams and/or Moodle
Faculty or entity