2019-2020 / INFO0085-1

Compilers

Duration

25h Th, 75h Proj.

Number of credits

 Master of Science (MSc) in Computer Science and Engineering5 crédits 
 Master of Science (MSc) in Computer Science5 crédits 
 Master of Science (MSc) in Computer Science5 crédits 
 Master in mathematics (120 ECTS)6 crédits 
 Master in mathematics (60 ECTS)6 crédits 

Lecturer

Pascal Fontaine

Language(s) of instruction

English language

Organisation and examination

Teaching in the second semester

Schedule

Schedule online

Units courses prerequisite and corequisite

Prerequisite or corequisite units are presented within each program

Learning unit contents

This course addresses the practical and theoretical aspects of compiler construction. The course will include the following topics:

  • Definition and general structure of a compiler
  • Lexical analysis: regular expressions, analysis based on deterministic and non deterministic finite automata, implementation 
  • Syntax analysis: context-free grammar, top-down and bottom-up parsing, implementation
  • Semantic analysis: concept, syntax-directed translation, scope and type checking, symbol table
  • Intermediate code generation: intermediate representations, SSA form, code optimization, introduction to LLVM
  • Final code generation: instruction selection, register allocation, memory management, code optimization
  • Practicals : design and implementation of a complete compiler

Learning outcomes of the learning unit

At the end of the course, the student will have a good theoretical and practical knowledge of the general structure of a compiler and will be able to implement from scratch a compiler for a simple language.

Prerequisite knowledge and skills

Prerequisites: INFO2009 (Introduction to computer science), INFO0902 (data structures and algorithms), INFO0016 (Introduction to the theory of computation) or similar courses.

Planned learning activities and teaching methods

Lectures are given in English.  Ex-cathedra lectures on the theory as well as on the more practical aspects (related to the project). Project: The students (by groups of two) design and implement a complete compiler for a mini-language.

Mode of delivery (face-to-face ; distance-learning)

Face-to-face.

Recommended or required readings

The contents of the course, as well as the assignments and useful links, will be made available on the eCampus space for the course.

Assessment methods and criteria

First session: the students will be evaluated on the basis of:

  • The practical assignment: the implementation of a compiler for given small language. The project will be divided into four deadlines. At each deadline, the source code provided by the students will be tested automatically by the submission platform on some standardized tests. The evaluation of the assignment will be based on the performance at the different submission steps, the intermediate reports (3), the final report and the final source code. NB: Typically, grades for the assignment are assigned to the whole group.  However, in some particular cases (e.g., when there are evidences that a member of a group has not participated enough in the project), the grade may be assigned individually, reflecting the personal involvement of each member of a group.
  • Individual oral exam: This exam will focus on the compiler developed during the assignment and on the lecture material. The objective of the oral exam is to ensure that the student has correctly assimilated the concepts discussed during the lectures and that he participated in the practical assignment.
Second session:
  • Same as in the first session. Students will have the opportunity to improve their compiler with respect to the first session.
 

Work placement(s)

Organizational remarks

The contents of the lectures, as well as the assignments and useful links, will be made available on the eCampus space for the course.

Contacts

Teacher: Pascal Fontaine, 04 366 28 75, Pascal.Fontaine@uliege.be  Assistant: Cyril Soldani, cyril.soldani@ulg.ac.be

Adaptation of teaching commitments following the COVID-19 pandemic for the May-June 2020 session

Teaching methods implemented : distance-learning

Podcasts are available for students on the eCampus space of the course. There is a question/answer session organized weekly during the quadrimester.
A question/answer session will also be organized before the exam.

Assessment subjects

The contents for the exam are the full contents of the courses before the lock down, as well as the material from the podcasts.

Assessment methods

The oral exam will be virtual, using eCampus (we will be open to other solutions: zoom, skype, google hangouts, if there is a good reason).  To slightly compensate for the inconvenience of the virtual meeting, the exam will be either in French or English, at the convenience of the student.
Besides the exam being virtual, no other changes occur for the evaluation rules.

Contacts

See above.

Adaptation of teaching commitments following the COVID-19 pandemic for the Aug-Sept 2020 session

Assessment subjects

See first session.

Assessment methods

See first session.

Contacts

See above.

Items online

e-Campus space
All materials and links are available on the e-Campus space of the course.

Course web page
Lecture slides and instructions for the project are available on this web page.