Projekt
Projekt je možné robiť v tímoch maximálne po troch.
Vašou úlohou je napísať tzv. kompilátor kompilátorov (inak povedané generátor kompilátora), t.j. program, ktorý dostane na vstup popis (bezkontextovej)
gramatiky
G pre parser (prípadne aj regulárnej gramatiky pre lexer
R) a vygeneruje kompilátor, ktorý bude kompilovať programy napísané v tejto gramatike
G resp.
R.

Pozrite si článok p. Šturca
TWS projekt, kde môžete nájsť inšpiráciu pre "metagramatiku" Vášho vstupného súboru.
Váš program
nesmie využívať už existujúce generátory parserov (ako je napr. Bison) a lexerov (Flex).
Čím nižšia bude úroveň inštrukcií generovaných Vašim program a následne aj vygenerovaným kompilátorom, tým bude mať Váš
projekt lepšiu pozíciu pri hodnotení.
To znamená, že najviac sa ráta, ak Váš program vygeneruje kompilátor vo forme inštrukcií pre RAM, Turingov Stroj a pod., nasleduje Assembler a
po ňom nejaký vyšší programovací jazyk. Môžete použiť ľubovoľný spôsob syntaktickej analýzy (zdola-nahor, zhora-nadol), no pri analýze zhora dole
nezabudnite na odstránenie ľavej rekurzie a ľavej faktorizácie.
Nezabudnite na hlásenie chýb:
- pri generovaní kompilátora, ak vstupný súbor nie je v požadovanej "metagramatike".
- pri kompilovaní programu P vygenerovaným kompilátorom, ak P obsahuje chyby
Hlásenie chyby musí obsahovať aj pozíciu chyby v súbore.
Projekt je potrebné dokončiť
do konca semestra. Odovzdávanie projektu prebieha vo forme prezentácie,
kde všetci členovia tímu odprezentujú projekt cvičiacemu (je preto dobré si pripraviť niekoľko ukážkových vstupných súborov).
Termín odovzdania je treba vopred dohodnúť.
Nahlásené tímy:
-
Peter Koscelansky, Tomas Malik, Pavol Panak
-
Lukas Spalek, Marek Zeman
(ak sa v zozname nenachádzate, prosím nahláste sa čím skôr na rjasko (zavinac) dcs.fmph.uniba.sk)