Skip to content
Snippets Groups Projects
Name Last commit Last update
labs
README.md

EPFL CS320 - Computer language processing, 2021

Moodle, Coursebook

Implement a programming language! All project based.

This repository is the website for EPFL Course CS320, Computer languge processing.

Please check here regularly for course updates.

Grading

The entire grade is based on project work, which, however, 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:

12.5% Lab 1
12.5% Lab 2
12.5% Lab 3
12.5% Lab 4
12.5% Lab 5
37.5% Lab 6 (Compiler extension, customized)

Staff

Role People
Professors Viktor Kunčak, Self-Introduction
Head PhD TA Rodrigo Raya
PhD TA Fereshte Mozafari
MSc Student TAs Julie Giunta, Solène Husseini, Benoît Maillard, Noé De Santo, Alexandre Pinazza

Schedule and material

Monday slots will typically focus on lecture materials. The remaining slots will focus on labs, except for the first week's Wednesday and Thursday when we will have lectures to get basic understanding of the metarial. We will provide an online version of the activity as well. So far, as long as there is demand, the plan is to also be present in the physical room, as scheduled.

The material we cover will be similar to last year.

Note that slides can be found underneath each lecture video on switch tube linkes below.

Week Day Date Time Room Topic Videos & Slides
1 Wed 22.09.2021 08:15 INM202 Lecture 1 Intro to CLP, Formal languages, Live Recording
Thu 23.09.2021 08:15 INF119 Lecture 2 Operations on Languages, Regular Expressions and Lexer Idea, Live Recording 1, Live Recording 2
2 Mon 27.09.2021 13:15 CE1100 Lecture 3 First Symbols. Constructing a Lexer, Live Recording 1 From Regular Expressions to Automata, Live Recording 2
Wed 29.09.2011 08:15 INM202 Labs 1 Labs setup, Amy Interpreter
Thu 30.09.2011 08:15 INF119 Labs 1
3 Mon 04.10.2021 13:15 CE1100 Lecture 4 Introduction to Grammars, Syntax Trees, LL(1) Parsing
Wednesday 06.10.2021 8:15 INM202 Labs 2 Lexer
Thursday 07.10.2021 8:15 INF119 Labs 2 Lexer
4 Mon 11.10.2021 13:15 CE1100 Lecture 5 CYK Algorithm for Parsing General Context-Free Grammars, Live Recording 1, Chomsky Normal Form Transformation, Live Recording 2
Wednesday 13.10.2021 8:15 INM202 Labs 2 Lexer
Thursday 14.10.2021 8:15 INF119 Labs 2 Lexer
5 Mon 18.10.2021 13:15 CE1100 Lecture 6 Name Analysis, Live Recording 1, Inductive Relations Live Recording 2, Operational Semantics, Live Recording 3
Wednesday 20.10.2021 8:15 INM202 Labs 2/3 Lexer, Parser
Thursday 21.10.2021 8:15 INF119 Labs 3 Parser
6 Mon 25.10.2021 13:15 CE1100 Lecture 7 Type Rules, Progress, Preservation, Live Recording 1, Type Inference, Live Recording 2
Wednesday 28.10.2021 8:15 INM202 Labs 3 Parser
Thursday 29.10.2021 8:15 INF119 Labs 3 Parser
7 Mon 01.11.2021 13:15 CE1100 Lecture 8 Live Recording on Solving Type Constraints Web Assembly, Compiling Expressions, Short Live Recording on Code generation 1, Live Recording on Code Generation 2
Wednesday 03.11.2021 8:15 INM202 Labs 3 Parser
Thursday 04.11.2021 8:15 INF119 Labs 3 Parser
8 Mon 08.11.2021 13:15 CE1100 Lecture 9 Compiling Expressions, Simple Code Generation for If. Translating Control with Destination Parameters, Live Recording on Compiling Control Structures, Live Recording on Compiling with Branch Destination Parameters
Wednesday 10.11.2021 8:15 INM202 Labs 3/4 Parser, Type checker
Thursday 11.11.2021 8:15 INF119 Labs 4 Type checker
9 Mon 15.11.2021 13:15 CE1100 Lecture 10 Register Machines, Register Allocation Using Graph Coloring
Video to Watch Presentation on WebAssembly by Manos Koukoutos, Google
Wednesday 17.11.2021 8:15 INM202 Labs 4/5 Type checker, CodeGen
Thursday 18.11.2021 8:15 INF119 Labs 5 CodeGen
10 Mon 22.11.2021 13:15 CE1100 Lecture 11 Dynamic Memory Management and Dynamic Dispatch, Program Optimizations and Abstract Interpretation Idea
Wednesday 23.11.2021 8:15 INM202 Labs Labs
Thursday 24.11.2021 8:15 INF119 Labs Labs
11 Mon 29.11.2021 internet Lecture 12 Using partial-evaluation to efficiently implement a language in GraalVM (alternative link), virtual guest lecture by Aleksandar Prokopec
Wednesday 01.12.2021 8:15 INM202 Labs Labs
Thursday 02.12.2021 8:15 INF119 Labs Labs
12 Mon 06.12.2021 13:15 CE1100 Lecture 13 Correctness of compilers
Wednesday 08.12.2021 8:15 INM202 Labs Labs
Thursday 09.12.2021 8:15 INF119 Labs Labs

Future

Week Day Date Time Room Topic Videos & Slides
13 Mon 13.12.2021 13:15 CE1100 labs
Wednesday 15.12.2021 8:15 INM202 Project Presentations
Thursday 16.12.2021 8:15 INF119 Project Presentations
14 Mon 20.12.2021 13:15 CE1100 Project Presentations
Wednesday 22.12.2021 8:15 INM202 Project Presentations
Thursday 23.12.2021 8:15 INF119 Project Presentations