Semestralni prace z predmetu FJP Hynek Lalinsky, hlalin@students.zcu.cz Prosinec 2001 Obsah adresare: - puvodni * puvodni prekladac jazyka PL0 v Jave (autor: Michal Beran, berny@students.zcu.cz) - upravene * upraveny zdrojovy kod prekladace v Jave: - upraveno odsazovani (tabulatory o delce 4 znaku) - doplneny mezery pro zprehledneni kodu (mezi parametry, kolem relacnich operatoru) - uprava identifikatoru, tak aby odpovidaly konvencim pojmenovavani v Jave - upravena specifikace pristupovych prav (vetsinou jen na protected, aby byl zachovan pristup zevnitr baliku) - v osetreni vyjimek pomoci konstrukce try doplneno volani e.printStackTrace() pro snazsi urceni mista vzniku chyby - doplnen vypis textovych popisu chyb prekladu (kdyz uz tam byla funkce pro prevod cisla chyby na jeji textovy popis, proc ji nevyuzit) - chybky v samodokumentacnich komentarich (chybejici param apod.) * co upraveno nebylo a mohlo by byt: - chybejici komentare na nekterych mistech - autorizovany pristup k datum (vsechny atributy by spravne mely byt private a pristup k nim by mel byt pres protected metody) - pouziti tridy Vector misto poli o pevne delce (pak by nebylo treba omezovat velikost tabulky symbolu a pole pro generovane instrukce konstantou a tato pole by se sama dynamicky zvetsovala) - bohuzel jsem stale prehledl nektere chybejici mezery mezi parametry a v komentarich - opravene * opraveny chyby v prekladaci a interpretu: - odstranena nekonecna rekurze vznikajici pri pouziti zavorek ve vyrazu - odstraneno vypisovani obsahu citace instrukci po kazde provedene instrukci (to jen matlo uzivatele) - upraveno prohledavani tabulky symbolu tak, aby byly prohledavany jen "viditelne" identifikatory (misto vsech jiz uvedenych) - porovnavani cisla z kodu v jazyce PL0 s pochybnou konstantou AMAX (podle komentare slo o maximalni adresu) nahrazeno kontrolou, jestli se uvedene cislo vejde do promenne typu int - doplnena kontrola preplneni tabulky symbolu * neopravene chyby: - neni zabraneno vyskytu dvou stejnych identifikatoru v jednom bloku (napr. 2 stejne pojmenovane promenne v jedne procedure nebo stejne pojmenovana promenna a konstanta) - doplnene * prekladac doplneny o procedury s parametry predavanymi hodnotou - priklady * priklady na otestovani doplneneho kodu (pro otestovani procedur s parametry) - chyby?.pl0 * otestovani detekce chyb prekladacem - prg?.pl0 * otestovani funkcnosti spravneho kodu - pr-dalsi - Dokumentace.doc * dokumentace k odevzdavane semestralni praci