dú3

Ú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:

dú3

Příspěvek od Jochanan »

Tak jsem zkusil nahlédnout do dú3 a když jsem nastavil ty cesty správně, tak mi to při kompilaci hodilo z bisona chybu něco o mc4.
Nemá někdo fční kompilaci, jestli neni třeba dělat něco extra...
aja
Matfyz(ák|ačka) level I
Příspěvky: 20
Registrován: 15. 5. 2006 09:02
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Re: dú3

Příspěvek od aja »

Mne to funguje, ale hazi 23 warningu... :?
Computers are useless. They can only give you answers. - Pablo Picasso
Calm down -- it's only ones and zeros.
Bug? That's not a bug, that's a feature. -T. John Wendel
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: dú3

Příspěvek od Tacoud »

Spolu s GnuWin32 bisonem mi to nefunguje, nemuze najit program m4. Ale s cygwinem mi to chodi
Spojaři všech zemí, proletujte se!
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:

Re: dú3

Příspěvek od Jochanan »

stejný problém. Zkusim nainstalovat cygwin bisona
df
Matfyz(ák|ačka) level III
Příspěvky: 194
Registrován: 5. 6. 2006 11:55

Re: dú3

Příspěvek od df »

ten problem neni tezky poresit, jediny co proste nemate je nastavenou cestu k m4, takze bud si udelejte batacek ve stylu

Kód: Vybrat vše

@set PATH=%PATH%;X:\Nekde mam bisona\bin
bison.exe --report=all -d -o du3g.cpp %1 
a nebo (kdyz chcete aby vam to chodilo i v MSVS) si zmente promennou PATH systemwide
soukromý čmuchal s prasečím rypákem

Re: dú3

Příspěvek od soukromý čmuchal s prasečím rypákem »

df píše:ten problem neni tezky poresit, jediny co proste nemate je nastavenou cestu k m4, takze bud si udelejte batacek ve stylu

Kód: Vybrat vše

@set PATH=%PATH%;X:\Nekde mam bisona\bin
bison.exe --report=all -d -o du3g.cpp %1 
a nebo (kdyz chcete aby vam to chodilo i v MSVS) si zmente promennou PATH systemwide
Jine reseni je nastavit si do systemove promenne M4 cestu k souboru m4.exe.
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: dú3

Příspěvek od Angel »

Doporucuji nainstalovat operacni system misto zavadece her :-P.
df
Matfyz(ák|ačka) level III
Příspěvky: 194
Registrován: 5. 6. 2006 11:55

Re: dú3

Příspěvek od df »

Angel píše:Doporucuji nainstalovat operacni system misto zavadece her :-P.
doporucuji nedoporucovat ;)
D
Matfyz(ák|ačka) level I
Příspěvky: 32
Registrován: 20. 12. 2006 17:42

Re: dú3

Příspěvek od D »

ktora ze to rekurzia je efektivnejsia? bednarek tvrdil tusim ze je to leva ale nejak sa mi to nezda ... poradi, vysvetli niekto?
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:

Re: dú3

Příspěvek od Jochanan »

D píše:ktora ze to rekurzia je efektivnejsia? bednarek tvrdil tusim ze je to leva ale nejak sa mi to nezda ... poradi, vysvetli niekto?
Je to levá.
Navíc je jednodušší na zapsání.
Je efektivnější proto, že nějak v pravý se nejdřív všechno narve na zásobník a pak se to z něj užírá kdežto u levý se to užírá postupně...
Pro mě je spíš ta výhodnost v jednodušším zápisu
rastiq

Re: dú3

Příspěvek od rastiq »

soukromý čmuchal s prasečím rypákem píše:
df píše:ten problem neni tezky poresit, jediny co proste nemate je nastavenou cestu k m4, takze bud si udelejte batacek ve stylu

Kód: Vybrat vše

@set PATH=%PATH%;X:\Nekde mam bisona\bin
bison.exe --report=all -d -o du3g.cpp %1 
a nebo (kdyz chcete aby vam to chodilo i v MSVS) si zmente promennou PATH systemwide
Jine reseni je nastavit si do systemove promenne M4 cestu k souboru m4.exe.
To by slo, dik, a nemali ste niekto vzapeti takuto hlasku?
C:\bison\bin\bison.exe: m4: Invalid argument
Uživatelský avatar
hydrant
Matfyz(ák|ačka) level III
Příspěvky: 196
Registrován: 4. 1. 2005 12:50
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Re: dú3

Příspěvek od hydrant »

Pri prvej ulohe nam bolo povedane, ze bude vygenerovanych nejakych 5 warningov. Pri tejto ulohe, ale ziadna taka zmienka nie je... je v poriadku ak mi vypisuje prekladac taketo warningy?

Kód: Vybrat vše

.\du3g.cpp(299) : warning C4565: 'malloc' : redefinition; the symbol was previously declared with __declspec(restrict)
.\du3g.cpp(299) : warning C4565: 'malloc' : redefinition; the symbol was previously declared with __declspec(noalias)
.\du3g.cpp(299) : warning C4273: 'malloc' : inconsistent dll linkage
        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(594) : see previous definition of 'malloc'
.\du3g.cpp(306) : warning C4565: 'free' : redefinition; the symbol was previously declared with __declspec(noalias)
.\du3g.cpp(306) : warning C4273: 'free' : inconsistent dll linkage
        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(593) : see previous definition of 'free'
.\du3g.cpp(1003) : warning C4065: switch statement contains 'default' but no 'case' labels
.\du3g.cpp(1140) : warning C4244: '=' : conversion from 'int' to 'short', possible loss of data
.\du3g.cpp(1310) : warning C4127: conditional expression is constant
.\du3g.cpp(1316) : warning C4065: switch statement contains 'default' but no 'case' labels
.\du3g.cpp(1492) : warning C4127: conditional expression is constant
.\du3g.cpp(1542) : warning C4127: conditional expression is constant
.\du3g.cpp(1542) : warning C4127: conditional expression is constant
Moe Szyslak

Re: dú3

Příspěvek od Moe Szyslak »

Mne VS2005 to vyhodi tychto 15 warningov...snad je to ok, kedze sme este ziadny vlastny C kod nepisali :)

Kód: Vybrat vše

2>.\du3g.cpp(285) : warning C4565: 'malloc' : redefinition; the symbol was previously declared with __declspec(restrict)
2>.\du3g.cpp(285) : warning C4565: 'malloc' : redefinition; the symbol was previously declared with __declspec(noalias)
2>.\du3g.cpp(285) : warning C4273: 'malloc' : inconsistent dll linkage
2>        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(636) : see previous definition of 'malloc'
2>.\du3g.cpp(292) : warning C4565: 'free' : redefinition; the symbol was previously declared with __declspec(noalias)
2>.\du3g.cpp(292) : warning C4273: 'free' : inconsistent dll linkage
2>        C:\Program Files\Microsoft Visual Studio 8\VC\include\stdlib.h(635) : see previous definition of 'free'
2>.\du3g.cpp(1112) : warning C4065: switch statement contains 'default' but no 'case' labels
2>.\du3g.cpp(1249) : warning C4244: '=' : conversion from 'int' to 'short', possible loss of data
2>.\du3g.cpp(1419) : warning C4127: conditional expression is constant
2>.\du3g.cpp(1425) : warning C4065: switch statement contains 'default' but no 'case' labels
2>.\du3g.cpp(1601) : warning C4127: conditional expression is constant
2>.\du3g.cpp(1651) : warning C4127: conditional expression is constant
2>.\du3g.cpp(1651) : warning C4127: conditional expression is constant
2>d:\prekladace\du3\mlaskal\public-rw\swi098\du3\du3g.cpp(1541) : warning C4706: assignment within conditional expression
2>d:\prekladace\du3\mlaskal\public-rw\swi098\du3\du3g.cpp(1305) : warning C4702: unreachable code
2>d:\prekladace\du3\mlaskal\public-rw\swi098\du3\du3g.cpp(1604) : warning C4702: unreachable code
2>Compiling...
@nihilat0r

Re: dú3

Příspěvek od @nihilat0r »

Nazdar,

nema tu nahodou niekto problem s VS2005 a bisonom, kde mu vyhadzuje 2 errory:
Error 1 error PRJ0019: A tool returned an error code from "Bison" mlcgrm
Error 2 fatal error C1083: Cannot open source file: '.\du3g.cpp': No such file or directory c1xx

???
Predpokladam teda ze je to chyba bisonu, pretoze zdrojak pre Flex som zobral z DU2 ktoru skompilovalo vpohode (samozrejme hlavicky som vymenil ;)) a aj tak by som ocakaval ze to hodi chybu z flexu najprv ak by to neslo...
Btw mam gnuwin32 verzie flexu aj bisonu a neviem co s tym (cygwin by som instaloval najradsej az ked to bude vazne nutne).
Anyone?
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

dú3 - par dotazu na yaghoba

Příspěvek od qwertie »

> Dobry den chtel jsem se zeptat na par otazek ohledne prekladace:
>
> 1.) Tokeny DUTOK_ARRAY, DUTOK_OF, DUTOK_DOTDOT,DUTOK_LSBRA,
> DUTOK_RSBRA se jiz nevyuzivaji, tudiz je mozno je zakomentovat?
>

Muzete je bud odkomentovat nebo je tam nechat, varovani za jejich
nepouziti se nebudou pocitat.

> 2.)
> Diagram ordinalna konstanta dole na mlaskal-c-8.jpg se nikde
> nevyuziva, je to tedy tez zbytek z minula?(pravdepodobne range)
>
Hmm, skoro urcite. Muzete ignorovat.

> 3.) Bude se nejak hodnotit co prekladac nabidne v pripade syntakticke chyby?
> Pr: Error (line 123): Encountered syntax error, unexpected DUTOK_DOT,
> expecting DUTOK_BEGIN (mohli by tu byt i DUTOK_PROCEDURE a
> DUTOK_FUNCTION pripadne dalsi- je chyba ze je prekladac nevypsal??)
>

Ne, protoze to zavisi na upravach gramtiky, ktere jste provedli. Ve
vetsine pripadu by to mela byt ta sama vec, ale muzou tam obcas byt
odlisnosti.

> 4.) Je 123.e12 DUTOK_INT DUTOK_DOT DUTOK_IDENTIFIER nebo malformed real?
>

Malformed real je to vzdy tehdy, pokud v syntaktickem diagramu pro
realne cislo skoncite na miste, odkud nevede sipka na konec.

> 5.) Mohu odpovedi s otazkami zverejnit na nasem foru?
>

To jiste ano, aspon se to dozvi i ostatni.

> Dale prikladam makefile pro 3. ukol, nekomu by se mohl hodit..
> Tento makefile umi i diffovat vysledky vsech mls a out v adresari s
> testy (pomoci "make check") pripadne i otevrit v editoru outy ktere se
> lisi (pomoci "make check_view"), editor se da zmenit uvnitr v makefile
>

Dekuji, zverejnil jsem.

JY

__________________________________Konec citovaneho mailu

muzete mi tedy nekdo zduvodnit proc to je nebo neni malformed real?

Dik Qw
Odpovědět

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