====== Compiler Construction 2013 ====== [[http://moodle.epfl.ch/course/view.php?id=4241|Moodle Link]] (for mailing list) {{:cc13:compilers-logo.png?nolink&400|Compiler}} Related Coursera courses: * Compilers by Alex Aiken * Automata by Jeffrey Ullman ===== General Information ===== Note that: * the time slots for lectures, exercises, and labs are interchangeable * attendance is strongly recommended in all slots Will follow the structure of [[cc12:top|Compiler Construction in 2012]]. Know [[http://www.scala-lang.org/|Scala]], if needed see the [[:Programming in Scala|great Scala book]] and [[https://www.coursera.org/course/progfun|the wonderful online course]] ===== Staff ===== | **Instructor** | [[http://lara.epfl.ch/~kuncak|Viktor Kuncak]] | | **PhD Assistants** | [[http://people.epfl.ch/mikael.mayer|Mikael Mayer]] and [[http://people.epfl.ch/etienne.kneuss|Etienne Kneuss]] | | **Secretary** | [[http://people.epfl.ch/yvette.gallay|Yvette Gallay]] | ===== Grading ===== * 55% Project * 20% Mid-term quiz in October * 25% End-of-term quiz in December ==== Mid-Term Quiz ==== The quiz will take place **Wednesday 23.10.2013** in **INM 202** from **8:00 to 12:00**. Please be in front of INM 202 at **8:00am** so that we arrange where you sit and so that you can start at the latest by 8:15am. ===== Stuff: Course Materials ===== ==== Week 01, September 16 ==== | Wednesday 8:15am | INM202 | [[lecture01|Lecture 01: Introduction to Compilers]] | | Wednesday 10:15am | INM202 | Labs (**always bring own laptops**) [[Labs setup]] and then [[Labs 01]] | ==== Week 02, September 23 ==== | Monday 10:15am | INM202 | [[lecturecise02|Lecturecise 02: Building Lexers]] | | Wednesday 8:15am | INM202 | [[lecturecise03|Lecturecise 03: From Regular Expressions to Automata and Lexers]] (Mikael) | | Wednesday 10:15am | INM202 | Complete ([[Labs setup]] and) [[Labs 01]] | ==== Week 03, September 30 ==== | Monday 10:15am | INM202 | [[lecturecise04|Lecturecise 04: Grammars and Parsers]] | | Wednesday 8:15am | INM202 | [[Lecturecise05|Lecturecise 05: Regular Expressions, Ambiguous Grammars and Parsing]] | | Wednesday 10:15am | INM202 | [[Labs 02|Labs 02: Lexer]] | ==== Week 04, October 07 ==== | Monday 10:15am | INM202 | [[lecturecise06|Lecturecise 06: Resolving Ambiguity and Building Trees. First and follow sets for LL(1) Parsing]] | | Wednesday 8:15am | INM202 | [[lecturecise07|Lecturecise 07: CYK Parsing]] | | Wednesday 10:15am | INM202 | Finish [[Labs 02|Labs 02: Lexer]] | ==== Week 05, October 14 ==== | Monday 10:15am | INM202 | [[lecturecise08|Lecturecise 08: Exercises with Grammars]] | | Wednesday 8:15am | INM202 | [[lecturecise09|Lecturecise 09: Exercises with Grammars]] | | Wednesday 10:15am | INM202 | [[labs_03|Labs 03: Parser]] | ==== Week 06, October 21 ==== | Monday 10:15am | INM202 | [[Lecturecise10|Lecturecise 10: Final Notes on Parsing]] | | Wednesday 8:15am | INM202 | **Mid-term Quiz** | | Wednesday 10:15am | INM202 | **Mid-term Quiz** | ---- **Material for second quiz starts here** ---- ==== Week 07, October 28 ==== | Monday 10:15am | INM202 | [[Lecturecise11|Lecturecise 11: Name Analysis and Type Checking]] | | Wednesday 8:15am | INM202 | [[Lecturecise12|Lecturecise 12: Type Checking]] | | Wednesday 10:15am | INM202 | [[Lecturecise13|Lecturecise 13: Type Soundness]] | ==== Week 08, November 4 ==== | Monday 10:15am | INM202 | [[Lecturecise14|Lecturecise 14: Code Generation for Expressions]] | | Wednesday 8:15am | INM202 | [[Lecturecise15|Lecturecise 15: Type Checking Exercises]] | | Wednesday 10:15am | INM202 | [[Labs_04| Labs 04: Name Analysis]] | ==== Week 08, November 11 ==== | Monday 10:15am | INM202 | [[Lecturecise16|Lecturecise 16: Code Generation for Booleans and Control]] | | Wednesday 8:15am | INM202 | [[cc13:lecturecise17|Lecturecise 17: Code Generation Exercises]] | | Wednesday 10:15am | INM202 | [[Labs_04| Labs 04: Name Analysis]] & [[Labs_05| Labs 05: Type Checking]] | ==== Week 09, November 18 ==== | Monday 10:15am | INM202 | [[Lecturecise18|Lecturecise 18: Destination Passing]] | | Tuesday, Nov. 19th, 11.59pm (23h59) | | **name analysis due** | | Wednesday 8:15am | INM202 | [[Lecturecise19|Lecturecise 19: Discussion of Quiz Solutions]] | | Wednesday 10:15am | INM202 | [[Labs_05| Labs 05: Type Checking]] | ==== Week 10, November 25 ==== | Monday 10:15am | INM202 | [[Lecturecise20|Lecturecise 20: Type Inference]] | | Tuesday, Nov. 26th, 11.59pm (23h59) | | **type checking due** | | Wednesday 8:15am | INM202 | [[cc13:lecturecise21|Lecturecise 21: More on type inference]] | | Wednesday 10:15am | INM202 | [[Labs_06| Labs 06: Code Generation]] | ==== Week 11, December 2 ==== | Monday 10:15am | INM202 | [[Lecturecise22|Lecturecise 22: Data Flow Analysis]] | | Tuesday 11.59pm (23h59) | | **Code Generation due** | | Wednesday 8:15am | INM202 | [[lecturecise23|Lecturecise 23: Range Analysis Exercises]] | | Wednesday 10:15am | INM202 | [[Labs_06|Labs 06: Code Generation]] | ==== Week 12, December 9 ==== | Monday 10:15am | INM202 | [[Lecturecise24|Lecturecise 24: Termination of Analysis. Initialization, Live Variables and Register Allocation Concept]] | | Wednesday 8:15am | INM202 | [[Lecturecise25|Lecturecise 25: Register Allocation using Graph Coloring]] | | Wednesday 10:15am | INM202 | [[Labs_07|Labs 07: Mini Projects]] | ==== Week 13, December 16 ==== | Monday 10:15am | INM202 | [[Lecturecise26|Lecturecise 26: Exercises on Type Checking, Code Generation, and Data-Flow Analysis]] | | Wednesday 8:00am-noon | INM202 | Quiz | ===== Typical Schedule ===== {{cc13:initial-schedule-cc2013.jpg|Schedule}} ===== Misc ==== [[http://isa.epfl.ch/imoniteur_ISAP/!itffichecours.htm?ww_i_matiere=24092156&ww_x_anneeacad=213637754&ww_i_section=946228&ww_i_niveau=6683117&ww_c_langue=en|Official Course Page with Resources]] [[http://creativecommons.org/licenses/by-sa/2.5/| Attribution-ShareAlike 2.5 Generic (CC BY-SA 2.5) Creative Commons Licence]]