|
Vyučující
|
-
Masopust Tomáš, prof. RNDr. Ph.D., DSc.
-
Večerka Arnošt, RNDr.
|
|
Obsah předmětu
|
Kurs studenty seznamuje se základními výsledky a metodami teorie překladačů s důrazem na proces, jakým probíhá překlad ze zdrojového do cílového jazyka. Probírané partie zahrnují pokročilé vlastnosti bezkontextových jazyků a deterministickou syntaktickou analýzu. Studenti jsou dále seznámeni s technikami sémantické analýzy, vytváření interních forem a základními metodami překladu. 1. Základní struktura překladače. Fáze analýzy a syntézy překladu. 2. Lexikální analýza, její úloha a konstrukce lexikálního analyzátoru. 3.Bezkontextové jazyky a jejich vlastnosti. 4. Deterministické zásobníkové automaty. Deterministická syntaktická analýza, množiny First a Follow. 5.Syntaktická analýza shora-dolů, gramatiky LL(1). Konstrukce syntaktického analyzátoru metodou rekurzivního sestupu. 6.Syntaktická analýza zdola-nahoru. Konstrukce syntaktického analyzátoru pro gramatiky SLR(1), LR(0), LALR(1) a LR(1). 7. Syntaktické chyby při překladu, jejich ošetření a zotavení z chyb při syntaktické analýze. 8. Nástroje pro generování lexikálních a syntaktických analyzátorů (lex, yacc). 9. Sémantická analýza. Atributové gramatiky a jejich specifické typy pro analýzu shora-dolů a analýzu zdola-nahoru. 10. Interní formy programu. Překlad základních příkazů programovacích jazyků do interní formy. 11. Tabulky symbolů a prostředí programu. Úvod do generování kódu.
|
|
Studijní aktivity a metody výuky
|
|
nespecifikováno
|
|
Výstupy z učení
|
Studenti se seznámí se základními pojmy z překladačů.
|
|
Předpoklady
|
nespecifikováno
|
|
Hodnoticí metody a kritéria
|
nespecifikováno
Aktivní účast v hodině. Plnění zadaných úkolů. Složení ústní (příp. písemné) zkoušky.
|
|
Doporučená literatura
|
-
Aho A.-V., Lam M.-S., Sethi R., Ullman J.-D. (2006). Compilers: Principles, Techniques, and Tools.
-
Cooper K. D., Torczon L. (2022). Engineering a Compiler (3rd ed.).
-
Mogensen T. ?. (2024). Introduction to Compiler Design (3rd ed.).
-
Sandler N. (2024). Writing a C Compiler.
-
Siek J. G. (2023). Essentials of Compilation: An Incremental Approach in Python.
|