UIMOIBK016 Compilers

Faculty of Philosophy and Science in Opava
Winter 2022
Extent and Intensity
0/0/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
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. Structure of compilers.
  • 2. Lexical analysis. Methods and their implementation.
  • 3. Syntactic analysis, parsing. LL(1), strong LL(k) and strong LR(k) grammars and their implementation.
  • 4. Semantic analysis. Processing of variables and other dynamic parts of code. Intermediary code.
  • 5. Syntax-controlled copilation.
  • 6. Attributed parser and its implementation.
  • 7. Programming of advanced language constructions.
Literature
    required literature
  • VAVREČKOVÁ, Š. Programování překladačů. Opava: Slezská univerzita v Opavě, 2008. ISBN 978-80-7248-493-5. info
    recommended literature
  • COOPER, Keith D. a Linda TORCZON. Engineering a compiler. 2nd ed. Boston: Elsevier/Morgan Kaufmann, 2012. ISBN 978-0-12-088478-0. info
  • GYUNGHO LEE a Pen-Chung YEW (eds). Interaction between compilers and computer architectures. New York: Springer, 2011. ISBN 978-144-1948-960. info
  • MOZGOVOY, Maxim. Algorithms, languages, automata, and compilers: a practical approach. Sudbury, Mass.: Jones and Bartlett Publishers, 2010. ISBN 978-0-7637-7627-5. info
  • SAFONOV, V. O. Trustworthy compilers. Hoboken, N.J.: John Wiley, 2010. ISBN 978-047-0500-958. info
  • GUNDERLOY, Mike. Z kodéra vývojářem: nástroje a techniky pro opravdové programátory. Brno: Computer Press, 2007. ISBN 978-80-251-1517-6. info
  • MELICHAR, B. - ČEŠKA, M. - JEŽEK, K. - RICHTA, K. Konstrukce překladačů I, II. Praha: ČVUT, 1999. info
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 (probably available only in Czech)
Study Materials
The course can also be completed outside the examination period.
Information on the extent and intensity of the course: 12 hod/sem.
The course is also listed under the following terms Winter 2020, Winter 2021, Winter 2023, Winter 2024.
  • Enrolment Statistics (Winter 2022, recent)
  • Permalink: https://is.slu.cz/course/fpf/winter2022/UIMOIBK016