|
|
Podmienky |
Nevyhnutnou podmienkou na získanie známky (lepšej ako Fx) je odovzdanie projektu, spĺňajúceho požiadavky a úspešné absolvovanie skúšky.
PROJEKT
Na projekte môžete pracovať v skupinách max. po dvoch, zadanie je nasledovné:
Vašou úlohou je vytvoriť kompilátor zjednodušené C++ -> Assembler, ktorý vie spracovať:
- dátové typy: int, char, char[], int[]
- cykly: for, while, do
- podmienky: if, switch
- funkcie so vstupmi char, int
- funkcie so výstupom char, int
- práca s globálnymi/lokálnymi premennými (bude sa testovať na rekurzívnych funkciách, pozícia definície premenných je rovnaká ako v c++)
- aritmetika s prioritou +, -, *, /, %, (, ),
- booleovské operátory, konštanty ==, !=, <=, <, >=, >, true, false, ||, &&, !
- ďaľšie operátory =, ++, - -
- výstupné funkcie: (zobrazia do konzoly číslo, znak, text (končí nulou)) void printc(char), void printi(int), void prints(char[])
- return
- chybové hlásenia (zobrazuje sa riadok aj stĺpec chyby)
- blok {} - nezabudnúť na viditeľnosť premenných
Kompilátor môže byť napísaný v C, C# alebo Jave, môžete použiť nástroje Flex/Bison, príp. po konzultáci
iné generátory parserov a scannerov. Podmienkou je, aby ste svoj projekt vedeli odprezentovať.
ODOVZDÁVANIE
1. časť projektu
- Čo tam má byť: Scanner + jednoduchý parser
- Tokeny a ich sémantické hodnoty sa posielajú parseru
- Komentáre a biely priestor sa vymazávajú
- Lexikálne chyby sa hlásia do chybového súboru alebo na stdout, hláška musí
obsahovať aj pozíciu chyby (číslo riadku, číslo znaku v rámci riadku)
- Parser iba vypisuje rozpoznanú štruktúru vstupného programu (t.j., nevytvára preklad)
2. časť projektu (kompletný projekt)
- Je potrebné, aby prišli všetci členovia tímu
|
|