Zoznam všetkých cieľov

Cvičenia

1. týždeň: Úvod do formálnych jazykov. Operácie nad jazykmi a ich abecedami. Úvod do regulárnych výrazov.

  1. Oboznámiť sa s organizáciou cvičení predmetu Formálne jazyky a podmienkami udelenia zápočtu.
  2. Definovať základné pojmy teórie formálnych jazykov.
  3. Oboznámiť sa s regulárnymi výrazmi.
  4. Prakticky precvičiť zostavenie vybraných regulárnych výrazov.

2. týždeň: Konečnostavové akceptory. DKA

  1. Zopakovať si tvorbu regulárnych výrazov na základe slovnej špecifikácie.
  2. Definovať deterministický konečnostavovový automat (DKA) ako ekvivalentný spôsob určenia regulárneho jazyka.
  3. Konštruovať DKA na základe zadaného regulárneho výrazu.
  4. Implementovať DKA pre daný regulárny výraz vo vyššom programovacom jazyku (tvorba primitívneho jazykového procesora).

3. týždeň: Konečnostavové akceptory. NKA, DKA a vzťah medzi nimi.

  1. Zopakovať si definíciu DKA a porozumieť jeho minimalizácii.
  2. Definovať nedeterministický konečnostavovový automat (NKA) ako rozšírenie DKA. Porovnať tieto dva druhy konečnostavových automatov.
  3. NKA ako alternatívny spôsob definície regulárneho jazyka (konštruovať NKA na základe zadaného regulárneho výrazu).
  4. Implementovať NKA pre daný regulárny výraz vo vyššom programovacom jazyku.

4. týždeň: Konečnostavové akceptory – determinizácia. Pumpovacia lema.

  1. Definovať princíp determinizácie NKA (konštrukcia ekvivalentného DKA na základe zadaného NKA).
  2. Definovať pumpovaciu lemu pre regulárne jazyky.
  3. Prezentovať postup dôkazu neregularity jazyka na základe pumpovacej lémy.

5. týždeň: Úvod do formálnych gramatík.

  1. Zápočtový test A.
  2. Oboznámiť sa s definíciami základných pojmov z oblasti formálnych gramatík.
  3. Definovať Backusova-Naurova forma (BNF) a rozšírenú Backusova-Naurova forma (EBNF) špecifikácie formálnych gramatík.
  4. Zostrojiť formálnu gramatiku podľa špecifikácie jazyka.

6. týždeň: Syntaktická analýza.

  1. Precvičiť základné vlastnosti gramatík.
  2. Precvičiť určovanie množín FIRST a FOLLOW
  3. Precvičiť typy odvodení a odvodzovacie stromy.

7. týždeň: Syntaktická analýza.

  1. Vlastnosti bezkontextových gramatík.

8. týždeň: Bezkontextové gramatiky, zásobníkové automaty, LL(1) parsovanie

  1. Kontrola úloh z predošlého cvičenia.
  2. Zopakovať si vlastnosti zásobníkových automatov a naučiť sa ich skonštruovať.
  3. Zopakovať si vlastnosti bezkontextových gramatík a prehĺbiť poznatky o LL(1) parsovaní.

9. týždeň: Jazyk definície KSA. Základy syntaktickej analýzy zdola-nahor.

  1. Doménovo-špecifický jazyk pre definíciu stavového automatu a implementácia jeho prekladača.

10. týždeň: Opakovanie a prehĺbenie učiva.

  1. Opakovanie a prehĺbenie učiva - gramatiky LL(1).
  2. Konzultácie k zadaniu č. 2.

11. týždeň: Test B. Odovzdanie zadaní.

  1. Realizácia Testu B.
  2. Odovzdanie zadania č. 2.

13. týždeň: Úvod do lexikálnej analýzy.

  1. Zopakovať si definíciu gramatiky a porozumieť odvodeniu gramatiky zo špecifikácie jazyka.
  2. Naučiť sa definovať gramatiku jazyka pomocou BNF.
  3. Diskusia a priebežná kontrola.

14. týždeň: Úvod do formálnych gramatík.

  1. Oboznámiť sa so základnými definíciami formálnych gramatík.
  2. Pochopiť základnú definíciu BNF (Backusova-Naurova forma) a EBNF (Rozvinutá Backusova-Naurova forma).
  3. Naučiť sa vytvárať formálne gramatiky na základe množinovej špecifikácie jazyka a fragmentu jazyka.
  4. Naučiť sa zostrojiť gramatiku podľa špecifikácie.

15. týždeň: Úvod do syntaktickej analýzy.

  1. Zápočtový test č. 1.
  2. Opakovanie a prehĺbenie učiva. Riešenie úlohy so zameraním na konštrukciu gramatiky podľa danej špecifikácie.
  3. Pochopenie konštrukcie syntaktického analyzátora.
  4. Prvé zadanie.

Zadania