% Compiler Construction % Alex Hirsch % 3 March 2020 # This ProSeminar ## Curriculum > […] development of a compiler for a simple procedural programming language ## Prerequisites - This is a master's course! - Brain If you struggle too much, do this course at a later time. You can unregister until the end of April. - - - - Fluent in C (or C++, or Go, or Rust, or Haskell) - General programmer mindset - Knowing your tools - Algorithms and data structures - Graphs + traversal - Operating systems - Utilising your software stack - Assembly (preferably x86) - - - - Software development - Version control system - Build systems - Testing - Project management - Organisation - Team communication - - - - Formal languages and automata theory - Grammars + transformations - Lexer / parser ## Ultimate Goal - Building a compiler - Specification provided - Evaluation scheme provided ## In the Lab - QA sessions - I'll be present for questions - You can work on your compiler ## Requirements - Working compiler - More positive than negative QA sessions ## Recommended Schedule - March: lexer / parser - April: semantic checks, start IR generation - May: finish IR generation, start ASM generation - June: finish ASM generation, CFG generation, polish ## Submissions - End of June: build test submission (optional) - Mid of July: final submission (no extensions) ## Teams - 1–3 people - May span across PS groups - Send me your team composition via mail within March ## Further Details - See course material