Course Information for Compiler Construction (CS-320)
Staff
Lectures:
Practical and Theoretical Exercises:
Assistants-Étudiants
- Sebastian Gfeller
- Cédric Lavanchy
- Ersoy Bayramoglu
Secretary: Danielle Chamberlain
Schedule
- Mondays 10:15-12:00 - Lectures in INM 202
Official Schedule in PDF
Grading
-
- 20% - solve homework exercises similar to ones done in sessions
- 20% - continuous-control quiz (not a final exam), on Wednesday, 17 December
The deadlines for the various steps of the project are set on Moodle.
Homework exercises are due one week after they were given out (except for the first sheet, for which you have two weeks). Bring your solutions to the beginning of the following exercise session.
Collaboration Policy
You are encouraged to work in groups of 2 people on project
- everyone should understand every part of code
- we may ask you to explain specific parts of your solution
Do not copy solutions from other groups
- we will use plagiarism detection tools
- we may ask you to explain specific parts of your solution
Course Material
Official Textbook: Tiger book although we do not strictly follow it:
- program in Scala instead of Java
- use pattern matching instead of visitors
- use hand-written parsers in the project (not parser generators)
Additional material will be provided on the wiki
- no PPT,PDF slides
- wiki is simple, non-proprietary, linked to WWW
Other useful texts:
- Compilers: Principles, Techniques, and Tools (2nd Edition) by Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
- Alfred V. Aho, Jeffrey D. Ullman: Theory of Parsing, Translation and Compiling (in-depth explanations of parsing)
- Parsing Techniques - A Practical Guide (1st edition is online)
- Formal Syntax and Semantics of Programming Languages: A Laboratory-Based Approach by Ken Slonneger and Barry L. Kurtz
Prerequisites
The following courses of their equivalents are prerequisites for this course:
- Discrete structures (CS-150)
- Algorithms (CS-250)
- Theoretical Computer Science (CS-251)
Not required but highly recommended are:
- Advanced Theoretical Computer Science