Organizácia cvičení a podmienky udelenia zápočtu

Ciele predmetu

  1. Cieľom predmetu je poskytnúť študentom základné poznatky z oblasti formálnych jazykov a metód ich špecifikácie, analýzy a spracovania.
  2. Predmet má štruktúru cvičenia a prednášky, končí zápočtom a skúškou.
  3. Na cvičeniach je možné získať max. 30b, na skúške 70b. Požadované minimálne hodnotenie: cvičenie 16b., skúška 36b.
  4. Na cvičeniach sú povolené 3 neúčasti. V prípade vyššieho počtu vymeškaných cvičení nie je možné udeliť zápočet.
  5. Na cvičeniach sa študenti oboznámia s konštrukciou konečnostavových a zásobníkových automatov, ako aj Turingových strojov pri rozpoznávaní vstupu.
  6. Získajú skúsenosti s návrhom, analýzou a rôznymi transformáciami formálnych gramatík.
  7. Postupne sa oboznámia s jednotlivými fázami prekladu, prioritne iniciálnymi fázami lexikálnej a syntaktickej analýzy.
  8. Praktická časť tohto predmetu bude orientovaná na programové riešenie vybraných úloh z prostredia spracovania vstupu, prekladu a generovania kódu.
  9. Všetky zdrojové kódy budú implementované v programovacom jazyku Python, ktorý sa bude používať na prednáškach aj cvičeniach, rovnako ako pri priebežnom a záverečnom hodnotení (zápočet a skúška).

Doplňujúce informácie

Na každom cvičení cvičiaci uvedie študentov do problematiky a tí následne riešia jednoduché úlohy s pomocou týchto materiálov. Svoje návrhy, riešenia a nejasnosti konzultujú s cvičiacim. Po vyriešení všetkých úloh študenti pokračujú v práci na svojich zadaniach. V tom im pomáhajú doplňujúce úlohy uvedené na konci každého cvičenia.

Podmienky pre získanie zápočtu

  • Ani jedna neospravedlnená neúčasť.
  • Maximálne 3 ospravedlnené neúčasti - spôsob náhrady určí cvičiaci.
  • Získanie aspoň 16 z 30 možných bodov za cvičenia.
  • Zápočtová písomka A je zameraná na riešenie praktických úloh z oblasti regulárnych jazykov. Úlohy zahŕňajú konštrukciu a transformácie formálnych modelov (KSA) a ich implementáciu v programovacom jazyku Python. Zvládnutie testu v 5. týždni. Za test je možné získať spolu 10 bodov.
  • Zápočtová písomka B je zameraná na riešenie praktických úloh z oblasti formálnych gramatík zásobnikových automatov a Turingových strojov. Zvládnutie testu v 13. týždni. Za test je možné získať spolu 15 bodov.
  • Aktivity na cvičeniach formou náhodných (vopred neohlásených) testov vedomostí. Počet aktivít a spôsob hodnotenia určí pedagóg zodpovedný za cvičenia. Táto časť priebežného hodnotenia je platná výhradne pre študentov s prezenčnou metódou štúdia. Študentom s kombinovanou metódou štúdia (KM) sa body za aktivity neudeľujú, keďže cvičenia neprebiehajú prezenčne. Príslušné body sú však súčasťou hodnotenia Zápočtovej písomky A. Za aktivitu na cvičení je možné získať spolu 5 bodov.

Vyučujúci

Prednášajúci:

Cvičiaci:

Zdroje

  1. Steingartner W., Novotný S., Gnip P.: Formálne jazyky a automaty: Od teórie k praxi. Technická univerzita v Košiciach, 2026.
  2. Ján Kollár, Prekladače. Elfa, 2009.
  3. Ľubomír Dedera, Počítačové jazyky a ich spracovanie, Akadémia ozbrojených síl generála Milana Rastislava Štefánika, Liptovský Mikuláš, 2014.
  4. Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1988.
  5. Hartmann, A.C.: A Concurrent Pascal Compiler for Minicomputers. Springer Verlag, 1978.
  6. Hopcroft, J.E., Ullman, J.D.: Formálne jazyky a automaty. Alfa Bratislava, 1978. (Formal languages and their relation to automata, Adisson-Wesley, 1969)
  7. Milner, R.: A theory of type polymorphism in Programming, Journal of Computer and System Science, Vol.17,1978, 348-375.
  8. Schreiner, W., Steingartner W.: The SLANG Semantics-Based Language Generator, https://www.risc.jku.at/research/formal/software/SLANG, 2023.
  9. Wirth, N.: MODULA-2. Institut fuer Informatik, ETH, Zurich, 1980.