Skip to content
Snippets Groups Projects

EPFL CS320 - Computer language processing, 2022

Course Description and Schedule

Lectures:

Labs or Exercises and First Lecture:

Grading

The grade is based on a midterm (30%) as well as project work (70%) that has many aspects: the implementation in Scala, a written report, oral presentation, and answers to questions, in presentation and throughout the semester. There will be no written exam. Here is the weight of the milestones in the overall course grade:

  • 30% Midterm on Monday 2022-11-14, 13:00-15:00 (see the archive of past exams)
  • 10% Lab 1
  • 10% Lab 2
  • 10% Lab 3
  • 10% Lab 4
  • 10% Lab 5
  • 20% Lab 6 (Compiler extension, customized)

For the final Lab 6, each group will need to present the project in a slot in one of the last two weeks of the semester. The final report on the project will need to handed in after the end of the semester, by 2023-01-09 but the students are encouraged to complete it during the semester.

Staff

Role People
Professors Viktor Kunčak, Self-Introduction
PhD (Head) TA Fatih Yazici
Initial Autograding Setup Rodrigo Raya and Matthieu Bovel
MSc TA Valentin Aebi
MSc TA Romain Birling
MSc TA Solène Husseini
MSc TA Ana-Maria Indreias
MSc TA Benoît Léo Maillard
MSc TA Victor Arthur Schneuwly
MSc TA Erwan Serandour
MSc TA Abel Vexina Wilkinson

Books

My goal is for lectures to be self-contained. The following books contain overlapping material with some recommendations for most relevant parts:

Schedule and Material

Week Day Date Time Room Topic Videos & Slides
1 Wed 21.09.2022 08:15 INM202 Lecture 1 Intro to CLP, Formal languages
Thu 22.09.2022 08:15 INM202 Lecture 2 Operations on Languages, Regular Expressions and Lexer Idea
2 Mon 26.09.2022 13:15 INM200 Lecture 3 First Symbols. Constructing a Lexer, From Regular Expressions to Automata
Wed 28.09.2022 08:15 INM202 Labs 1 Interpreter Lab
Thu 29.09.2022 08:15 INM202 Exercises 1 Exercises on regular expressions and automata
3 Mon 03.10.2022 13:15 INM200 Lecture 4 Introduction to Grammars, Syntax Trees
Wed 05.10.2022 08:15 INM202 Labs Interpreter Lab, Lexer Lab
Thu 06.10.2022 08:15 INM202 Exercises Exercises on lexical analyzers and basics of grammars
4 Mon 10.10.2022 13:15 INM200 Lecture 5 LL(1) Parsing
Wed 12.10.2022 08:15 INM202 Lexer Lab, Parser Lab, Parser Lab Presentation. See also Scallion Presentation
Thu 13.10.2022 08:15 INM202 Exercises Exercises on LL(1) Parsing
5 Mon 17.10.2022 13:15 INM200 Lecture 6 CYK Algorithm for Parsing General Context-Free Grammars and Chomsky Normal Form Transformation
Wed 19.10.2022 08:15 INM202 Labs Parser Lab
Thu 20.10.2022 08:15 INM202 Exercises Exercises on CYK Parsing
6 Mon 24.10.2022 13:15 INM200 Lecture 7 Name Analysis, Inductive Relations, Operational Semantics
Wed 26.10.2022 08:15 INM202 Labs Parser Lab
Thu 27.10.2022 08:15 INM202 Exercises Exercises on Operational Semantics
7 Mon 31.10.2022 13:15 INM200 Lecture 8 Type Rules, Progress, Preservation, Type Inference
Wed 02.11.2022 08:15 INM202 Labs Parser Lab, Type Checking Lab and its Introduction Video
Thu 03.11.2022 08:15 INM202 Exercises Exercises on Types
8 Mon 07.11.2022 13:15 INM200 Lecture 9 Finish Type Inference. Compilation to Web Assembly
Wed 09.11.2022 08:15 INM202 Labs Type Checking Lab
Thu 10.11.2022 08:15 INM202 Exercises Midterm preparation
9 Mon 14.11.2022 13:00 INM 200 + SG0211 MIDTERM Materials of lectures 1-9. Seating Plan
Wed 16.11.2022 08:15 INM202 Labs Finish type checker lab
Thu 17.11.2022 08:15 INM202 Labs Finish type checker lab
10 Mon 21.11.2022 13:15 INM200 Lecture 10 Compiling Expressions, Simple Code Generation for If, Translating Control with Destination Parameters
Wed 23.11.2022 08:15 INM202 Labs Presentation of code generation lab
Thu 24.11.2022 08:15 INM202 Labs + Q&A Staff answers questions on labs and on Exam Solutions for this year's exam
Fri 25.11.2022 16:00-17:30 BC 333 View your exam Staff will be available to answer questions on what you did and how the exam was graded
11 Mon 28.11.2022 13:15 INM200 Lecture 11 Guest lecture: Static analysis for Amy by Arseniy Zaostrovnykh and Quentin Jaquier from Sonar: Part 1, Part 2
Wed 30.11.2022 08:15 INM202 Labs Code Generation Lab, Project Topic Selection
Thu 01.12.2022 08:15 INM202 Labs Code Generation Lab, Project Topic Selection
12 Mon 05.12.2022 13:15 INM200 Lecture 11 Compiler Correctness 1, Compiler Correctness 2
13 Mon 05.12.2022 13:15 INM200 Lecture 12 Memory Management; Dynamic Dispatch, Program Analysis, Register Machines, Register Allocation

You are welcome to submit your final Lab 6 (report and code for the compiler extension) by the end of the semester but you can revise it without any penalty until we start grading it, on 9 January 2023.