DU4

Ú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.
qwertie
Matfyz(ák|ačka) level III
Příspěvky: 103
Registrován: 4. 6. 2005 15:49
Typ studia: Informatika Bc.
Bydliště: Vyšehrad

DU4

Příspěvek od qwertie »

Ahoj, jdete nekdo zitra na cvika? Jsem nemocny a potreboval bych zapisky.. Dik Qw
Moe

Re: DU4

Příspěvek od Moe »

Zdravim

nejak nesom schopny urobit zrejme tu najjednoduchsiu vec - mechanicku upravu lexoveho zdrojaku

lv->int_ci_ = ls_int.add(xxx);

sa ma zmenit na

lv->int_ci_ = ctx->tab->ls_int(xxx);
?

podla dokumentacie na strankach je to fcia bez parametrov..tak teraz neviem..alebo uz je pol jednej rano a do toho nevidim :)
df
Matfyz(ák|ačka) level III
Příspěvky: 194
Registrován: 5. 6. 2006 11:55

Re: DU4

Příspěvek od df »

Moe píše:Zdravim

nejak nesom schopny urobit zrejme tu najjednoduchsiu vec - mechanicku upravu lexoveho zdrojaku

lv->int_ci_ = ls_int.add(xxx);

sa ma zmenit na

lv->int_ci_ = ctx->tab->ls_int(xxx);
?

podla dokumentacie na strankach je to fcia bez parametrov..tak teraz neviem..alebo uz je pol jednej rano a do toho nevidim :)
neber me za slovo, ale imho to bylo nejak ctx->tab.ls_int().add(...)
Moe

Re: DU4

Příspěvek od Moe »

Dik, pomohlo :)

btw. ako zistit cislo riadku vo vnutri pravidla bisonu:
na cviku bolo povedane %1 by to malo riesit... dostaval som error:

Kód: Vybrat vše

error C3071: operator '%' can only be applied to an instance of a ref class or a value-type
tak som chvilocku guglil a dosiel k tomu ze namiesto % by tam malo byt @ (snad)
kazpodadne to pomohlo, errory zmizli, ale vystup prekladaca je nejaky divny (nevyzera to na xml :), je tam nejaky divny bordel :)
df
Matfyz(ák|ačka) level III
Příspěvky: 194
Registrován: 5. 6. 2006 11:55

Re: DU4

Příspěvek od df »

Moe

Re: DU4

Příspěvek od Moe »

Zdravim

skusal uz niekto robit du4? :) dnes som sa babral s konstantami a narazil som (okrem ineho) na problem s vystupom mojho prekladaca...
konkretne to na volanie

Kód: Vybrat vše

mlc du4-test... -Dout.xml 
vyrobi daco divne...

Kód: Vybrat vše

                             BOOLEAN    INTEGER    REAL    STRING    FALSE    TRUE    READI    READR    READS    P    WRITEI    WRITER    WRITES    WRITELN    DU4TEST2    C1    AR                       ˙˙˙˙            
atd

co sa na xml jaksi nepodoba :) Teraz neviem ci mam problem s xslt(instaloval som to podla navodu na http://www.zlatkovic.com/libxml.en.html tj. okrem libxslt mam aj libxml, zlib a iconv), binarky su v Path, VS nehlasi ziaden problem pri preklade tykajuci sa projektu mlcxslt (u ostatnych 2 projektov takisto vyhlasi vsetko ok, az na par warningov v du4g.cpp..)
Stretol sa s tym niekto?
Ked mlca pustim s -B tak to vyrobi file -B tiez s podobnym obsahom...
Uživatelský avatar
Tacoud
Donátor
Donátor
Příspěvky: 53
Registrován: 16. 9. 2005 08:38
Typ studia: Informatika Bc.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: DU4

Příspěvek od Tacoud »

problem s vystupom mojho prekladaca...
Tohle je mezikód, který se později bude předhazovat iterpreteru. Teď bych si toho nevšímal.
Dump tabulek můžeš získat třeba takhle:

Kód: Vybrat vše

mlc.exe du4-test6.mls dumbout -B > du4-test6-my.out
Spojaři všech zemí, proletujte se!
Moe

Re: DU4

Příspěvek od Moe »

Tacoud píše:
problem s vystupom mojho prekladaca...
Tohle je mezikód, který se později bude předhazovat iterpreteru. Teď bych si toho nevšímal.
Dump tabulek můžeš získat třeba takhle:

Kód: Vybrat vše

mlc.exe du4-test6.mls dumbout -B > du4-test6-my.out
Dik..v noci som jaksi nepostrehol druhy paramter :( hanbim sa jak pes :)
Moe

Re: DU4

Příspěvek od Moe »

Zdravim

na cviku p. Bednarek hovoril, ze nie je nutne starat sa o duplicitnu deklaraciu symbolov, ze to tie funkcie add_xxx vyriesia same..t.j. ze vypisu error: duplicated symbol...
Ako sa to ma chovat pri pridavani procedury/fcie? T.j. ak deklarujem proceduru x a taky symbol uz nieco je(premenna, ina fcia..) tak to vyhodi spravne ze duplicated symbol, ale potom premenne vo fcii deklaruje ako globalne (lebo nebol zavolany enter())..
riesenie by bolo zistit ci taky symbol uz nieje, ak je, tak tu fciu uz nepridavat.... ale ako sa to dozviem ked som vovnutri tela fcie a vidim deklaraciu lokalnych premennych , ktore by sa mali "preskocit"?
Alebo to mam nechat tak, ako to je "zabudovane"..tj add_proc vypise error duplicated symbol a netreba sa tym zaoberat?
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: DU4

Příspěvek od hippies »

tradicne je zavazny pouze prvni vyvolany error, zbytek je na tobe, jak se ti to hodi do tve implementace..
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
qk
Matfyz(ák|ačka) level III
Příspěvky: 181
Registrován: 24. 2. 2005 10:03
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Re: DU4

Příspěvek od qk »

tak davam v priloze svuj makefile pro ukol 4 (teda je to txt, protoze to nepovoluje bez pripony) ;) zejmena doporucuju funkci make check, ktera automaticky zkontroluje vysledny program s testovacimi priklady (bohuzel funguji jen 2 a 6)
Přílohy
Makefile.txt
(6.38 KiB) Staženo 227 x
Don't worry, be dead
Uživatelský avatar
Angel
Matfyz(ák|ačka) level III
Příspěvky: 121
Registrován: 9. 9. 2005 19:28
Typ studia: Informatika Mgr.
Bydliště: Znojmo / Praha
Kontaktovat uživatele:

Re: DU4

Příspěvek od Angel »

qk píše:tak davam v priloze svuj makefile pro ukol 4 (teda je to txt, protoze to nepovoluje bez pripony) ;) zejmena doporucuju funkci make check, ktera automaticky zkontroluje vysledny program s testovacimi priklady (bohuzel funguji jen 2 a 6)
Povazuji si opravy diffu na --strip-trailing-cr ;-). Take jsem si to tak udelal.
qk
Matfyz(ák|ačka) level III
Příspěvky: 181
Registrován: 24. 2. 2005 10:03
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Re: DU4

Příspěvek od qk »

Angel píše:
qk píše:tak davam v priloze svuj makefile pro ukol 4 (teda je to txt, protoze to nepovoluje bez pripony) ;) zejmena doporucuju funkci make check, ktera automaticky zkontroluje vysledny program s testovacimi priklady (bohuzel funguji jen 2 a 6)
Povazuji si opravy diffu na --strip-trailing-cr ;-). Take jsem si to tak udelal.
no tak zase to neni prenositelny, staci jina implementace diffu. Puvodni reseni zpredroku melo v sobe prekladani pres dos2unix, ale to byl dost opruz a kdyz sem to letos trochu prepisoval, tak sem udelal tuhle zmenu.
Don't worry, be dead
Uživatelský avatar
Necroman
Supermatfyz(ák|ačka)
Příspěvky: 459
Registrován: 20. 1. 2005 19:46
Typ studia: Informatika Mgr.
Bydliště: Louny / kolej Jednota, Praha
Kontaktovat uživatele:

Re: DU4

Příspěvek od Necroman »

Tacoud píše:Tohle je mezikód, který se později bude předhazovat iterpreteru. Teď bych si toho nevšímal.
Dump tabulek můžeš získat třeba takhle:

Kód: Vybrat vše

mlc.exe du4-test6.mls dumbout -B > du4-test6-my.out
Pouzivam volani stejnym zpusobem a presto vypada XML vystup stale takto. Kde muze byt problem? Klasicky vystup .out je jinak v poradku.

Kód: Vybrat vše

 TPOLEFUNKCII    LENGTH    PFUNC 
   TPOLEKONSTANT    PKONST 
   TPOLEOPERACII    POPER    TVYRAZ    DATA    CHAR    CURPOS    FUNKCIE 	   KONSTANTY    OPERACIE    TIDENTIFIKATOR    TYP    KONST    FUNC    MATVYRAZ    STR    I    VYS    RET    MAX    A    B    MIN    ISNUMBER    C    ORD    PLUS    X    Y    VYSLEDOK    MINUS    KRAT 
WANTED:
Dead or Alive
^-^
( ^ )
Schroedinger's Cat
banan
Matfyz(ák|ačka) level I
Příspěvky: 40
Registrován: 14. 6. 2005 14:50
Typ studia: Informatika Bc.
Bydliště: Troja

Re: DU4

Příspěvek od banan »

Xml vystup generujes prepinacom -D, cize: mlc.exe test.mls test.binout -B -Dtest.xml > test.out
Odpovědět

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