Skip to content
Snippets Groups Projects
Name Last commit Last update
config
exercises
labs
past-exams
.gitignore
README.md

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
Wed 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
9 Mon 14.11.2022 13:00 INM 200 + SG0211 MIDTERM Materials of lectures 1-9
Wed 16.11.2022 08:15 INM202 Labs
Thu 17.11.2022 08:15 INM202 Midterm Solution Presentation