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

Ciele predmetu

  1. Cieľom cvičení je naučiť študentov základy formálnych jazykov a prekladačov.
  2. Na cvičeniach sa študenti oboznámia s konštrukciou konečnostavového automatu a jeho implementáciou pri rozpoznávaní vstupu.
  3. Taktiež sa študenti oboznámia postupne s jednotlivými fázami prekladu: lexikálna analýza, syntaktická analýza, sémantická analýza, zotavenie, generovanie kódu.
  4. Praktická časť tohto predmetu bude orientovaná na programové riešenie vybraných úloh z prostredia spracovania vstupu, prekladu a generovania kódu.
  5. Úspešné absolvovanie cvičení predpokladá vypracovanie troch funkčných zadaní zameraných na tvorbu konečnostavového akceptora, jednoduchého interpretera a prekladača.

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.
  • Interpreter - implementácia kalkulačky. Vypracovanie zadania podľa požiadaviek. Termín odovzdania je 6. týždni. Za zadanie je možné získať spolu 4 bodov.
  • Prekladač - jazyk definície KSA. Vypracovanie zadania podľa požiadaviek. Termín odovzdania je 10. týždni. Za zadanie je možné získať spolu 8 bodov.
  • Test A - Vytvorenie DKA zo zadanej špecifikácie regulárneho výrazu. Zvládnutie testu v 5. týždni. Za test je možné získať spolu 7 bodov.
  • Test B - Gramatika typu LL(1). Zvládnutie testu v 11. týždni. Za test je možné získať spolu 8 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. Za aktivitu na cvičení je možné získať spolu 3 bodov.

Vyučujúci

Prednášajúci:

Cvičiaci:

Zdroje

  1. Ján Kollár, Prekladače. Elfa 2009.
  2. Ľ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.
  3. Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1988.
  4. Hartmann, A.C.: A Concurrent Pascal Compiler for Minicomputers. Springer Verlag, 1978.
  5. Hopcroft, J.E., Ullman, J.D.: Formálne jazyky a automaty. Alfa Bratislava, 1978. (Formal languages and their relation to automata, Adisson-Wesley, 1969)
  6. Milner, R.: A theory of type polymorphism in Programming, Journal of Computer and System Science, Vol.17,1978, 348-375.
  7. Schreiner, W., Steingartner W.: The SLANG Semantics-Based Language Generator, https://www.risc.jku.at/research/formal/software/SLANG, 2023.
  8. Wirth, N.: MODULA-2. Institut fuer Informatik, ETH, Zurich, 1980.