Add transcript to intro slides
This commit is contained in:
parent
a478dc051b
commit
c13596c24c
@ -8,6 +8,13 @@
|
||||
|
||||
> […] development of a compiler for a simple procedural programming language
|
||||
|
||||
<aside class="notes">
|
||||
As stated by the curriculum, your task is to build a simple compiler for a small procedural programming language.
|
||||
It's quite hard to fit this goal into the 5 ECTS budget of this module (lecture included), nevertheless I think I found the right trade-offs with the given specification.
|
||||
|
||||
Still, it is highly recommended to work in teams and that you start early - always trying to be ahead of schedule.
|
||||
</aside>
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- This is a master's course!
|
||||
@ -16,6 +23,15 @@
|
||||
If you struggle too much, do this course at a later time.
|
||||
You can unregister until the end of April.
|
||||
|
||||
<aside class="notes">
|
||||
By now, this course is notorious for requiring a lot of effort.
|
||||
The legends are true; I am indeed expecting a decent level of skill from all of you.
|
||||
This is a master's course after all.
|
||||
|
||||
While I don't care whether you have officially finished your bachelor, you should only take this course if you are certain that you meet the prerequisites.
|
||||
Otherwise, skip it for now and come back to it when you have acquired the necessary knowledge.
|
||||
</aside>
|
||||
|
||||
- - -
|
||||
|
||||
- Fluent in C (or C++, or Go, or Rust, or Haskell)
|
||||
@ -30,6 +46,13 @@ You can unregister until the end of April.
|
||||
|
||||
- Assembly (preferably x86)
|
||||
|
||||
<aside class="notes">
|
||||
Since this course is very programming intensive, you need to be fluent in one of these languages.
|
||||
If choose C and think strings are compared using `==` you'll have a very hard time.
|
||||
|
||||
For OS, if you think calling `exec` without `fork` while implementing a library is a good idea, maybe revisit the corresponding lecture would be a good idea.
|
||||
</aside>
|
||||
|
||||
- - -
|
||||
|
||||
- Software development
|
||||
@ -41,12 +64,21 @@ You can unregister until the end of April.
|
||||
- Organisation
|
||||
- Team communication
|
||||
|
||||
<aside class="notes">
|
||||
As already mentioned, the schedule is quite tight, hence good organisation and software development skills are paramount.
|
||||
</aside>
|
||||
|
||||
- - -
|
||||
|
||||
- Formal languages and automata theory
|
||||
- Grammars + transformations
|
||||
- Lexer / parser
|
||||
|
||||
<aside class="notes">
|
||||
I also recommend doing this course only after having completed FLAT.
|
||||
The lecture and proseminar assumes that you are familiar with the basics of grammars (plus related transformations), lexers, and parsers.
|
||||
</aside>
|
||||
|
||||
## Ultimate Goal
|
||||
|
||||
- Building a compiler
|
||||
@ -71,6 +103,10 @@ You can unregister until the end of April.
|
||||
- May: finish IR generation, start ASM generation
|
||||
- June: finish ASM generation, CFG generation, polish
|
||||
|
||||
<aside class="notes">
|
||||
You are free to deviate from this schedule.
|
||||
</aside>
|
||||
|
||||
## Submissions
|
||||
|
||||
- End of June: build test submission (optional)
|
||||
|
Loading…
Reference in New Issue
Block a user