DU3

Úvodní kurz překladačů se soustřeďuje zejména na teoretické i praktické základy konstrukce přední části překladače. Součástí předmětu je i cvičení zaměřující se na základy práce s nástroji pro konstrukci překladačů. Po absolvování tohoto kurzu bude posluchač schopen sestrojit vlastní překladač do mezikódu nebo jiného jazyka.
Bud a Pest

DU3

Příspěvek od Bud a Pest »

Zdravim,

spravil som domacu (tzn. ze som aj odstranil vsetky konflikty), no program mi pada na neosetrenu vynimku (vo funkcii yyparse()).

Zvlastne je, ze na vstupe:

Kód: Vybrat vše

program du3test1;

begin
end.
je vsetko ok no pri

Kód: Vybrat vše

program du3test1;

label 6;

begin
end.
to padne. Nemate nahodou niekto podobne problemy?
Pouzivam VS 2010 a bison (2.4.1)
ondr4
Matfyz(ák|ačka) level I
Příspěvky: 9
Registrován: 31. 5. 2009 11:17
Typ studia: Informatika Bc.

Re: DU3

Příspěvek od ondr4 »

Ahoj,

pouzivam VS2010 a bison 2.4.1, jako ty. Taky se mi podarilo premluvit bisona a pri prekladu mi uz nevraci zadny shift-reduce nebo reduce-reduce konflikt. Kdyz ale pustim vysledek, upadne na libovolnem vstupu, take ve funkci yyparse(). Ani zmineny prvni vstup mi to nesezere uspesne. Docela by me zajimalo, kde delam chybu :-/
blablaa

Re: DU3

Příspěvek od blablaa »

podarilo sa mi zistit ze problem je zrejme vo VS 2010, pretoze ak si otvorim solution mlc.vc9 vo visualku 2008 a pouzijem rovnake du3l.lex a du3g.y tak vsetko rpejde bez komplikacii.. o probleme som uz dal aj vediet cviciacemu, myslim ze sa to snazia odstranit, cize rada je pouzivat zatial vs 2008
silver beam

Re: DU3

Příspěvek od silver beam »

Nemohl by nekdo naznacit jak na ty reduce-reduce konflikty?
Btw kdyz jste to prvne pustili, kolik vam jich to hodilo? Ja mam 87 R-R a 19 S-R.
ondr4
Matfyz(ák|ačka) level I
Příspěvky: 9
Registrován: 31. 5. 2009 11:17
Typ studia: Informatika Bc.

Re: DU3

Příspěvek od ondr4 »

to blablaa: Moc dekuju za informaci!! Uz jsem si skoro myslel, ze se uchylim k nasili a VS2010 znicim :evil:

to silver beam: Jo, pri prvnim pokusu mi Bison neco takoveho taky vratil :) Muj postup je nasledujici...nejdriv jsem upravil neprijemna mista zminovana na prednaste a cviku (jako kolize mezi IF...THEN a IF...THEN...ELSE; prepisovaci pravila "skutocne parametre" a "faktor"...pokud nemas poznamky koukni do Studnice Vedomosti, neco tam je). Tim jsem se zbavil vetsiny konfliktu. Se zbytkem (asi 2 shift-reduce) jsem se popasoval tak, ze jsem si prochazel sva prepisovaci pravidla a hledal mozne derivace. Kdyz jsem narazil na vic jak jednu moznost, jak dosahnout stejneho terminalu (respektive pravidla) z jednoho pravidla, jsem vychozi pravidlo prepsal (smazal moznost prepisovani, pripadne pridal upravene pravidlo, ktere zabrani derivaci nevhodnym smerem...). Taky se mi hodilo zakomentovat si cast pravidel, abych zjistil kde asi muze konflikt byt. Bison mi totiz v posledni fazi opravovani moc nenapovidal...
tomm

Re: DU3

Příspěvek od tomm »

Já měl po první kompilaci 18 reduce-reduce a jen 1 shift-reduce (klasický dangling else). Doporučuju poznámky ze studnice, taky jsem dlouho nevěděl, co s těmi r-r konflikty, přitom je to skoro triviální... Jen pro kontrolu - kolik vám to tentokrát hází warningů? Můj počet se zastavil na 12 (9 bison, 3 flex), používám VS2008...
Uživatelský avatar
mifeet
Matfyz(ák|ačka) level I
Příspěvky: 14
Registrován: 27. 1. 2010 14:37
Typ studia: Informatika Ph.D.

Re: DU3

Příspěvek od mifeet »

Nezdá se vám, že testy pro DU3 neodpovídají gramatice popsané diagramy?
Podle diagramů by poslední příkaz před END neměl být ukončený středníkem. Ale v testech ukončené středníkem jsou. Stejně tak podle diagramů nesmí být prázdný BEGIN END blok, ale v du3-test2-4.mls je.

Jinak warningů mám taky 9+3 (VS2010).
tomm

Re: DU3

Příspěvek od tomm »

mifeet: Jde o to, že existuje i prázdný příkaz ;)
silver beam

Re: DU3

Příspěvek od silver beam »

ondr4> Poznamky prave nemam, trochu jsem propasnul vsechny cviceni kde se tahle uloha zadavala. Na tu studnici jsem se uz koukal, no moc moudry z toho nejsem. Napriklad mi to silne protestuje na tech typech - typ, ordinalni typ a strukturovany typ se daji prepsat na identifikator. Jelikoz bison stavi strom zezdola, tak pri nalezeni identifikatoru ma tri moznosti na vyber a je v kyblu. Ale jak z toho ven??
hurda
Matfyz(ák|ačka) level I
Příspěvky: 12
Registrován: 10. 1. 2011 14:46
Typ studia: Informatika Mgr.

Re: DU3

Příspěvek od hurda »

Taky s tím ještě bojuji, nezapsal jsme si všechno co říkal, myslel, jsem že na to hned vletím a ouha po třech týdnech si nic nepamatuji.

IF THEM ELSE mám snad vyřešené, ale asi mám problém s Identifikátorem - jak jste to řešili - popřípadě, jak jset tu svou gramatiku debugovali?
Odpovědět

Zpět na „SWI098 Principy překladačů“