Předmět: Formální jazyky a překladače

« Zpět
Název předmětu Formální jazyky a překladače
Kód předmětu KIV/FJP
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Magisterský
Rok studia nespecifikován
Semestr Zimní
Počet ECTS kreditů 6
Vyučovací jazyk Čeština
Statut předmětu nespecifikováno
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Trapp Michal, Ing. Ph.D.
Obsah předmětu
1-Typy překladačů, základní struktura překladače. 2-Regulární gramatiky a konečné automaty v lexikální analýze. FLEX. 3-Úvod do syntaktické analýzy, metoda rekurzivního sestupu. 4-Překlad příkazů. 5-Zpracování deklarací. 6-Přidělování paměti. 7-Interpretační zpracování. Průběžný test. 8-Generování cílového kódu. 9-Vlastnosti bezkontextových gramatik. 10-Deterministická analýza shora dolů. 11-LL(1) transformace. 12-Deterministická analýza zdola nahoru, LR gramatiky. 13-Formální metody konstrukce software, generátory překladačů.

Studijní aktivity a metody výuky
Přednáška s praktickými aplikacemi, Projektová výuka
  • Kontaktní výuka - 65 hodin za semestr
  • Projekt individuální [40] - 40 hodin za semestr
  • Příprava na dílčí test [2-10] - 12 hodin za semestr
  • Příprava na zkoušku [10-60] - 50 hodin za semestr
Předpoklady
Odborné znalosti
využívat poznatky z programových struktur
mít dobrou znalost vyššího programovacího jazyka, prioritně Javy nebo C
využívat teoretické poznatky z oblasti teoretické informatiky (zejména Chomského hiearchii)
využívat teoretické poznatky z datových struktur
využívat teoretické poznatky z diskrétní matematiky (zejména o grafech)
prokázat znalosti základních pojmů a metod z matematiky, pravděpodobnosti a statistiky
Odborné dovednosti
uplatnit základní znalosti z diskrétní matematiky
uplatnit základní znalosti teoretické informatiky (zejména o regulárních jazycích)
uplatnit základní znalosti programovacích technik
využívat vyšší programovací jazyky k vytváření rozsáhlých programových celků
ovládat zásady vytváření dobře dokumentovaných a robustních programových kódů, prakticky využít teoretické a praktické poznatky o práci s algoritmy, datovými strukturami a konkrétními vývojovými prostředky
Obecné způsobilosti
mgr. studium: samostatně a odpovědně se rozhodují v nových nebo měnících se souvislostech nebo v zásadně se vyvíjejícím prostředí s přihlédnutím k širším společenským důsledkům jejich rozhodování,
Výsledky učení
Odborné znalosti
orientovat se ve formálních prostředcích pro konstruování software
popsat pozitivní i negativní důsledky implementace různých konstrukcí programových textů a efektivně je využívat
popsat činnost jednotlivých částí překladače vyššího programovacího jazyka
popsat funkci prostředků pro zpracování textů
popsat principy a výhody programování v různých paradigmatech
Odborné dovednosti
používat formální metody pro konstruování softwaru
implementovat různé programové konstrukce
efektivněji používat programovací jazyky při zápisu algoritmů
realizovat překladač jednoduššího jazyka
Obecné způsobilosti
mgr. studium: samostatně získávají další odborné znalosti, dovednosti a způsobilosti na základě především praktické zkušenosti a jejího vyhodnocení, ale také samostatným studiem teoretických poznatků oboru.,
mgr. studium: srozumitelně a přesvědčivě sdělují odborníkům i širší veřejnosti vlastní odborné názory,
mgr. studium: plánují, podporují a řídí s využitím teoretických poznatků oboru získávání dalších odborných znalostí, dovedností a způsobilostí ostatních členů týmu,
Vyučovací metody
Odborné znalosti
Prezentace práce studentů,
Samostudium,
Řešení problémů,
Analyticko-kritická práce s textem,
Přednáška s demonstrací,
Projektová výuka,
Cvičení (praktické činnosti),
Odborné dovednosti
Cvičení (praktické činnosti),
Prezentace práce studentů,
Obecné způsobilosti
Analyticko-kritická práce s textem,
Prezentace práce studentů,
Hodnotící metody
Odborné znalosti
Test,
Písemná zkouška,
Skupinová prezentace,
Výstupní projekt,
Odborné dovednosti
Demonstrace dovedností (praktická činnost),
Výstupní projekt,
Skupinová prezentace,
Obecné způsobilosti
Demonstrace dovedností (praktická činnost),
Skupinová prezentace,
Doporučená literatura
  • Aho, Alfred V. Compilers : principles, techniques, and tools. 2nd ed. Boston : Pearson Education, 2007. ISBN 0-321-49169-6.
  • Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D. Compilers : principles, techniques, and tools. Reading : Addison-Wesley, 1988. ISBN 0-201-10088-6.
  • Melichar, Bořivoj. Jazyky a překlady. Vyd. 2., přeprac. Praha : Vydavatelství ČVUT, 2003. ISBN 80-01-02776-7.
  • Melichar, Bořivoj. Konstrukce překladačů. I. část. Vyd. 1. Praha : Vydavatelství ČVUT, 1999. ISBN 80-01-02028-2.
  • Molnár, Ludovít; Melichar, Bořivoj; Češka, Milan. Gramatiky a jazyky. Bratislava : Alfa, 1987.
  • Reinhard Wilhelm Helmut Seidl Sebastian Hack. Compiler Design. Berlin, 2013. ISBN 978-3-642-17539-8.
  • Thain, Douglas. Introduction to Compilers and Language Design. 2020. ISBN 979-8-655-18026-0.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr