Formal Languages and Compilers
* This course is prepared for incoming Erasmus+ students only, and it is instructed in English.
* This course will be open if a certain/sure minimum of enrolled students is at least five students.
|Hour/sem||Lectures||Sem. Exercises||Lab. exercises||Comp. exercises||Other|
|Guarantee:||Meduna Alexander, prof. RNDr., CSc., DIFS|
|Lecturer:||Charvát Lucie, Ing., DIFS|
Krčmář Radim, Ing., DIFS
|Instructor:||Charvát Lucie, Ing., DIFS|
Krčmář Radim, Ing., DIFS
|Faculty:||Faculty of Information Technology BUT|
|Department:||Department of Information Systems FIT BUT|
| || ||Familiarity with formal languages and their models. Grasp of compiler construction.|
| || ||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.|
|Knowledge and skills required for the course:|
| || ||Discrete mathematics.|
|Learning outcomes and competences:|
| || ||Fundamental familiarity with the theory of formal languages. Ability of a compiler construction.|
|Syllabus of lectures:|
- Basics of formal languages: alphabet, strings, languages.
- Introduction to compiler design: structure of a compiler.
- Regular languages and their models: regular expressions, finite automata.
- Variants of finite automata.
- Lexical analysis: lexical analyzer, symbol table.
- Context-free languages and their models: context-free grammars, pushdown automata.
- Pushdown automata and general parsing.
- Deterministic top-down syntax analysis: recursive descent.
- Deterministic bottom-up syntax analysis: simple precedence analysis.
- Chomsky hierarchy and the corresponding models. Remarks and summary.
- Parsons, T. W.: Introduction to Compiler Construction. Freeman, New York, 1992.
- Copy of lectures.
- Meduna, A.: Automata and Languages. London, Springer, 2000.
| || ||Midterm. Checking the project solution by the teacher.|
| || ||To be allowed to take the final exam, the student has to obtain 20 points during the semester; out of these 20 points, at least five points have to be obtained from the project.|