Předmět: Teorie jazyků

» Seznam fakult » FEI » KST
Název předmětu Teorie jazyků
Kód předmětu KST/BTEJA
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Bakalářský
Rok studia nespecifikován
Semestr Zimní
Počet ECTS kreditů 4
Vyučovací jazyk Čeština
Statut předmětu Povinný
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
Vyučující
  • Michalíček Petr, Ing.
  • Diviš Roman, Ing. Ph.D.
  • Brandejský Tomáš, doc. Ing. Dr.
Obsah předmětu
Témata přednášek: 1. Pojem jazyka, historie problematiky, základní terminologie. Obecní definice jazyka. 2. Chomského klasifikace jazyků. Význam přepisovacích systémů a gramatik pro definici jazyka. Regulární výrazy. 3. Regulární gramatika, lineární analýza, vyhledávání lexém, vztah pojmů lexéma-token. Tabulka symbolů a její funkce v procesu analýzy. 4. Derivační stromy, konečné automaty a jejich vztah k regulárním gramatikám. 5. Vlastnosti regulárních jazyků, regulární výrazy, uzávěrové vlastnosti, konečnost apod. 6. Lexikální analyzátor - scanner. 7. Bezkontextová gramatika, syntaktická - hierarchická analýza. Zásobníkové automaty a jejich vztah k bezkontextovým gramatikám. 8. Nedeterministická analýza shora dolů a zdola nahoru. 9. Porovnání bezkontextových jazyků typu LL(1), LL(k), resp. LR(k). Transformace bezkontextových gramatik. 10. Syntaktický analyzátor - parser. Analýza výrazů, příkazů, programu, metod apod. 11. Pojem sémantické analýzy a její úloha v kontextu analýzy zdrojového textu. 12. Pojmy: cílový kód, kompilace, interpretace. Problém lokálních proměnných, typové kontroly. 13. Porovnání vybraných typů jazyků. Témata cvičení: 1. Seznámení se základními pojmy z oblasti gramatik a jazyků 2. Návrh jednoduchých regulárních výrazů (slovo, číslo?) 3. Vytvoření jednoduchých algoritmů na analýzu regulárního výrazu na základě 4. Sestavení programu na vyhledávání slov podle jednoduché regulární gramatiky 5. Návrh vybraných automatů programovacího jazyka a jejich realizace ve zvoleném programovacím jazyku (například Java) - scanner 6. Programování jednoduchého lexikálního analyzátoru 7. Návrh zásobníkového automatu pro vybrané strukturované příkazy jazyka 8. - 10. Realizace zásobníkového automatu do programu syntaktického analyzátoru 11. - 13. Příklady...

Studijní aktivity a metody výuky
Monologická (výklad, přednáška, instruktáž), Dialogická (diskuze, rozhovor, brainstorming), Pozorování, Demonstrace, Nácvik dovedností, Laborování
  • Domácí příprava na výuku - 48 hodin za semestr
  • Semestrální práce - 72 hodin za semestr
  • Účast na výuce - 48 hodin za semestr
  • Domácí příprava na výuku - 48 hodin za semestr
Výstupy z učení
Cílem předmětu je seznámit studenty se základy teorie programovacích jazyků. Získané znalosti jsou orientované na využívání analýzy textů programu zapsaného ve zvoleném programovacím jazyce jako součást prostředí kompilátoru.

Předpoklady
Předpokladem je absolvování předmětů souvisejících s programováním.

Hodnoticí metody a kritéria
Ústní zkouška, Posouzení zadané práce

Podmínkou udělení zápočtu z tohoto předmětu je úspěšné splnění všech tří zadaných praktických úloh zadaných v rámci cvičení a především vypracování semestrální práce na zadané téma - samostatné vytvoření vlastního kompilátoru pro příslušný jazyk. Práce jsou hodnoceny binárně - buď jsou přijaty, nebo se čeká na jejich opravu. Za normálních okolností je na cvičení maximálně možné akceptovat 2 absence. Zkouška se skládá z písemné práce o 5 otázkách a ústní části, kterou tvoří obhajoba semestrální práce.
Doporučená literatura
  • Aho, A. V., Sethi, R., Ullmann, J. D. Compilers, Principles, Techniques, and Tools. Berkley: Addison-Wesley Publishing Company, 2006.. ISBN 0321486811.
  • Hopcroft, J. E., Ullmann, J. D. Formální jazyky a automaty. ALFA, Bratislava, 1978..
  • Louden, Keneth C. Compiler Construction - Principles and Praktice. Boston, PWS Publishing Comp., 1997. PWS Publishing Company, 1997. ISBN 0-534-93972-.
  • Mak, R. Writing Compilers & Interpreters. New York, John Wiley & Sons, 1991.. ISBN 9780471509684.


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