Druhý test z AFJ sa uskutoční 23. apríla 2026 v čase prednášky, t.j. od 10:00 v miestnosti AB-300. Test sa píše v troch behoch, každý beh trvá pol hodiny, s 10 minutovými prestávkami na pozbieranie a prestriedanie. Časy behov sú: 10:00 – 10:30, 10:40 – 11:10, 11:20 – 11:50. Rozdelenie do behov a miesta na sedenie sú identické s tými, ako sa sedelo na prvom teste.
Zasadací poriadok pre test nájdete tu.
Náplňou testu bude učivo dovtedy prebrané v rámci prednášok a cvičení. Odporúčam zamerať sa najmä na množiny FIRST/FOLLOW, CYK algoritmus a konštrukciu/činnosť LL(1) parsera.
Prvý test z AFJ sa uskutoční 2. apríla 2026 v čase prednášky, t.j. od 10:00 v miestnosti AB-300. Test sa píše v troch behoch, každý beh trvá pol hodiny, s 10 minutovými prestávkami na pozbieranie a prestriedanie. Časy behov sú: 10:00 – 10:30, 10:40 – 11:10, 11:20 – 11:50. Rozdelenie do behov je abecedné, pridelenie konkrétneho miesta prebehlo náhodne pomocou generátora v programe Excel.
Zasadací poriadok pre test nájdete tu.
Náplňou testu bude učivo dovtedy prebrané v rámci prednášok a cvičení.
Konzultačné hodiny po dohode mailom.
Počas výučbovej časti semestra budú 2 testy, každý za 20 bodov. Dokopy je teda počas semestra možné získať 40 bodov, pričom podmienkou pre účasť na skúške je súhrnný zisk aspoň 20 bodov.
Počas skúškového obdobia bude písomná skúška za 60 bodov.
Dokopy je teda možné získať 100 bodov. Výsledná známka bude určená na základe študijného poriadku STU.
Pri akomkoľvek podvádzaní a nečestnosti bude postupované v zmysle študijného poriadku STU.
Cieľom predmetu AFJ je, aby študentstvo získalo rozšírené znalosti ohľadom formálnych jazykov, konečných automatov, zásobníkových automatov a ich využitia pri spracovaní formálnych jazykov, napr. pri preklade programovacích jazykov. Rozšíriť ich znalosti z oblasti teoretickej informatiky. Dosiahnuť, aby študentstvo bolo schopné samostatne študovať práce využívajúce základné poznatky z teoretickej informatiky, aby rozumelo lexikálnej, syntaktickej a sémantickej analýze vykonávanej počas spracovania formálneho jazyka.
Prednášky
1. prednáška, 19.02.2026. Prezentácia z prednášky: Formálne gramatiky, jazyky.
2. prednáška, 26.02.2026. Prezentácia z prednášky: Deterministické a nedeterministické konečné automaty, determinizácia NKA.
3. prednáška, 05.03.2026. Prezentácia z prednášky: Vzťah konečných automatov a regulárnych gramatík, regulárne výrazy, Thompsonova konštrukcia.
4. prednáška, 12.03.2026. Prezentácia z prednášky: Bezkontextové jazyky, derivačné stromy, jednoznačnosť gramatiky, zásobníkové automaty.
5. prednáška, 19.03.2026. Prezentácia z prednášky: Úpravy bezkontextových gramatík, Chomského normálny tvar.
6. prednáška, 26.03.2026. Odpadla z dôvodu nejakého univerzitného mecheche.
7. prednáška, 02.04.2026. Počas prednášky sa písal prvý test.
8. prednáška, 09.04.2026. Prezentácia z prednášky:Lexikálna analýza. Taktiež bol náhľad do prvého testu.
9. prednáška, 16.04.2026. Prezentácia z prednášky: Syntaktická analýza metódou zhora-nadol, LL(1)-parser.
Cvičenia
1. cvičenie, 20.02.2026. Prezentácia z cvika: Formálne gramatiky, jazyky.
Ďalšie príklady s výsledkami nájdete tu.
2. cvičenie, 27.02.2026. Prezentácia z cvika: Konečné automaty, determinizácia NKA.
Ďalšie príklady s výsledkami nájdete tu.
3. cvičenie, 06.03.2026. Prezentácia z cvika: Regulárne výrazy, Thompsonova konštrukcia.
Ďalšie príklady s výsledkami nájdete tu.
4. cvičenie, 13.03.2026. Prezentácia z cvika: Derivačné stromy, jednoznačnosť, zásobníkové automaty.
Ďalšie príklady s výsledkami nájdete tu.
5. cvičenie, 20.03.2026. Prezentácia z cvika: Úpravy bezkontextových gramatík, Chomského normálny tvar.
Ďalšie príklady s výsledkami nájdete tu.
6. cvičenie, 27.03.2026. Prezentácia z cvika: Množiny FIRST a FOLLOW.
Ďalšie príklady s výsledkami nájdete tu.
7. cvičenie, 03.04.2026. Cvičenie odpadlo z dôvodu študijného voľna (Veľký piatok).
8. cvičenie, 10.04.2026. CYK algoritmus.
Ďalšie príklady s výsledkami nájdete tu.
9. cvičenie, 17.04.2026. LL(1)-parser.
Ďalšie príklady s výsledkami nájdete tu.
Na stránke Laboratória programovacích jazykov Katedry počitačových vied Univerzity v Calgary sa nachádza výborný softvérový nástroj pre syntaktickú analýzu gramatík. http://smlweb.cpsc.ucalgary.ca/start.html
Na stránke si viete dať zostrojiť príslušné LL/LR analyzátory pre ľubovoľné gramatiky.
Odporúčam taktiež podstránku http://smlweb.cpsc.ucalgary.ca/example-grammars/ kde sú ukážky rôznych gramatík, aj vzhľadom na ich príslušnosť/nepríslušnosť do LL(1)/LR(0)/SLR(1)/LALR(1)/LR(1)/LL(2)/LR(2) kombinácií…
Iným nástrojom je Grammophone, https://mdaines.github.io/grammophone/#/
Pri samoštúdiu a príprave na predmet AFJ odporúčam pracovať s programom JFLAP vo verzii 7.1 ktorý je možné stiahnuť z tejto stránky: https://www.jflap.org/jflaptmp/
Autori programu zároveň zverejnili zdarma doplnkovú knihu k programu, ktorá sa dá zároveň použiť aj ako študijný materiál k predmetu AFJ: https://www2.cs.duke.edu/csed/jflap/jflapbook/