Hlavní stránka | Seznam oborů/specializací | Seznam všech skupin předmětů | Seznam všech předmětů | Seznam rolí                Návod

Předmět je základní jednotka výuky, jejímž prostřednictvím si student osvojí ucelenou část souboru znalostí a dovedností, potřebnou pro zvládnutí studijního oboru/specializace. Za věcný obsah předmětu zodpovídá garant předmětu. Časovou náročnost předmětu zhruba vyjadřuje atribut předmětu rozsah kontaktní výuky. Například rozsah = 2+2  značí, že předmět bude mít týdně dvě hodiny přednášek a dvě hodiny cvičení týdně. Na závěr semestru musí vyučující provést vyhodnocení, nakolik si ten který student osvojil poznatky a dovednosti, kterých měl během výuky nabýt. Jakým způsobem toto hodnocení vyučující provedou určuje atribut způsob zakončení. U předmětu lze definovat, že předmět je zakončen pouze zápočtem(Z), klasifikovaným zápočtem(KZ), pouze zkouškou(ZK), nebo zápočtem a zkouškou(Z,ZK). Náročnost úspěšného absolvování předmětu je vyjádřena ECTS kreditními body. Výuka předmětu probíhá během semestru. Opakovaně se předmět vyučuje vždy v zimním(Z), nebo v letním(L) semestru každého akademického roku. Výjimečně může předmět být nabízen studentům v obou semestrech(Z,L). Za organizační zajištění výuky zodpovídá přiřazená katedra, která zejména vytvoří časový rozvrh předmětu a zajistí pro předmět vyučující. Někteří přednáší a zkouší, jiní vedou cvičení a udělují zápočty.
Obsahová náplň a další organizační informace, týkající se předmětu je popsána pomocí různých popisných textů(anotace, týdenní osnova, literatura, apod.)
$DODATEK_POPIS
BI-AAG Automaty a gramatiky Rozsah kontaktní výuky: 2P+2C
Vyučující: Způsob zakončení: Z,ZK
Zodpovědná katedra: 18101 ECTS Kredity: 6 Semestr: Z

Anotace:
Studenti získají základní teoretické a implementační znalosti o konstrukci, použití a vzájemných transformací konečných automatů, regulárních výrazů a regulárních gramatik, o překladových konečných automatech a o konstrukci a použití zásobníkových automatů. Znají hierarchii formálních jazyků a rozumějí vztahům mezi formálními jazyky a automaty. Znalosti z teorie automatů umějí aplikovat pro řešení praktických problémů z oblasti vyhledávání v textu, kompresi dat, jednoduchých překladů a návrhu číslicových obvodů.

Osnovy přednášek:
1. Motivace pro studium formálních jazyků. Základní pojmy (jazyk, abeceda, gramatika, automat), Chomského hierarchie.
2. Deterministické a nedeterministické konečné automaty (DKA a NKA), NKA s epsilon přechody.
3. Operace s automaty (převod na NKA bez epsilon přechodů, na DKA, minimalizace), průnik, sjednocení.
4. Programová realizace DKA a NKA, obvodová realizace.
5. Rozšíření o překlad, Mealey, Moore, převody.
6. Operace s regulárními gramatikami, převody na KA.
7. Regulární výrazy, převody mezi regulárními výrazy, konečnými automaty a regulárními gramatikami, Kleenova věta.
8. Principy využití regulárních výrazů v UNIXu (grep, egrep, perl, PHP, ...).
9. Konečný automat jako lexikální analyzátor, lex/flex generátory.
10. Vlastnosti regulárních jazyků (pumping lemma, Nerodova věta).
11. Jazyky bezkontextové, zasobníkový automat.
12. Analýza bezkontextových jazyků (nedeterministická versus deterministická).
13. Jazyky kontextové a neomezené, Turingův stroj. Třídy P, NP, NPC, NPH.

Osnovy cvičení:
1. Ukázky formálních jazyků. Intuitivní návrh gramatik pro jazyky zadané množinově. Odhad umístění jazyka v Chomského hierarchii.
2. Intuitivní návrh konečných automatů (DKA, NKA, s epsilon-přechody) pro zadaný jazyk.
3. Převody a kompozice KA.
4. Implementace KA.
5. Návrh KA s výstupní funkcí a jeho implementace.
6. Převody gramatik na KA a zpět.
7. Návrh, úpravy a převody regulárních výrazů.
8. Využití regulárních výrazů pro řešení úloh ze zpracování textu (např. sh, grep, sed, perl).
9. Návrh a implementace lexikálního analyzátoru.
10. Klasifikace jazyků.
11. Příklady bezkontextových jazyků, návrh zásobníkových automatů.
12. Ukázky deterministické analýzy bezkontextových jazyků (např. LL, yacc, bison).
13. Příklady kontextových a neomezených jazyků, návrh gramatik a Turingových strojů.

Literatura:
1. Aho, A. V., Lam, M. S., Sethi, R., Ullman, J. D. "Compilers: Principles, Techniques, and Tools" (2nd Edition). Addison Wesley, 2007. ISBN 0321486811.
2. Kozen, D. C. "Automata and Computability". Springer, 1997. ISBN 0387949070.
3. Melichar, B., Holub, J., Mužátko, P. "Languages and Translations". Praha: Publishing House of CTU, 1997. ISBN 80-01-01692-7.

Požadavky:
Předpokládá se schopnost aktivního algoritmického řešení základních typů úloh a znalost základů C++.

Informace o předmětu a výukové materiály naleznete na https://courses.fit.cvut.cz/BI-AAG/

Předmět je zahrnut do těchto studijních plánů:
Plán Obor Role Dop. semestr
BI-SPOL.2015 Nespecifikovaný/á obor/specializace studia - Unspecified Branch/Specialisation of Study PP 3
BI-WSI-PG.2015 Webové a softwarové inženýrství PP 3
BI-WSI-WI.2015 Webové a softwarové inženýrství PP 3
BI-WSI-SI.2015 Webové a softwarové inženýrství PP 3
BI-ISM.2015 Informační systémy a management PP 3
BI-ZI.2018 Znalostní inženýrství PP 3
BI-PI.2015 Počítačové inženýrství PP 3
BI-TI.2015 Teoretická informatika PP 3
BI-BIT.2015 Bezpečnost a informační technologie PP 3


Stránka vytvořena 28. 3. 2024, semestry: Z/2022-3, L/2020-1, L/2019-20, L/2023-4, L/2022-3, Z/2023-4, Z/2019-20, Z/2021-2, Z/2020-1, L/2021-2, připomínky k informační náplni zasílejte správci studijních plánů Návrh a realizace: J. Novák, I. Halaška