Detail předmětu
Výstavba překladačů (v angličtině)
VYPa Ak. rok 2021/2022 zimní semestr 5 kreditů
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
Zakončení
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
Veřejné stránky předmětu (v angličtině)
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
- Úvod: zopakování struktury překladače.
- Deterministická syntaktická analýza zdola nahoru: konstrukce LR rozkladových tabulek.
- Deterministická syntaktická analýza zdola nahoru: precedenční analýza vyššího řádu.
- Obecná syntaktická analýza: důležité metody syntaktické analýzy s návraty.
- Pokročilé metody optimalizace.
- Paralelní kompilátory: struktura paralelního překladače.
- Paralelní syntaktická analýza: principy.
- Deterministická paralelní syntaktická analýza shora dolů.
- Deterministická paralelní syntaktická analýza zdola nahoru.
- Generování paralelního kódu.
- Moderní formální prostředky pro specifikaci jazyka: řízené a paralelní modely.
- Formální prostředky pro specifikaci překladu: převodníky a překladové gramatiky.
- Očekávané budoucí trendy, shrnutí, závěr.
Osnova ostatní - projekty, práce
- Vytvoření pokročilého kompilátoru.
- 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
- Program IT-MGR-2, obor MBI, MBS, MGM, MIN, MPV, MSK, libovolný ročník, volitelný
- Program IT-MGR-2, obor MIS, libovolný ročník, povinně volitelný skupina F
- Program IT-MGR-2, obor MMM, libovolný ročník, povinný
- Program IT-MGR-2 (anglicky), obor MGMe, libovolný ročník, povinně volitelný skupina I
- Program MITAI, obor NADE, NBIO, NCPS, NEMB, NGRI, NHPC, NIDE, NISD, NISY, NISY do 2020/21, NMAL, NNET, NSEC, NSEN, NSPE, NVER, NVIZ, libovolný ročník, volitelný
- Program MITAI, obor NMAT, libovolný ročník, povinný