Detail předmětu

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

FIT-VYPaAk. rok: 2020/2021

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.

Výsledky učení 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.

Prerekvizity

Základní znalost diskrétní matematiky.

Doporučená nebo povinná literatura

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

Způsob a kritéria hodnocení

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

Jazyk výuky

angličtina

Cíl

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.

Vymezení kontrolované výuky a způsob jejího provádění a formy nahrazování zameškané výuky

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

  • Program IT-MGR-2 magisterský navazující

    obor MBS , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    obor MBI , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    obor MIS , libovolný ročník, zimní semestr, 5 kreditů, povinně volitelný
    obor MIN , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    obor MMI , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    obor MMM , libovolný ročník, zimní semestr, 5 kreditů, povinný
    obor MGM , libovolný ročník, zimní semestr, 5 kreditů, volitelný

  • Program IT-MGR-2 magisterský navazující

    obor MGMe , libovolný ročník, zimní semestr, 5 kreditů, povinně volitelný

  • Program IT-MGR-2 magisterský navazující

    obor MPV , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    obor MSK , libovolný ročník, zimní semestr, 5 kreditů, volitelný

  • Program MITAI magisterský navazující

    specializace NBIO , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NISD , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NISY , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NIDE , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NCPS , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NSEC , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NMAT , libovolný ročník, zimní semestr, 5 kreditů, povinný
    specializace NGRI , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NNET , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NVIZ , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NSEN , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NMAL , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NHPC , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NVER , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NEMB , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NADE , libovolný ročník, zimní semestr, 5 kreditů, volitelný
    specializace NSPE , libovolný ročník, zimní semestr, 5 kreditů, volitelný

  • Program IT-MGR-1H magisterský navazující

    obor MGH , libovolný ročník, zimní semestr, 5 kreditů, doporučený

Typ (způsob) výuky

 

Přednáška

39 hod., nepovinná

Vyučující / Lektor

Osnova

  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.

Projekt

13 hod., povinná

Vyučující / Lektor

Osnova

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

eLearning