Zoznam všetkých cieľov
Cvičenia
- Oboznámiť sa s organizáciou cvičení predmetu Formálne jazyky a podmienkami udelenia zápočtu.
- Definovať základné pojmy teórie formálnych jazykov.
- Oboznámiť sa s regulárnymi výrazmi.
- Prakticky precvičiť zostavenie vybraných regulárnych výrazov.
- Zopakovať si tvorbu regulárnych výrazov na základe slovnej špecifikácie.
- Definovať deterministický konečnostavovový automat (DKA) ako ekvivalentný spôsob určenia regulárneho jazyka.
- Konštruovať DKA na základe zadaného regulárneho výrazu.
- Implementovať DKA pre daný regulárny výraz vo vyššom programovacom jazyku (tvorba primitívneho jazykového procesora).
- Zopakovať si definíciu DKA a porozumieť jeho minimalizácii.
- Definovať nedeterministický konečnostavovový automat (NKA) ako rozšírenie DKA. Porovnať tieto dva druhy konečnostavových automatov.
- NKA ako alternatívny spôsob definície regulárneho jazyka (konštruovať NKA na základe zadaného regulárneho výrazu).
- Implementovať NKA pre daný regulárny výraz vo vyššom programovacom jazyku.
- Definovať princíp determinizácie NKA (konštrukcia ekvivalentného DKA na základe zadaného NKA).
- Definovať pumpovaciu lemu pre regulárne jazyky.
- Prezentovať postup dôkazu neregularity jazyka na základe pumpovacej lémy.
- Zápočtová písoma A.
- Oboznámiť sa s definíciami základných pojmov z oblasti formálnych gramatík.
- Definovať Backusova-Naurova forma (BNF) a rozšírenú Backusova-Naurova forma (EBNF) špecifikácie formálnych gramatík.
- Zostrojiť formálnu gramatiku podľa špecifikácie jazyka.
- Oboznámiť so špecifikáciou priority a asociativity operácií na úrovni syntaktického modelu jazyka.
- Predstaviť základnú teóriu jazykových procesorov.
- Konštruovať gramatiku aritmetických výrazov, implementovať ich lexikálny a syntaktický analyzátor a syntaxou riadenú interpretáciu.
- Oboznámiť sa s transformáciami bezkontextových gramatík.
- Precvičiť si transformácie bezkontextových gramatík.
- Návrh plne rekurzívneho syntaktického analyzátora a interpretera na základe tranformovanej gramatiky jazyka aritmetických výrazov.
- Definovať zásobníkový automat ako ekvivalentný spôsob určenia bezkontextového jazyka.
- Uviesť základné pojmy analýzy bezkontextových gramatík. Množiny $\mathit{FIRST},$ $\mathit{FOLLOW},$ $\mathit{PREDICT}$ a definovať $LL(1)$ gramatiku.
- Predstaviť princíp nerekurzívnej syntaktickej analýzy zhora nadol postavenej na zásobníkovom automate.
- Implementovať syntaktický analyzátor jednoduchého jazyka aritmetických výrazov na báze zásobníkového automatu.
- Konzultácie zadaní.
- Príprava na zápočtovú písomku B.
- Zápočtová písomka B.
- Konzultácia zadaní.
- Obhajoba zadania.
- Definovať pumpovaciu lemu pre bezkontextové jazyky a demoštrovať jej využitie pri dôkaze neprislúšnosti jazyka do triedy bezkontextových jazykov.
- Osvojiť si princípy konštrukcie kontextových a frázových gramatík na báze riešenia reprezentatívnych príkladov.
- Presne opísať Turingov stroj ako výpočtový model s konkrétnymi inštrukciami.
- Navrhnúť a implementovať Turingov stroj pre konkrétny jazyk.
Zadania