Basic concepts about the compiling process
Implementation of a complete compiler for an example language
Usage of some tools
Integration of several concepts in one project
Deeper understanding of some linguistic mechanisms
Application of some of the techniques and tools in other contexts
Development of a sizable programming project
Good programming knowledge and experience with C (or willing to learn)
Experience with programming tools (editors, make files, frameworks, ...)
Concepts of programming languages
Basic concepts of low-level programming: memory, addresses, registers, instructions, simple assembly language
Data structures (stacks, lists, trees, tables, ...)
Programming techniques (recursion, modularization, debugging, ...)
Basic notions about regular expressions and languages (desirable)
Basic notions about context-free grammars and languages (desirable)
First class: Thursday, 17 September 2020, 14:00
Final project due: 15 January 2021 (extended until 25 January 2021)
The project is strictly individual
No written tests
Any attempts to cheat on the project imply a failing grade and possibly other administrative sanctions
Any transgressions of the University or Institute rules regarding usage of computational facilities imply a failing grade and possibly other administrative sanctions