90 lines
1.6 KiB
Markdown
90 lines
1.6 KiB
Markdown
% 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
|
||
|
||
<https://git.uibk.ac.at/c7031162/703602-Compiler-Construction>
|