UIINP28 Compilers

Faculty of Philosophy and Science in Opava
Winter 2024
Extent and Intensity
2/2/0. 6 credit(s). Type of Completion: zk (examination).
Teacher(s)
RNDr. Šárka Vavrečková, Ph.D. (lecturer)
RNDr. Šárka Vavrečková, Ph.D. (seminar tutor)
Guaranteed by
RNDr. Šárka Vavrečková, Ph.D.
Institute of Computer Science – Faculty of Philosophy and Science in Opava
Timetable
Tue 11:25–13:00 B2
  • Timetable of Seminar Groups:
UIINP28/A: Tue 16:25–18:00 LEI, Š. Vavrečková
Prerequisites
Algorithms and Programming II
Theory of languages and automata I
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
fields of study / plans the course is directly associated with
Course objectives
This subject concentrates on practical usage of theoretical computer science in programming with a focus on the compilation of text strings, including files. Knowledge of theory of computing (formal languages, finite and pushdown automata) and programming is required. Students learn basic methods of representation of the lexical and syntactic structure of a programming language using some types of formal grammars, programming lexical and syntactic analyzer according to these structures, and continue with the other phases of compiler programming. Students create the own simple compiler (interpreter) of an arbitrary language, involving working with mathematical expressions.
Learning outcomes
Students will be able to:
- describe basic procedures for creating of the lexical and syntactic structure of a programming language using some types of formal grammars,
- design the lexical analyzer and syntactic parser according to these structures,
- program the own simple compiler.
Syllabus
  • 1. Compiler structure.
  • 2. Lexical analysis. Methods of lexical analysis and their implementation.
  • 3.–5. Syntactic analysis, LL(1), strong LL(k) grammars, their use and implementation.
  • 6.–7. Syntactic analysis using strong LR(k) grammars, implementation.
  • 8. Semantic analysis. Symbol table and its implementation. Intermediate code.
  • 9.–10. Syntax-Directed Compilation.
  • 11.–12. Attribute-directed compilation and its implementation.
  • 13. Programming more advanced language constructs.
Teaching methods
Interactive lecture
Lecture with a discussion
Exercises
Project
Assessment methods
Credit:
- Compulsory attendance at seminars min. 75 %.
- Two tests, min. 50 % points from each.
- Programming: lexical analysis of simple compiler.
Exam:
- Written, a list of questions is on the web of the subject.
- Programming own interpreter in the selected programming language.
Language of instruction
Czech
Further Comments
Study Materials
The course can also be completed outside the examination period.
The course is also listed under the following terms Winter 2019, Winter 2020, Winter 2021, Winter 2022, Winter 2023.
  • Enrolment Statistics (recent)
  • Permalink: https://is.slu.cz/course/fpf/winter2024/UIINP28