Organizácia cvičení a podmienky udelenia zápočtu
-
Cieľom cvičení je naučiť študentov základy formálnych jazykov a prekladačov.
-
Na cvičeniach sa študenti oboznámia s konštrukciou konečnostavového automatu a jeho implementáciou pri rozpoznávaní vstupu.
-
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.
-
Praktická časť tohto predmetu bude orientovaná na programové riešenie vybraných úloh z prostredia spracovania vstupu, prekladu a generovania kódu.
-
Ú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.
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.
- 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.
-
Ján Kollár, Prekladače. Elfa 2009.
-
Ľ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.
-
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1988.
-
Hartmann, A.C.: A Concurrent Pascal Compiler for Minicomputers. Springer Verlag, 1978.
-
Hopcroft, J.E., Ullman, J.D.: Formálne jazyky a automaty. Alfa Bratislava, 1978.
(Formal languages and their relation to automata, Adisson-Wesley, 1969)
-
Milner, R.: A theory of type polymorphism in Programming, Journal of Computer and System Science, Vol.17,1978, 348-375.
-
Schreiner, W., Steingartner W.: The SLANG Semantics-Based Language Generator, https://www.risc.jku.at/research/formal/software/SLANG, 2023.
-
Wirth, N.: MODULA-2. Institut fuer Informatik, ETH, Zurich, 1980.