DU5

Ú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.
Jochanan
Matfyz(ák|ačka) level II
Příspěvky: 85
Registrován: 12. 5. 2007 15:58
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

du5

Příspěvek od Jochanan »

Podle me je v tech testovacich vystupech chyba. konkretne myslim test č. 3
Pár příkladů:

Kód: Vybrat vše

=>.mls
     d = 1.0;
     e = 2.718;
     f = 5e5;

=>.moa
Real constants
0:	1
1:	2.718
2:	1e-010
== neodpovida konstanta f = [2]

Kód: Vybrat vše

=>.mls
procedure localrealexpressions;
var 
	x, yy, z : real;
begin
	x := d;
	yy := e;
	z := f;
...

=>.moa
LOCALREALEXPRESSIONS:
173:	INITR
174:	INITR
175:	INITR
176:	LDLITI	LITINT[0]
177:	CVRTIR
178:	LSTR	[1]
179:	LDLITI	LITINT[1]
180:	CVRTIR
181:	LSTR	[2]
182:	LDLITI	LITINT[2]
183:	CVRTIR
184:	LSTR	[3]
== dosazuji normalne realy do realu, tak jakypak inty (176, 179, 182) a pak konverze (177, 180, 183)

Kód: Vybrat vše

=>.mls
d3i( 'globalintegerexpressions', i-j+k, i+j*k, i+k div j);

=>.moa
GLOBALINTEGEREXPRESSIONS:
76:	LDLITS	LITSTR[3]
77:	GLDI	[0]
78:	GLDI	[1]
79:	SUBI            ->(i - j)
80:	GLDI	[2]
81:	ADDI           ->(i-j + k)
82:	GLDI	[0]
83:	GLDI	[1]
84:	GLDI	[2]
85:	MULI
86:	ADDI
87:	GLDI	[0]
88:	GLDI	[1]
89:	GLDI	[2]
90:	DIVI
== tohle je zapeklitejsi. z toho komentare, co jsem pripsal je i = [0], j = [1], k = [2]
== pokud tedy mam i + k div j, tak postupuji nasledovne
== 1) ulozim i, k, j na zasobnik GLDI[x]
== 2) spoctu DIV
== 3) prictu to k i-cku
== Podle toho, co to vygenerovalo, to na zasobnik ulozi i j k (87, 88, 89), pak DIV (j div k) to pricte k i: (i+ j div k)
== Pokud se teda div nechova nejak jinak...



Co si o tom myslíte, máte podobný problém?
Tom
Matfyz(ák|ačka) level I
Příspěvky: 17
Registrován: 1. 1. 2007 22:29
Typ studia: Informatika Mgr.

DU5

Příspěvek od Tom »

Zdravim, potreboval bych pls helpnout :?: :
Nevim, jak pouzit ICM. Nejak se to pouzije spolecne s mlc.exe, ale nevim jak.

Kdyz jsem chtel zkusit nejak spustit icm.exe, tak se mi objevilo:

Kód: Vybrat vše

Usage: icm <input_file> <machine> [option]
Options:
        -Tf<trace_file> trace file
        -Ts             dump full states to the trace file
Known machines:
        stack
        regall
        regmem2
        fast_stack
        fast_regall
        fast_regmem2
Takze sumasumarum jsem nepochopil :( , co to ten <input_file>, z tech co mam k dispozici (testy a jejich ruzne vystupy), a <machine> jsou.

Diky predem za kazdou radu
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: DU5

Příspěvek od hippies »

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ů..
Petr Dlouhý
Matfyz(ák|ačka) level I
Příspěvky: 3
Registrován: 27. 6. 2006 10:26

Re: DU5

Příspěvek od Petr Dlouhý »

Na Linuxu to pouštím takhle:
./icm out.mo stack
a na Windows bych to asi pouštěl takhle:
icm.exe out.mo stack
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: DU5

Příspěvek od hippies »

icm out.mo stack
by melo stacit;)
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ů..
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: du5

Příspěvek od Tacoud »

du5-test3 mi vyhazuje ty samé chyby. Vypadá to, že změnili testovací mls soubor, ale přibalili starý output . :?
Spojaři všech zemí, proletujte se!
Tom
Matfyz(ák|ačka) level I
Příspěvky: 17
Registrován: 1. 1. 2007 22:29
Typ studia: Informatika Mgr.

Re: DU5

Příspěvek od Tom »

Diky, funguje :)
df
Matfyz(ák|ačka) level III
Příspěvky: 194
Registrován: 5. 6. 2006 11:55

Re: DU5

Příspěvek od df »

icm du5-test1.mo stack
pro ten jejich .mo z testu dava

ERROR: Requested bad value type on IP=20

pro ten test2 dava

ERROR: Requested bad value type on IP=27

to asi bude nekde chyba ne ?
Návštěvník

Re: DU5

Příspěvek od Návštěvník »

A jak se ti to icm povedlo na linuxu zkompilovat?
Petr Dlouhý píše:Na Linuxu to pouštím takhle:
./icm out.mo stack
a na Windows bych to asi pouštěl takhle:
icm.exe out.mo stack
Návštěvník

Re: DU5

Příspěvek od Návštěvník »

http://forum.matfyz.info/viewtopic.php? ... t=makefile <- lonsky makefile
Návštěvník píše:A jak se ti to icm povedlo na linuxu zkompilovat?
Petr Dlouhý píše:Na Linuxu to pouštím takhle:
./icm out.mo stack
a na Windows bych to asi pouštěl takhle:
icm.exe out.mo stack
Tom
Matfyz(ák|ačka) level I
Příspěvky: 17
Registrován: 1. 1. 2007 22:29
Typ studia: Informatika Mgr.

Re: DU5

Příspěvek od Tom »

:?: Otazka trochu odjinud:
Snazim se zadavat instrukce ICM a jedna z nich je (byla i na cviceni):

Kód: Vybrat vše

$$.ic->append_instruction(new ADDI());
No a misto toho, aby to bylo v poradku, tak (VS2008) :? :

Kód: Vybrat vše

error C2061: syntax error : identifier 'ADDI'
Nevite nekdo, proc to nejde :?:
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: DU5

Příspěvek od hippies »

ai::ADDI, nebo tak neco;)
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ů..
Tom
Matfyz(ák|ačka) level I
Příspěvky: 17
Registrován: 1. 1. 2007 22:29
Typ studia: Informatika Mgr.

Re: DU5

Příspěvek od Tom »

hippies píše:ai::ADDI, nebo tak neco;)
Diky za radu. Mas pravdu :)
Moe

Re: DU5

Příspěvek od Moe »

df píše:icm du5-test1.mo stack
pro ten jejich .mo z testu dava

ERROR: Requested bad value type on IP=20

pro ten test2 dava

ERROR: Requested bad value type on IP=27

to asi bude nekde chyba ne ?
to mam aj ja... nevie niekto co to znamena? icm som vypustil na ulitacky *.mo a takto skaredo ma to vyhresi.... (keby aspon na mojom vystupe, tak nepoviem ani slovo :) )
Návštěvník

Re: du5

Příspěvek od Návštěvník »

Mam asi dost blby dotaz - ale jak vubec prijdu k tomu vystupu .moa? predpokladam, ze -Sfile mi hodi file.mo ale jak z toho dostanu tu textovou verzi?
Odpovědět

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