This course discusses formal languages and their models. Based on these models, it explains the construction of compilers. The lectures are organized as follows: (I) Basic notions: formal languages and their models, grammars, automata; compilers. (II) Regular languages and lexical analysis: regular languages and expressions, finite automata, lexical analyzer; symbol table. (III) Context-free languages and syntax analysis: context-free grammars, pushdown automata, deterministic top-down syntax analysis (recursive descent), the essence of deterministic bottom-up syntax analysis. (IV) Semantic analysis and code generation: intermediate code generation, optimization, code generation.
Instructors: Alexandr Meduna, Zbyněk Křivka, Martin Havel
Start Date:
End Date:
Mode:
Credits: 5 ECTS
Learning Outcomes:
- Familiarity with formal languages and their models.
- Grasp of compiler construction.
- Fundamental familiarity with the theory of formal languages.
- Ability of a compiler construction.
Workload:
Prerequisites: Discrete mathematics
Languages: eng
Link: Course Link