Skip to content
Snippets Groups Projects
README.md 3.69 KiB
Newer Older
# EPFL CS320 - Computer language processing, Spring 2025
Viktor Kuncak's avatar
Viktor Kuncak committed
[Course Description and Schedule](https://edu.epfl.ch/coursebook/en/computer-language-processing-CS-320)


## Grading

Viktor Kuncak's avatar
Viktor Kuncak committed
The grade is based on a midterm (30%) as well as project work (70%) that has many aspects: the implementation in [Scala](https://www.scala-lang.org/), a written report, oral presentation, and answers to questions, in presentation and throughout the semester. There will be no written exam at the end of the semester or the exam period (only the midterm). Here are the weights of the milestones in the overall course grade:
Rodrigo Raya's avatar
Rodrigo Raya committed

Viktor Kuncak's avatar
Viktor Kuncak committed
  * Midterm exam: 30% (see [the archive of past exams](past-exams/))
Viktor Kuncak's avatar
Viktor Kuncak committed
  * 10% Lab 1
  * 10% Lab 2
Viktor Kuncak's avatar
Viktor Kuncak committed
  * 10% Lab 3 (First team work statement to be sent afterwards)
Viktor Kuncak's avatar
Viktor Kuncak committed
  * 10% Lab 4
  * 10% Lab 5
Viktor Kuncak's avatar
Viktor Kuncak committed
  * 20% Lab 6 (Compiler extension, customized, the final team work statement)
Viktor Kuncak's avatar
Viktor Kuncak committed
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 and answer questions. The presentation part of of each person will be graded individually and includes answers to questions (a person not presenting will be given a 0 points for the presentation part of the Compiler extension lab). The final report on the project will need to handed in after the end of the semester but the students are encouraged to complete it during the semester. To monitor whether everyone is doing their share of work, we ask each student to submit via email their teamwork statement, twice during the semester: once after Lab 3 is due, and once at the end of the semester. Please read [Teamwork Statements](teamwork.md) on the format and the relevance of these emails.
Viktor Kuncak's avatar
Viktor Kuncak committed

## Staff

Viktor Kuncak's avatar
Viktor Kuncak committed
| Role            | People |
| :---            | :--- |
| Professors      | [Viktor Kunčak](https://people.epfl.ch/viktor.kuncak) |
| PhD TA   | [Samuel Chassot](https://people.epfl.ch/samuel.chassot) |
| PhD TA   | [Sankalp Gambhir](https://people.epfl.ch/sankalp.gambhir) |
Viktor Kuncak's avatar
Viktor Kuncak committed

Viktor Kuncak's avatar
Viktor Kuncak committed
## Books

Our goal is for lectures to be self-contained. The following books contain overlapping material with some recommendations for most relevant parts:
  * [Basics of Compiler Design](http://hjemmesider.diku.dk/~torbenm/Basics/). Read pages 9-88 (omit Section 2.8) for lexical analysis and parsing
  * [Modern compiler implementation in ML](http://library.epfl.ch/en/beast?isbn=9781107266391). Read Sections 2.1-2.4 for Lexical analysis, Sections 3.1-3.2 for parsing, and 5.3-5.4 as well as 16.1-16.3 for type checking
Viktor Kuncak's avatar
Viktor Kuncak committed
  * [Compilers, principle, techniques and tools](http://library.epfl.ch/en/beast?isbn=9781292024349)
Viktor Kuncak's avatar
Viktor Kuncak committed

## Schedule and Material

| Week | Day | Date       | Time  | Room   | Topic                | Videos & Slides              |                              |
| :--  | :-- | :--        | :--   | :--    | :--                  | :--                          | :--                          |
Viktor Kuncak's avatar
Viktor Kuncak committed
| 1    | Wed | 19.02.2025 | 13:15 | BC 01  | Lecture 1            | [Intro to CLP](https://mediaspace.epfl.ch/media/01-01%2C+Intro+to+Computer+Language+Processing/0_okro5h0v), [Formal languages](https://mediaspace.epfl.ch/media/01-02%2C+Formal+Languages/0_segfj94w) |
Viktor Kuncak's avatar
Viktor Kuncak committed
|      | Fri | 21.02.2025 | 13:15 | ELA 2  | Lecture 2 | [Operations on Formal Languages](https://mediaspace.epfl.ch/media/02-01%2C+Operations+on+Formal+Languages/0_otyeghg6), [Regular Expressions and Idea of a Lexer](https://mediaspace.epfl.ch/media/02-02%2C+Regular+Expressions+and+Lexer+Idea/0_th59v9kx) |
|      | Fri | 21.02.2025 | 15:15 | ELA 2  | (TBC) | [First Symbols. Constructing a Lexer](https://mediaspace.epfl.ch/media/03-01%2C+First+Symbols.+Constructing+a+Lexer/0_a943fw0n), [From Regular Expressions to Automata](https://mediaspace.epfl.ch/media/03-02%2C+From+Regular+Expressions+to+Automata/0_icjqhfj0) |