UIINK28 Překladače

Filozoficko-přírodovědecká fakulta v Opavě
zima 2023
Rozsah
12/0/0. Přednáška 12 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
Algoritmy a programování II
Teorie jazyků a automatů I
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í, syntaktické a sémantické struktury programovacího jazyka pomocí některých typů formálních gramatik a postupy jejich implementace. Součástí předmětu 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 lexikální analýzy a jejich implementace.
  • 3.–5. Syntaktická analýza, LL(1), silné LL(k) gramatiky, jejich využití a implementace.
  • 6.–7. Syntaktická analýza s využitím silných LR(k) gramatik, implementace.
  • 8. Sémantická analýza. Tabulka symbolů a její implementace. Intermediální kód.
  • 9.–10. Syntaxí řízený překlad.
  • 11.–12. Atributovaný překlad a jeho iplementace.
  • 13. Programování pokročilejších jazykových konstrukcí.
Literatura
    povinná literatura
  • VAVREČKOVÁ, Šárka. Programování překladačů (rozpracovaná nová verze). Slezská univerzita v Opavě, 2023.
  • VAVREČKOVÁ, Š. Programování překladačů. Opava: Slezská univerzita v Opavě, 2008. ISBN 978-80-7248-493-5. info
    doporučená literatura
  • THAIN, Douglas. Introduction to Compilers and Language Design. Second edition. University of Notre Dame, 2020, revision date: 2023. ISBN 979-8-655-18026-0. Dostupné na: https://www3.nd.edu/~dthain/compilerbook/compilerbook.pdf
  • PRATA, Stephen. Mistrovství v C++. Computer Press, 2013, dotisk 2023. ISBN 978-80-251-3828-1.
  • COOPER, Keith D. a Linda TORCZON. Engineering a compiler. 2nd ed. Boston: Elsevier/Morgan Kaufmann, 2012. ISBN 978-0-12-088478-0. 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
Výukové metody
Přednáška s aktivizací
Přednáška s diskusí
Cvičení
Projekt
Metody hodnocení
Zápočet:
- Povinná účast na cvičeních min. 75 %.
- Dvě písemky, úspěšnost min. 50 % z každé.
- Naprogramování lexikální analýzy jednoduchého překladače.
Zkouška:
- Písemná, seznam otázek je na webu předmětu.
- Naprogramování vlastního interpretačního překladače ve zvoleném programovacím jazyce.
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 2019, zima 2020, zima 2021, zima 2022, zima 2024.