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 
                                         
                         
                        