UINK215 Překladače

Filozoficko-přírodovědecká fakulta v Opavě
zima 2023

Předmět se v období zima 2023 nevypisuje.

Rozsah
6/6/0. Přednáška 6 HOD/SEM, Cvičení 6 HOD/SEM. 6 kr. Ukončení: zk.
Vyučující
RNDr. Šárka Vavrečková, Ph.D. (přednášející)
RNDr. Šárka Vavrečková, Ph.D. (cvičící)
Garance
RNDr. Šárka Vavrečková, Ph.D.
Ústav informatiky – Filozoficko-přírodovědecká fakulta v Opavě
Předpoklady
! UIN2015 Překladače
Předpokládá se znalost formálních jazyků, gramatik (regulárních, bezkontextových), konečných a zásobníkových automatů, a programování v Pascalu, C, C++ nebo jiném podobném jazyce.
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Mateřské obory/plány
Cíle předmětu
Předmět Překladače je pojat jako praktické využití teoretické informatiky v programování se zaměřením na překlad (textových) řetězců včetně souborů. Předpokládají se znalosti teoretické informatiky a programování. Studenti se učí základní postupy reprezentace lexikální a syntaktické struktury programovacího jazyka pomocí některých typů formálních gramatik, naprogramování lexikálního a syntaktického analyzátoru podle těchto struktur, a dále pokračují ostatními fázemi naprogramování překladače. Součástí kurzu je také naprogramování vlastního interpretačního překladače libovolného jazyka zahrnujícího práci s matematickými výrazy.
Výstupy z učení
Student bude po absolvování předmětu schopen:
- popsat základní postupy vytvoření lexikální a syntaktické struktury programovacího jazyka pomocí některých typů formálních gramatik,
- navrhnout lexikální a syntaktický analyzátor podle těchto struktur a přidat sémantickou analýzu,
- naprogramovat svůj vlastní jednoduchý překladač.
Osnova
  • 1. Struktura překladače.
    2. Lexikální analýza. Metody a jejich implementace.
    3. Syntaktická analýza, LL(1), silné LL(k) a silné LR(k) gramatiky a jejich implementace.
    4. Sémantická analýza. Tabulka symbolů a její implementace. Intermediální kód.
    5. Syntaxí řízený překlad.
    6. Atributovaný překlad a jeho iplementace.
    7. Programování pokročilejších jazykových konstrukcí.
Literatura
    povinná literatura
  • 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
    doporučená literatura
  • 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
Výukové metody
Přednáška s aktivizací
Přednáška s diskusí
Přednáška s analýzou videozáznamu
Projekce (statická, dynamická)
Metody hodnocení
Písemná zkouška
Rozbor produktů pracovní činnosti studenta (technické práce)
Zkouška
Písemný test
Informace učitele
Studenti by kromě teoretické stránky tvorby překladačů měli zvládnout vytvoření vlastního jednoduchého interpretačního překladače s několika klíčovými slovy a příkazy a interpretováním matematických výrazů, ve zvoleném programovacím jazyce.
Zápočet: dvě písemky, každá min. 50 % bodů, naprogramování lexikální analýzy vlastního překladače.
Zkouška: písemná zkouška. Naprogramování zbývajících částí vlastního překladače.
Aktivity Náročnost [h]
Příprava na zápočet 12
Semestrální práce 4
Účast na výuce 12
Celkem 28
Další komentáře
Studijní materiály
Předmět je dovoleno ukončit i mimo zkouškové období.
Předmět je zařazen také v obdobích zima 2009, zima 2010, zima 2011, zima 2012, zima 2013, zima 2014, zima 2015, zima 2016, zima 2017, zima 2018, zima 2019, zima 2020, zima 2021, zima 2022.