Computer Language Processing
CS-320, Edition 2016
Staff
Instructor | Viktor Kuncak |
PhD Assistants | Manos Koukoutos and Ravi Kandhadai |
MSc Assistants | Tristan Overney, Ogier Bouvier and Alfonso Peterssen |
Infrastructure advice | Etienne Kneuss |
Secretary | Sylvie Jankow |
Grading
- 50% Projects
- 50% Quiz
Stuff: Course Materials
NEW: All slides
Lab materials
Week 01, September 19
Monday 10:15am | NO CLASSES | |
Wednesday 8:15am | INF213 | Lecture 01: Introduction |
Wednesday 10:15am | INF213 | Labs (always bring own laptops) Labs setup and then Labs 01 |
You may also wish to check the Gobble Gook video, which relates the subtle difference between compilers and interpreters to the familiar everyday situation of landing on an alien planet.
Week 02, September 26
Monday 10:15am | CE1103 | Lecture 02:Regular Languages and Lexical Analysis |
Wednesday 8:15am | INF213 | Labs 02 and cont. Labs 01 |
Wednesday 10:15am | INF213 | Lecture/Exercise 03: Lexical Analysis and Automata |
Week 03, October 3
Monday 10:15am | CE1103 | Lecture/Exercise 04: Lexical Analysis and Automata |
Wednesday 8:15am | INF213 | Labs 02 (cont.) |
Wednesday 10:15am | INF213 | Lecture/Exercise 05: Lexers and Grammars |
Grammar exercise system: http://grammar.epfl.ch
- try “Derivation for a word”
- try “Grammar for a language” (except those mentioning LL(1))
Week 04, October 10
Monday 10:15am | CE1103 | Lecture 06: CYK Parsing, Ambiguity, Building Trees |
Wednesday 8:15am | INF213 | Lecture 07: Building Trees. LL(1) Parsing |
Wednesday 10:15am | INF213 | Labs 03 (Parsing) |
In http://grammar.epfl.ch after Monday:
- try “Conversion to CNF”
- try “CYK parsing”
In http://grammar.epfl.ch after Wednesday:
- try “Grammar for a language” (those asking LL(1))
- try “Tool Expressions” in grammar.epfl.ch
Week 05, October 17
Monday 10:15am | CE1103 | Lecture 08: Follow Sets. Table-Driven LL(1) Parser. Exercises |
Wednesday 8:15am | INF213 | Labs 03 (cont.) |
Wednesday 10:15am | INF213 | Lecture 09: More Name Analysis. Introduction to Type Checking (PDF) |
Week 06, October 24
Monday 10:15am | CE1103 | Lecture 10: LL(1) Example and Type Checking Rules (pptx) (PDF) |
Wednesday 8:15am | INF213 | Labs 04 |
Wednesday 10:15am | INF213 | Lecture 11: Subtyping and Soundness (PDF) |
Week 07, October 31
Monday 10:15am | CE1103 | Lecture 12: Type System Soundness and Exercises (PDF) |
Wednesday 8:15am | INF213 | Labs |
Wednesday 10:15am | INF213 | Lecture 13: Code Generation Introduction (PDF) - short |
Week 08, November 07
Monday 10:15am | CE1103 | Lecture 14: Code Generation: Soundness. Conditionals and Loops (PDF, Leon proof for soundness) |
Wednesday 8:15am | INF213 | Labs 05: Type checking |
Wednesday 10:15am | INF213 | Lecture 15: Code Generation: Complex Control Flow (PDF) and Lecture 15b: Data-Flow Analysis and Control-Flow Graphs (PDF) |
Week 09, November 14
Monday 10:15am | CE1103 | Exercises (PDF) |
Wednesday 8:15am | INF213 | Labs 05 (cont.) |
Wednesday 10:15am | INF213 | Exercises (PDF) |
Week 10, November 21
Monday 10:15am | CE 1103 | Exercises (Continuation of previous exercise session) |
Wednesday 8.15am-11:55 | INF213 and INM 10 | QUIZ |
Week 11, November 28
Monday 10:15am | CE 1103 | Lecture 16: Range Analysis (PDF) - first 23 pages |
Wednesday 8:00am - 10:00 | INF213 | Labs 06: Code Generation |
Wednesday 10:00am - 12:00 | INF213 | Lecture: Finish Range Analysis Slides from Monday (see above) |
Week 12, December 5
Monday 10:15am | CE 1103 | Lecture: Analysis Using Constraint Solving (PDF) |
Wednesday 8:00am - 10:00 | INF213 | Final Project assignment |
Wednesday 10:00am - 12:00 | INF213 | Work on Final Project, Ask Background Questions |
Week 13, December 12
Monday 10:15am | CE 1103 | Labs 06 & Final Project Phase Labs |
Wednesday 8:00am - 12:00 | INF213 | Labs 06 & Final Project Phase Labs |
Week 14, December 19
Monday 10:15am | CE 1103 | Labs 06 & Final Project Phase Labs |
Wednesday 8:00am - 12:00 | INF213 | Presentations of Final Projects |
Last year's edition: 2015
Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5) Creative Commons Licence