Vyučující
|
-
Rak Josef, RNDr. Ph.D.
-
Benedikovič Miroslav, RNDr.
|
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? 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í
|
Výstupy z učení
|
Cílem předmětu je seznámit studenty se základy teorie 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 popř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 zadaných praktických úloh a příslušných testů. Každou neúčast na cvičení je třeba nahradit vypracováním domácího cvičení na téma látky probírané na konkrétním cvičení, přičemž maximálně je možné akceptovat 2 absence.
|
Doporučená literatura
|
-
Aho, A. V., Sethi, R., Ullmann, J. D. Compilers, Principles, Techniques, and Tools. Berkley: Addison-Wesley Publishing Company, 2006.. ISBN 0-201-10088-6.
-
Hopcroft, J. E., Ullmann, J. D. Formální jazyky a automaty. ALFA, Bratislava, 1978.. ISBN 63-096-78.
-
Louden, Keneth C. Compiler Construction - Principles and Praktice. Boston, PWS Publishing Comp., 1997.
-
Mak, R. Writing Compilers & Interpreters. New York, John Wiley & Sons, 1991..
|