Detail předmětu

Výstavba překladačů (v angličtině)

VYPa Ak. rok 2021/2022 zimní semestr 5 kreditů

Aktuální akademický rok

Předmět diskutuje pokročilá a doplňující témata týkající se konstrukce překladačů, která svou náročností překračují bakalářskou úroveň. Tato diskuse se bude soustředit na následující tři okruhy: (I) Pokročilá témata konstrukce klasických kompilátorů: konstrukce LR rozkladových tabulek, precedenční analýza vyššího řádu, důležité metody syntaktické analýzy s návraty, pokročilé metody optimalizace. (II) Principy paralelních kompilátorů: struktura paralelního překladače, fundamentální metody paralelní syntaktické analýzy, základní modely pro paralelní překlad. (III) Formální překladové modely a jejich vlastnosti: převodníky, překladové gramatiky, vlastnosti syntaxí řízených překladů (charakterizující jazyky, nekonečná hierarchie překladů apod.), vlastnosti formálních jazyků relevantní pro překladače, moderní formální modely pro překlad.

Garant předmětu

Koordinátor předmětu

Jazyk výuky

anglicky

Zakončení

zkouška (písemná)

Rozsah

  • 39 hod. přednášky
  • 13 hod. projekty

Bodové hodnocení

  • 55 bodů závěrečná zkouška (písemná část)
  • 15 bodů půlsemestrální test (písemná část)
  • 30 bodů projekty

Zajišťuje ústav

Přednášející

Cvičící

Stránky předmětu

Získané dovednosti, znalosti a kompetence z předmětu

Schopnost sestrojit náročný překladač, včetně moderního paralelního kompilátoru. Hluboká obeznámenost s formálními překladovými modely a jejich vlastnostmi.
Obecná znalost formálních modelů pro překlad a jejich aplikace.

Cíle předmětu

Detailně objasnit konstrukci překladačů, včetně moderních paralelních kompilátorů. Podrobně se seznámit s formálními překladovými modely a jejich vlastnostmi.

Proč je předmět vyučován

V předmětu VYPa se na magisterské úrovni vyučuje tvorba překladačů, což vyžaduje správnou kombinaci teoretických znalostí i praktických dovedností. Z teorie představuje matematické modely jako automaty a gramatiky, které stojí v pozadí překladu a jeho fází. Na základě těchto modelů jsou potom co nejpřístupnějším způsobem vyučovány další koncepty, metody a techniky používané při návrhu překladačů.

Z praktického pohledu jsou vyučovány vybrané techniky implementace překladačů. U těchto technik je krok za krokem probírána jejich implementace. Dále je prezentována řada příkladů a programů, které ukazují aplikace různých algoritmů pro překlad.

Po absolvování kurzu by měl být student schopen chápat proces překladu, tvorby překladače a měl by být schopen se dále v dané oblasti zdokonalovat s využitím pokročilé literatury.

Požadované prerekvizitní znalosti a dovednosti

Základní znalost diskrétní matematiky.

Literatura studijní

  • Češka, M., Ježek, K., Melichar B., Richta K.: Konstrukce překladačů, Praha, CZ, ČVUT, 1999, 636 s., ISBN 80-01-02028-2
  • Grune, D.: Modern Compiler Design, 2. vydání, Springer, 2016, 846 s., ISBN 9781493944729
  • Cooper, K.D.: Engineering a Compiler, San Francisco, Morgan Kaufmann, 2004, 879 s., ISBN 155860698X
  • Wilhelm, R., Seidl, H.: Compiler Design: Virtual Machines, Springer, 2010, 187 s., ISBN 978-3-642-14908-5

Osnova přednášek

  1. Úvod: zopakování struktury překladače.
  2. Deterministická syntaktická analýza zdola nahoru: konstrukce LR rozkladových tabulek.
  3. Deterministická syntaktická analýza zdola nahoru: precedenční analýza vyššího řádu.
  4. Obecná syntaktická analýza: důležité metody syntaktické analýzy s návraty.
  5. Pokročilé metody optimalizace.
  6. Paralelní kompilátory: struktura paralelního překladače.
  7. Paralelní syntaktická analýza: principy.
  8. Deterministická paralelní syntaktická analýza shora dolů.
  9. Deterministická paralelní syntaktická analýza zdola nahoru.
  10. Generování paralelního kódu.
  11. Moderní formální prostředky pro specifikaci jazyka: řízené a paralelní modely.
  12. Formální prostředky pro specifikaci překladu: převodníky a překladové gramatiky.
  13. Očekávané budoucí trendy, shrnutí, závěr.

Osnova ostatní - projekty, práce

  1. Vytvoření pokročilého kompilátoru.
  2. Příprava a prezentace vybraného tématu o kompilátorech.

Průběžná kontrola studia

  • Půlsemestrální písemná zkouška - 15 bodů
  • Hodnocené projekt(y) - 30 bodů
  • Závěrečná písemná zkouška - 55 bodů

Kontrolovaná výuka

Pokud v průběhu semestru student onemocní nebo se vyskytne jiná překážka ve studiu, je třeba tuto překážku řádně ohlásit a doložit. Pak k ní lze přihlédnout a přizpůsobit jí hodnocení:

  • U projektu může student požádat příslušného učitele o přiměřené prodloužení termínu pro odevzdání.
  • Pokud se student nemohl zúčastnit půlsemestrální zkoušky, může přednášejícího požádat, aby body za půlsemestrální zkoušku byly odvozeny od bodového zisku u prvního termínu zkoušky, kterého se zúčastní.
  • Pokud se student nemůže zúčastnit obhajoby projektu a ostatní členové týmu s tím vysloví souhlas, může získat za obhajobu stejný počet bodů jako na obhajobě přítomní členové týmu.

Zařazení předmětu ve studijních plánech

Nahoru