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