Detail předmětu
Formální jazyky a překladače
IFJ Ak. rok 2014/2015 zimní semestr 5 kreditů
Kurs diskutuje formální jazyky a jejich modely. Na bázi těchto modelů objasňuje konstrukci překladačů. Výklad je organizován následovně: (I) Základní pojmy: formální jazyky a jejich modely, gramatiky, automaty; překladače. (II) Regulární jazyky a lexikální analýza: regulární jazyky a výrazy, konečné automaty a převodníky, lexikální analyzátory; Lex; tabulka symbolů. (III) Bezkontextové jazyky a syntaktická analýza: bezkontextové jazyky a gramatiky, zásobníkové automaty a převodníky, syntaktická analýza; deterministická syntaktická analýza, LL a LR gramatiky, deterministická analýza shora dolů (rekurzivní sestup); princip deterministické analýzy zdola nahoru; Yacc. (IV) Sémantická analýza a generování kódu: sémantická analýza, generování vnitřní formy programu, optimalizace, generování cílového kódu.
Garant předmětu
Jazyk výuky
Zakončení
Rozsah
- 39 hod. přednášky
- 13 hod. projekty
Zajišťuje ústav
Získané dovednosti, znalosti a kompetence z předmětu
Základní obeznámenost s formálními jazyky a jejich modely. Schopnost sestrojit překladač.
Cíle předmětu
Seznámit se s formálními jazyky a jejich modely. Objasnit principy konstrukce překladačů na základě těchto modelů.
Požadované prerekvizitní znalosti a dovednosti
Znalost diskrétní matematiky.
Literatura studijní
- kopie přednášek (elektronické i papírové)
- Meduna, A.: Automata and Languages. London, Springer, 2000.
- Meduna, A.: Elements of Compiler Design. New York, US, Tailor & Francis, 2008.
Literatura referenční
- Parsons, T. W.: Introduction to Compiler Construction. Freeman, New York, 1992.
Osnova přednášek
- Formální jazyky.
- Překlad jazyků a struktura překladače.
- Regulární jazyky a jejich modely: regulární výrazy a konečné automaty.
- Lexikální analýza: lexikální analyzátory; Lex; tabulka symbolů.
- Bezkontextové jazyky a jejich modely: bezkontextové gramatiky a zásobníkové automaty.
- Syntaktická analýza: deterministická syntaktická analýza; FIRST a FOLLOW, LL a LR gramatiky.
- Deterministická syntaktická analýza shora dolů: rekurzívní sestup.
- Deterministická syntaktická analýza zdola nahoru: jednoduchá precedenční analýza, LR analýza; Yacc.
- Sémantická analýza a generování vnitřní formy programu.
- Optimalizace.
- Generování cílového kódu.
- Chomského klasifikace jazyků a korespondující modely.
- Poznámky a shrnutí. Předběžná diskuze obsahu navazujícího předmětu VYPe.
Průběžná kontrola studia
Udělení zápočtu je podmíněno získáním min. 20 bodů v průběhu semestru, z nichž nejméně 5 bodů je za programovou část projektu.
Kontrolovaná výuka
Půlsemestrální písemná zkouška se koná přibližně v polovině semestru bez možnosti náhradního, či opravného termínu (20 bodů). Dále je vyžadována tvorba týmového projektu ověřující schopnost aplikace teoretických poznatků (25 bodů), kde průběžnou kontrolu provádí studentský vedoucí každého týmu. Na konci semestru se koná závěrečná zkouška (55 bodů) s možností dvou opravných termínů.
Zařazení předmětu ve studijních plánech