uibk_703602-Compiler-Constr.../slides/intro_slides.md

90 lines
1.6 KiB
Markdown
Raw Normal View History

2019-03-06 15:55:44 +01:00
% Compiler Construction
% Alex Hirsch
2020-02-22 14:59:37 +01:00
% 3 March 2020
2019-03-06 15:55:44 +01:00
# This ProSeminar
## Curriculum
2020-02-22 14:59:37 +01:00
> […] development of a compiler for a simple procedural programming language
2019-03-06 15:55:44 +01:00
## Prerequisites
2020-02-22 14:59:37 +01:00
- This is a master's course!
2019-03-06 15:55:44 +01:00
- Brain
2020-02-22 14:59:37 +01:00
If you struggle too much, do this course at a later time.
You can unregister until the end of April.
2019-03-06 15:55:44 +01:00
- - -
2020-02-22 14:59:37 +01:00
- Fluent in C (or C++, or Go, or Rust, or Haskell)
- General programmer mindset
- Knowing your tools
2019-03-06 15:55:44 +01:00
- Algorithms and data structures
- Graphs + traversal
- Operating systems
- Utilising your software stack
2020-02-22 14:59:37 +01:00
- Assembly (preferably x86)
2019-03-06 15:55:44 +01:00
- - -
- Software development
- Version control system
- Build systems
2020-02-22 14:59:37 +01:00
- Testing
2019-03-06 15:55:44 +01:00
2020-02-22 14:59:37 +01:00
- Project management
- Organisation
- Team communication
2019-03-06 15:55:44 +01:00
- - -
- Formal languages and automata theory
2020-02-22 14:59:37 +01:00
- Grammars + transformations
- Lexer / parser
2019-03-06 15:55:44 +01:00
## 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
2020-02-22 14:59:37 +01:00
- 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
2019-03-06 15:55:44 +01:00
2020-02-22 14:59:37 +01:00
## Submissions
2019-03-06 15:55:44 +01:00
2020-02-22 14:59:37 +01:00
- End of June: build test submission (optional)
- Mid of July: final submission (no extensions)
2019-03-06 15:55:44 +01:00
## Teams
2020-02-22 14:59:37 +01:00
- 13 people
2019-03-06 15:55:44 +01:00
- May span across PS groups
2020-02-22 14:59:37 +01:00
- Send me your team composition via mail within March
2019-03-06 15:55:44 +01:00
## Further Details
- See course material
<https://git.uibk.ac.at/c7031162/703602-Compiler-Construction>