FPF:UIINP28 Compilers - Course Information
UIINP28 Compilers
Faculty of Philosophy and Science in OpavaWinter 2020
- 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
- Mon 9:45–11:20 B4
- Timetable of Seminar Groups:
- Prerequisites
- TYP_STUDIA(B)
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
- Informatics B/P (programme FPF, INFOR-bpk)
- 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
- Study Materials
The course can also be completed outside the examination period.
- Enrolment Statistics (Winter 2020, recent)
- Permalink: https://is.slu.cz/course/fpf/winter2020/UIINP28