UINK215 Compilers

Faculty of Philosophy and Science in Opava
Winter 2019
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
TYP_STUDIA(B)
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
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.
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.
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)
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.
ActivityDifficulty [h]
Příprava na zápočet12
Semestrální práce4
Účast na výuce12
Summary28
The course is also listed under the following terms Winter 2009, Winter 2010, Winter 2011, Winter 2012, Winter 2013, Winter 2014, Winter 2015, Winter 2016, Winter 2017, Winter 2018, Winter 2020, Winter 2021, Winter 2022.
  • Enrolment Statistics (Winter 2019, recent)
  • Permalink: https://is.slu.cz/course/fpf/winter2019/UINK215