Course detail
Formal Languages and Compilers
FIT-IFJAcad. year: 2017/2018
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 and transducers, lexical analyzer; Lex; symbol table. (III) Context-free languages and syntax analysis: context-free grammars, pushdown automata and transducers, deterministic top-down syntax analysis (recursive descent), the essence of deterministic bottom-up syntax analysis; Yacc. (IV) Semantic analysis and code generation: semantic checks, intermediate code generation, optimization, code generation.
Language of instruction
Number of ECTS credits
Mode of study
Guarantor
Department
Learning outcomes of the course unit
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
- Syllabus of lectures:
- Formal languages.
- Translation of languages and the structure of a compiler.
- Regular languages and their models: regular expressions and finite automata.
- Lexical analysis: lexical analyzer; Lex; symbol table.
- Context-free languages and their models: context-free grammars and pushdown automata.
- Syntax analysis: deterministic syntax analysis, FIRST and FOLLOW, LL grammars.
- Deterministic top-down syntax analysis: recursive descent.
- Deterministic bottom-up syntax analysis: simple precedence analysis; Yacc.
- Semantic analysis and intermediate form generation.
- Optimization.
- Code generation.
- Chomsky hierarchy and the corresponding models.
- Remarks and summary. Preliminary discussion of the VYPe contents.
Syllabus - others, projects and individual work of students:
Students in teams (3 through 5 students per a team) implement a compiler/interpreter of a simple programming language (including a documentation).
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
- recommended prerequisite
Discrete Mathematics
Basic literature
Recommended reading
Classification of course in study plans
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
- Formal languages.
- Translation of languages and the structure of a compiler.
- Regular languages and their models: regular expressions and finite automata.
- Lexical analysis: lexical analyzer; Lex; symbol table.
- Context-free languages and their models: context-free grammars and pushdown automata.
- Syntax analysis: deterministic syntax analysis, FIRST and FOLLOW, LL grammars.
- Deterministic top-down syntax analysis: recursive descent.
- Deterministic bottom-up syntax analysis: simple precedence analysis; Yacc.
- Semantic analysis and intermediate form generation.
- Optimization.
- Code generation.
- Chomsky hierarchy and the corresponding models.
- Remarks and summary. Preliminary discussion of the VYPe contents.