Vyučující
|
|
Obsah předmětu
|
1) Základní pojmy teorie jazyků, definice a klasifikace gramatik 2) Regulární gramatiky, regulární výrazy 3) Deterministické, nedeterministické konečné automaty, transformace nedeterministického na deterministický, regulární výrazy 4) Programová realizce konečných automatů 5) Konečné automaty s výstupem, zásobníkové automaty 6) LL Gramatiky, rozkladové tabulky syntaktická analýza metodou shora dolů, transformace gramatik 7) Lexikální analyzátor, a jeho realizace 8) Formální překlady, překladové gramatiky 9) Překladové automaty a překladové gramatiky 10) Atributové překladové gramatiky, rekurzivní sestup s parametry 11) Výpočet hodnot parametrů atributových gramatik 12) Syntaktický analyzátor a jím řízený překlad, návrh a realizace 13) Syntaktický analyzátor a jím řízený překlad, návrh a realizace 14) Abstraktní syntaktický strom, generování výstupu
|
Studijní aktivity a metody výuky
|
Monologická (výklad, přednáška, instruktáž)
- Domácí příprava na výuku
- 10 hodin za semestr
- Příprava na zkoušku
- 40 hodin za semestr
- Příprava na zápočet
- 30 hodin za semestr
- Účast na výuce
- 40 hodin za semestr
- Semestrální práce
- 20 hodin za semestr
|
Výstupy z učení
|
Základní ideou kurzu je poskytnou informace o tom, jak lze formálně deklarovat popis programovacích jazyků, v návaznosti na toto uvést části reálného překlače a ukázat způsob realizace těchto částí. Kurz by obsahoval pouze jednu z metod syntaktiké analýzy - shora dolů.
Studenti budou v principu rozumět principům využívaných při tvorbě moderních překladačů - tj. regulárním gramatikám, konečným automatům, formálnímu překladu, LL(k) a atributovým gramatikám.
|
Předpoklady
|
Jsou předpokládány znalosti na úrovni kurzu Teoretická informatika a aktivní znalosti pojmů z oblasti programování.
|
Hodnoticí metody a kritéria
|
Ústní zkouška, Test
Napsání semestrální testu s úspěšností nad 50% a vypracování semestrální práce.
|
Doporučená literatura
|
-
Bořivoj Melichar. Jazyky a překlady. Praha, 1996. ISBN 80-01-01511-4.
-
Karel Muller. Programovací jazyky. Praha, 2002. ISBN 80-01-02458-X.
|