FPF:UINK215 Compilers - Course Information
UINK215 Compilers
Faculty of Philosophy and Science in OpavaWinter 2023
The course is not taught in Winter 2023
- Extent and Intensity
- 6/6/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 - Prerequisites
- ! UIN2015 Compilers
Knowledge of formal languages, grammars (regular, context-free) and their adaptations, finite automata, pushdown automata and programming in Pascal, C, C++ or some similar language are required. - 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
- Computer Science and Technology (programme FPF, B1801 Inf)
- Course objectives
- This subject concentrates on practical use of theoretical computer science in programming with a focus on treating (text) strings including files. Knowledge of theoretical informatics and programming is assumed. Students learn basic methods of representation of the lexical and syntactic structure of the programming language using some types of formal grammars, programming the lexical and syntactic analyzer according to these structures, and continue with the other phases of the compiler programming. Students create their own interpreter of an arbitrary language that includes 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. Intermediary code.
5. Syntax-controlled processing.
6. Attributive interpretation.
7. Programming of advanced language constructions.
- 1. Structure of compilers.
- Literature
- required literature
- Vavrečková, Šárka. WWW stránky předmětu, skripta. URL info
- 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. Základy překladačů. Cvičení. Praha: ČVUT, 1993. info
- MELICHAR, B. Základy překladačů. Praha: ČVUT, 1989. info
- Teaching methods
- Interactive lecture
Lecture supplemented with a discussion
Lecture with a video analysis - Assessment methods
- Written exam
Exam
Written test - 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: Přednáška 6 HOD/SEM, Cvičení 6 HOD/SEM. - Teacher's information
- Students should, in addition to the theoretical side of compilers, be able to create a simple interpreter with a few key words and commands and interpreting mathematical expressions in the chosen programming language. Credit: two tests, each at least 50% points, programming a lexical analysis of own compiler. Exam: written exam. Programming the remaining parts of own compiler.
Activity Difficulty [h] Příprava na zápočet 12 Semestrální práce 4 Účast na výuce 12 Summary 28
- Enrolment Statistics (Winter 2023, recent)
- Permalink: https://is.slu.cz/course/fpf/winter2023/UINK215