Tak mam otazku pre tych co uz mali dnes skusku z Prekladacov co bolo na skuske? ako boli priklady? najlepsie by bolo mat presne znenie...
diki
zevraj vsetci dostali Acka....
Ja som bol na skuske... a bola taska fest ..... ale ta kto sa ucil ta mal.... :metal:
Ale ne teraz vazne.... vpohode bolo .... trebalo vediet ako sa zapisuje EBNF zatvorkovych vyrazov 3 operatorov aby bola dodrzana ich priorita a asociativita (priority a asociativity boli dane... len EBNF trebalo napisat)
Noa dalej bolo treba syntaktycky analyzator so zotavenim v ccku napisat s tym ze bolo dane pravidlo... ale take kus dlhsie pravidlo .....asi daco jak A->bCD{eF}gH .
No ale vraj sme to mali lahsie bo ze prvy termin ta neviem asi na dalsich toho bude viac treba.... kazdopadne syntakticky a tie zakladne veci okolo LL1, EBNF, BNF.... a tych odstranovani rekurzii a vyclenovani a pod by sa trebalo naucit.
Inak mame seci 95 co sme boli.... to preto ze sme sa ucili.... :thumbsup: .
to preto ze predtermin
netusim kto je kollar
tusim co je predtermin
Dnesna skuska bola podstatne narocnejsia ako predtermin.
Otazky z prvej skupiny:
1. Napíšte gramatiku lexikálnych jednotiek pre identifikátory, ktoré majú prvé dva znaky veľké písmená, potom môže nasledovať ľubovoľný počet číslic a ukončené môžu byť jedným apostrofom
2. napíšte, do akej konfigurácie sa dostane automat pri konfigurácii
a { -gulicka- b | a }, ak na vstup pride znak b
3. napíšte gramatiku v EBNF pre zátvorkové výrazy a operácie +, - , *, /, pričom + a – neasociujú, * asociuje doľava a / doprava a priorita je takáto:
p(*) > p (/) > p(+) = p(-)
4. nakreslite syntakticky strom pre vyraz 10 – 3 * 4 * (3 / 2 – 7), pricom gramatika je z prikladu 3
5. napiste syntakticky analyzator so zotavenim pre A -> X [aY] {Z}, pouzite procedury check a error
-- vela stastia pri dalsich terminoch, dnes bohuzial neurobili vsetci
Druhá skupina mala:
1. Napíšte gramatiku lexikálnych jednotiek pre identifikátory, ktoré majú prvý znak "$" alebo veľké písmeno, potom môže nasledovať ľubovoľný nenulový počet číslic a malých písmen
2.Napíšte, do akej konfigurácie sa dostane automat pri konfigurácii
-gulicka- a {b | c }, ak na vstup pride znak a
3. napíšte gramatiku v EBNF pre zátvorkové výrazy a operácie +, - , *, /, pričom + a – asociujú do prava, * neasociuje a / dolava a priorita je takáto:
p(+)= p(-) > p(*) > p(/)
4. Napíšte prefixnú a postfixnú formu výrazu a+b+c*d+e/f pre gramatiku z príkladu 3
5.napiste syntakticky analyzator so zotavenim pre A -> aB {bC} (c|F) - (cca už nepamätám presne), pouzite procedury check a error
dalo sa opisovat?
Quote from: kerekes on 18.05.2007, 03:02:01
Ja som bol na skuske... a bola taska fest ..... ale ta kto sa ucil ta mal.... :metal:
Ale ne teraz vazne.... vpohode bolo .... trebalo vediet ako sa zapisuje EBNF zatvorkovych vyrazov 3 operatorov aby bola dodrzana ich priorita a asociativita (priority a asociativity boli dane... len EBNF trebalo napisat)
Noa dalej bolo treba syntaktycky analyzator so zotavenim v ccku napisat s tym ze bolo dane pravidlo... ale take kus dlhsie pravidlo .....asi daco jak A->bCD{eF}gH .
No ale vraj sme to mali lahsie bo ze prvy termin ta neviem asi na dalsich toho bude viac treba.... kazdopadne syntakticky a tie zakladne veci okolo LL1, EBNF, BNF.... a tych odstranovani rekurzii a vyclenovani a pod by sa trebalo naucit.
Inak mame seci 95 co sme boli.... to preto ze sme sa ucili.... :thumbsup: .
vtipne od niekoho kto sa uci na skusku 13 dni :D
pravda, pravda
nemate dakto tie veci vypracovane ?
z čoho sa učiť na skúšku z prekladačov?
2.Napíšte, do akej konfigurácie sa dostane automat pri konfigurácii
-gulicka- a {b | c }, ak na vstup pride znak a
nechapem o co ide v tychto prikladoch s tou gulickou, vie mi to niekto vysvetlit?
Quote from: unicorn on 02.06.2007, 20:26:19
nechapem o co ide v tychto prikladoch s tou gulickou, vie mi to niekto vysvetlit?
Gulicka je miesto, kde sa automat momentalne nachadza.
T.z. riesenie je
a -gulicka- { b|c}
Asi :lb:
diky, a tie prefixne a postfixne formy vyrazov su co?
uz som na to prisiel, nevermind
JJ, ale tie zatvorky tam asi netreba, vid
http://hornad.fei.tuke.sk/predmety/prekl/prekl.php?co=cv3
Quote from: unicorn on 02.06.2007, 22:06:44
tie prefixne a postfixne formy vyrazov su co?
pri postfixnom forme platí:
v infixnom forme: (a+b)
postfix: ab+
prefix: +ab
Teda ak máme infix: (1+2)*3 < -8/4
a priorita a asociativita je tak, ako na civceni: http://hornad.fei.tuke.sk/predmety/prekl/prekl.php?co=cv3
v prvom kroku: (1+2)*3 < 8 -un /4
dalej: (1+2)3* < 8 -un 4 /
dalej: (1 2+)3* < 8 -un 4 /
a vysledok: 1 2 + 3 * 8 -un 4 / <
a prefixny tvar funguje naopak....
Quote from: Marek8 on 02.06.2007, 21:54:18
Quote from: unicorn on 02.06.2007, 20:26:19
nechapem o co ide v tychto prikladoch s tou gulickou, vie mi to niekto vysvetlit?
Gulicka je miesto, kde sa automat momentalne nachadza.
T.z. riesenie je
a -gulicka- { b|c}
Asi :lb:
asi tomu nie celkom rozumiem. kde sa da o tom najst nieco viac? termin sa uz blizi....
Quote from: bodik on 04.06.2007, 16:25:51
Quote from: Marek8 on 02.06.2007, 21:54:18
Quote from: unicorn on 02.06.2007, 20:26:19
nechapem o co ide v tychto prikladoch s tou gulickou, vie mi to niekto vysvetlit?
Gulicka je miesto, kde sa automat momentalne nachadza.
T.z. riesenie je
a -gulicka- { b|c}
Asi :lb:
asi tomu nie celkom rozumiem. kde sa da o tom najst nieco viac? termin sa uz blizi....
ach jaj sak na tom ani nie je co vysvetlovat:) gulicka znamena kde sa momentalne nachadza automat .a{b|c}, ak na jeho vstup pride a tak automat caka na prichod b alebo c takze sa gulicka postunie za a takto: a. {b|c} ci nie???:) mna by skor zaujimalo co sa stane ak automat je v stave a{gulicka b|a} a pride b dostane sa do: a { b|a gulicka} alebo a b { b|a gulicka} ??
Quote from: UnderTaker on 04.06.2007, 17:13:25
Quote from: bodik on 04.06.2007, 16:25:51
Quote from: Marek8 on 02.06.2007, 21:54:18
Quote from: unicorn on 02.06.2007, 20:26:19
nechapem o co ide v tychto prikladoch s tou gulickou, vie mi to niekto vysvetlit?
Gulicka je miesto, kde sa automat momentalne nachadza.
T.z. riesenie je
a -gulicka- { b|c}
Asi :lb:
asi tomu nie celkom rozumiem. kde sa da o tom najst nieco viac? termin sa uz blizi....
ach jaj sak na tom ani nie je co vysvetlovat:) gulicka znamena kde sa momentalne nachadza automat .a{b|c}, ak na jeho vstup pride a tak automat caka na prichod b alebo c takze sa gulicka postunie za a takto: a. {b|c} ci nie???:) mna by skor zaujimalo co sa stane ak automat je v stave a{gulicka b|a} a pride b dostane sa do: a { b|a gulicka} alebo a b { b|a gulicka} ??
Dostane sa do a {b|a gulicka}.Asi.Do toho druheho stavu urcite nie, lebo gramatika sa zmenit nemoze. Ale moze nastat pripad, ze bude viac guliciek. Teda mozno by to malo byt a { b|a gulicka} gulicka. Alebo nejak inak, som z toho popleteny tiez.
A nie takto?: a { gulicka b|a} gulicka pretoze este mozu prist dalsie b alebo a ktore musi nacitat, pripadne skoncil ak nepridu. V zosite som daco nasiel, ale ta gulicka bola pisana pred {} asi takto :a gulicka{ b|a} gulicka je medzi tymi dvoma zapismi rozdiel??
no ved prave, neviem ako to ma byt,ci gulicka pred {} alebo vo vnutri{} za b|a alebo aj v{} aj za {}
moze sa automat nachadzat naraz vo viacerych stavoch? podla mna tam treba znazornit, ze znova automat ocakava b|a, len ako to napisat? mozno sa nic nezmeni a znova to bude a{gulicka b|a} Neda sa to nahodou najst v Kollarovych skriptach?
Co je to preboha "Gramatika lexikalnych jednotiek"? V skriptach som nic take nenasiel... :lb:
Quote from: Stanley on 04.06.2007, 22:20:16
Co je to preboha "Gramatika lexikalnych jednotiek"? V skriptach som nic take nenasiel... :lb:
.....ktoré majú prvé dva znaky veľké písmená, potom môže nasledovať ľubovoľný počet číslic a ukončené môžu byť jedným apostrofom
nema byt riesenie taketo:
G -> ("A"|...|"Z") ("A"|...|"Z"){"0"..."9"}[']
?
jj tak ako pises
akurat ze cislice su od 0 po 9 nie od 1 po 9 :))
Quote from: UnderTaker on 05.06.2007, 02:05:27
akurat ze cislice su od 0 po 9 nie od 1 po 9 :))
jo mas pravdu :D, uz som zmenil. dikes
Vie niekto nakodit tie syntakticke co maly na minulom termine?
Quote from: tosen on 05.06.2007, 02:33:04
Vie niekto nakodit tie syntakticke co maly na minulom termine?
ano ;D
takze dnesny termin bol teda riadne tazky.....otazky uplne ine ako na predoslych terminoch, akurat syntakticky analyzator ostal. kto nemal ten asi nepsravil, kedze ostatne otazky boli horsie...ja som bol v prvej varke a opisovat sa nedalo vobec...
z coho sa ucit?!?!?!????????
no jedine zo skript, a zameraj sa najma na priklady a zdrojaky zo zadania. teoria nebola ziadna..
a neda sa nic pouzivat na skuske?
Ty brdo, ja len potvrdim, ze ten dnesny termin bol OMFG. Otázky čo som mal ja:
1) Na základe def. rozšírených reg.výrazov definujte jazyk pre nekonečné reťazce ab, abab, ...
Prázdny reťazec nepatrí do jazyka. Nakreslite prechodový diagram.
2) Nakreslite vzťah medzi procedúrou A a procedúrou B...Tento príklad si nepamätám, viem,že niečo s aktivačným zoznamom a s poklesom úrovne L o 2.
3) Upravte bezkontext gramatiku
A-> abC | a{B} na LL(1). Pre upravenu gramatiku spravit syntakticky analyzator pomocou procedur Check a Error.
4)Rezimy semantickej analyzy vymenovat a popisat. Tabulka pre semanticku analyzu - vymenovat polozky a popisat.
Takze ako hovorim, brutus. Ked clovek v 3. priklade nevedel upravit gramatiku, tak nespravil ani syntakticky analyzator.
Ale nebolo az tak vela ludi, co neurobilo... Mozno max.10
tak po prvom pohlade mi to pripada este horsie ako hudakoviny
pokial viem, dnesny termin uz bol s 50 ludmi. Dalo sa opisovat? radit? kto bol na dozore? ako to prebieha?
podla mna nespravilo viac ako 10ludi...v prvej skupime (prvych 30 ludi)sa opisovat nedalo vobec, jednak sa stale pozeral (bol tam len kollar)a aj casu bolo velmi malo, len 30min.
Spravilo viac tipla by som ze asi 20 az 25 preslo ale netusim ....
len potvrdzujem...predosle terminy boli prechod ruzovou zahradou oproti tomu, co bolo dnes...aspon chlovek vedel ake typy uloh si ma prepocitat a pozriet...ale dnes to bol hardcore...prisiel som, videl som, odisiel som.. FX a tom si myslim ze som tym veciam rozumel co predtym boli na terminoch...taze asi tak...a neurobili ovela viac ludi ako len 10.
tha ja som mal lahsiu skupinu a mal som taketo otazky:
1)
A -> c["*"|"-"A] kde c je cele cislo prepiste toto pravidlo aby vyhovovalo EBNF aby bolo mozne vygenerovat: 5*4-1 a 5*4-1*3
potom napisat hodnoty ake vyjdu po uskutocneni tych prikladov
a napisat postfixne formy 5*4-1 a 5*4-1*3
2) definujte do ... while v interpretacnom jazyku, pouzite label, jump nepodmieney skok a falsejump ako podmieneny skok,
3) napisat typovu kontrolu binarneho monoch.....keho(abo daco take) operatora (plus v kruzku) . a este daco napamatam. a napisat aky bude vysledny operand
4) X -> A[B|C] E dane su aj: H(A),H(B),H(C),H(D)
napsiat syntakticky analyzator s pouzitim fcii error, check.
vysvetlic co su tie H a aky maju vyznam
ak som daco zabudol pripiste.
ludia, prosim, vyrieste tie otazky co boli teraz na termine a podelte sa o to.... ja by som to spravil aj sam, ale neviem odkial sa to naucit robit... ved ja mam pocit akoby zabudli ku tomuto urobit cvicenie :D
nechcem byt zly prorok, ale vravel, ze zbytocne si to opisujeme. vraj nabuduce budu ine otazky a este dodal, ze ved je z coho vyberat...
neje to az tak zbytocne lebo to aspon vediet budes aspon to ale pravda je ze ten tahak co je nestaci a ta kniha co mam je pisana pre mna cinsky tak tiez neviem ako sa to naucim
K tomu 3 prikladu
Trebalo napisat typovu kontrolu monomorfnej binarnej operacia e1 (+) e2 [tie zatvorky su akoze kruzok] .
Podotazka k tomu bola > Aky typ je vysledna operacia a aku hodnotu nadobudne pri chybe(aspon sa mi zda tou hodnotou som si nie celkom ista)
No tak napíšem, ako som riešil ja svoje úlohy, ak to niekomu pomôže. Znenie je o stranu späť
1.
A -> B{B}
B -> ab
2. nemám šajn
3. A-> abC | a{B} treba upraviť. Inak nie som si istý tou časťou bC, možno to bolo cB,ale to je vlastne jedno. Aby to bola gramatika pre jazyk LL(1), musím sa vedieť rozhodnúť podľa najlavejšieho terminálneho symbola. Čiže upravená gramatika:
A -> a (bC | {B})
Syntaktický analyzátor pre toto pravidlo:
void A(K)
{
if (symbol == a) getsymbol(); else error(0, b|H(B)|K);
check(1,b|H(B)|K);
switch(symbol)
{
case b: getsymbol(); if (symbol & H(C)) C(K); else error(2,K);
case H(B): while(symbol & H(B))
{
B(H(B)|K);
check(H(B)|K);
}
}
}
4. režimy sémant.analýzy - analýza dekl., analýza mien, analýza tela - popis si nájdite v skriptách
tabuľka sémant. an. - Tabuľka symbolov - popis detto
Ak mám niekde chybu, napíšte, opravím.
tak podme zaradom...
podla mna automat a{-gulicka-b|a}, kt. dostane na vstup b, sa dostane do stavu a{gulicka b | gulicka a} gulicka, len do a{b|gulicka a} sa dostat nemoze, ved mozu nasledovat 4 bcka, al. moze aj skoncit.. mozno najlogickejsie by to bolo este a{b gulicka|a}, no to sa mi zda najmenej... mam v tom gulas...
nerozumiem celkom postfixu a prefixu
ked by som mal 1+2*3\4&5<6 a p(*) < p(\) = p(+) < p(&) = p(<)
prefix:
1+2*3\4&(<56) - tu to beriem tak, ze ked som operator presunul, tak my vznikol akoby vyraz (<56)
1+2*3\(&<456) - tu uz (&<456)... ked sa priority rovnaju, nevadi ze idem aj tak po jednom kroku/operatore? je spravne aj (<&456) ?
(+12)*3\(&<456)
(+12)*(\3&<456)
*+12\3&<456
postifx pre 1+2*3\4&5<6, p(*) < p(\) = p(+) < p(&) = p(<)
1+2*3\4&(56<)
1+2*3\(456<&)
(12+)*3\(456<&)
(12+)*(3456<&\)
12+3456<&\*
potom
A -> c["*"|"-"A] kde c je cele cislo prepiste toto pravidlo aby vyhovovalo EBNF aby bolo mozne vygenerovat: 5*4-1 a 5*4-1*3 potom napisat hodnoty ake vyjdu po uskutocneni tych prikladov a napisat postfixne formy 5*4-1 a 5*4-1*3
je spravne A-> B[("*"|"-") A], B->"0"|...|"9" ? postfix : 54*1-; 54*13*-, alebo 541-*3* alebo 541-3**; prefix: -*541; -*54*13 alebo ...???
Syntaktický analyzátor pre A -> a (bC | {B}):
void A(K)
{
//nema tu byt check(0,a|b|H(B)|K); ? ??????
if (symbol == a) getsymbol(); else error(0, b|H(B)|K);
check(1,b|H(B)|K);
switch(symbol)
{
case b: getsymbol(); if (symbol & H(C)) C(K); else error(2,K);
case H(B): while(symbol & H(B))
{
B(H(B)|K);
check(H(B)|K);
}
}
}
ake ine priklady este mozu byt?
*Ten check tam urcite nema byt, check sa dava(okrem ineho) pred miesta rozhodovania, cize while - zatvorky { } a switch - zatvorky ( | ) . Neviem ci aj pred if - [ ], ale asi nie, ale preco nie, tak to neviem :)
*V tych gulickach mas gulas jak svina :D Najlepsie je nakreslit ten prechodovy diagram, co sa kreslil na prednaske, z toho sa da napisat tvar, ktory by ti IMO skusajuci uznal...
*V tych prefixoch a postfixoch tiez gulas, nechce sa mi to teda lustit, on dava vacsinou jednoduchsie priklady, treba len chapat princip. Najlepsie je ak si spravis syntakticky strom vyrazu a z toho odvodis prefix alebo postfix a na ostatne kasli.
*Najlepsia otazka nakoniec: ake ine priklady mozu byt? Hocijake! V tom je "krasa" tohoto predmetu...
pomohlo by mi viac keby si mi napisal ako to je spravne :P
Tak ten gulickovy priklad podla mna a {b|a gulicka}.
Tie prefixy a postfixy - chyba ti tam asociativnost.
Napisem aspon priblizne co bolo dnes :
1) A-->AXB | BX | prazdny retazec . a) Urobit prechodovy diagram b) spravit to v EBNF(bez prazdneho retazca) a znova diagram
2) trebalo spravit gramatiku pre postupnost prikazov PP oddelenych ciarakou ( asi takto nejako A->P{ , P}) a k nej syntakticky so zotavenim
3) urobit nejaku EBNF pre
a) ifnot E then SF else ST
b) ifnot E then SF
A este urobit ten ifnot pomocou virt instrukcii jump, falsejump
4) nieco s parametrickou polymorfiu f: a x b ->b. A akeho typu vysledok ak f bola nieco take ako f(3,2.5)
1.) A->aBCdeF|aBCd
a) napisat preco dana gramatika nie je gramatikou LL1? nakreslit prechodovy diagram.
b) upravit na gramatiku LL1, nakreslit prechodovy diagram. Ake pravidlo ste pouzili?
2.) bola dana funkcia "function F(x : real) : integer". Tato fcia bola definovana v ramci funkcie H, ktora bola volana vo funkcii G. Funkcia F sa volala s parametrom F(1.5+2).. bolo treba napisat nieco s tabulkou symbolov, stav pred vykonanim tela a po vykonani, stavy premennych, atributov.. spominalo sa tam nieco s klauzulou begin.. (zrejme strana 82 v skriptach)
3.) Navrhnite jednym pravidlom deklaraciu premennych Vars ak definicia zacina klucovym slovom var, potom nasleduje nenulovy pocet nazvov premennych, za nimi dvojbodka a nasledovny typ T.
Text je len priblizny.. vyslo nieco take Vars -> "var" id {"," id} ":" T
Bolo treba k tomu zostrojit procedure Vars(k:symset) - syntakticky analyzator aj so zotavenim.
4.)
a) a, b su typove premenne. Ak a=b x b co bude vyslednym typom? K comu dochadza pri tejto operacii?
b) a, b su typove premenne. Ak a=b co bude vyslednym typom? K comu dochadza pri tejto operacii?
nemoze niekto kto to vie aj poslat odpovede ne tie otazky...a z coho sa vsetci ucite na skusky? niesu nejake vyriesene priklady?
ja som mal tuto skupinu:
QuoteNapisem aspon priblizne co bolo dnes :
1) A-->AXB | BX | prazdny retazec . a) Urobit prechodovy diagram b) spravit to v EBNF(bez prazdneho retazca) a znova diagram
2) trebalo spravit gramatiku pre postupnost prikazov PP oddelenych ciarakou ( asi takto nejako A->P{ , P}) a k nej syntakticky so zotavenim
3) urobit nejaku EBNF pre
a) ifnot E then SF else ST
b) ifnot E then SF
A este urobit ten ifnot pomocou virt instrukcii jump, falsejump
4) nieco s parametrickou polymorfiu f: a x b ->b. A akeho typu vysledok ak f bola nieco take ako f(3,2.5)
na skusku som si precital skripta od Kollara - od zaciatku, cez lex analyzator po synt analyzator (stvrtu cast som nestihol - nechcelo sa mi). neda sa povedat, ze som studiu skript venoval nejak extra vela casu (2x som si to zbezne precital, zdrojaky su tam v pascale takze tie som len tak preletel). pozrel som si otazky, ktore tu boli zverejnene a prestudoval si prezentacie k cviceniam. je pravda, ze som na skusku isiel zmiereny s tym, ze nespravim, no v konecnom dosledku sa mi tie moje priklady nezdali az tak tazke, mal som vyriesene vsetky a hadam som aj pisal k veci ked som mal D - 65 :j_grin: zas az take zlozite to nie je, len si treba uvedomit suvislosti. v podstate toto je SOJ, PT a TI v praxi :j_laugh:
Quote from: styrioci on 14.06.2007, 17:40:31
ja som mal tuto skupinu:
QuoteNapisem aspon priblizne co bolo dnes :
1) A-->AXB | BX | prazdny retazec . a) Urobit prechodovy diagram b) spravit to v EBNF(bez prazdneho retazca) a znova diagram
2) trebalo spravit gramatiku pre postupnost prikazov PP oddelenych ciarakou ( asi takto nejako A->P{ , P}) a k nej syntakticky so zotavenim
3) urobit nejaku EBNF pre
a) ifnot E then SF else ST
b) ifnot E then SF
A este urobit ten ifnot pomocou virt instrukcii jump, falsejump
4) nieco s parametrickou polymorfiu f: a x b ->b. A akeho typu vysledok ak f bola nieco take ako f(3,2.5)
na skusku som si precital skripta od Kollara - od zaciatku, cez lex analyzator po synt analyzator (stvrtu cast som nestihol - nechcelo sa mi). neda sa povedat, ze som studiu skript venoval nejak extra vela casu (2x som si to zbezne precital, zdrojaky su tam v pascale takze tie som len tak preletel). pozrel som si otazky, ktore tu boli zverejnene a prestudoval si prezentacie k cviceniam. je pravda, ze som na skusku isiel zmiereny s tym, ze nespravim, no v konecnom dosledku sa mi tie moje priklady nezdali az tak tazke, mal som vyriesene vsetky a hadam som aj pisal k veci ked som mal D - 65 :j_grin: zas az take zlozite to nie je, len si treba uvedomit suvislosti. v podstate toto je SOJ, PT a TI v praxi :j_laugh:
ako si riesil 3. a 4. priklad?
K tomu prvemu prikladu A->aBCdeF|aBCd malo pravidlo po uprave vyzerat A->aBCd[eF] a prechodovy diagram sa kresli pred upravou ako 2 vetvy jedna pre slovo AbCdeF a druha pre aBCd a po uprave bude jedna vetva, ktora konci v stave aBCd, a z toho ide este dalej rovna ciara kde sa to vetvi eF a zase spat do rovnej ciary?
Som to editol po preskumani dalsich informacii:)
Quote from: eXtremeq on 16.06.2007, 01:41:37
ako si riesil 3. a 4. priklad?
3. nepamatam presne..pravidla som dal nieco v tom zmysle: (mozno kktina, ale uz ma to netrapi)
a) A -> E[Sf | St]
b) A -> E[Sf]
potom som tam nakreslis vyvojak v zmysle vetvenia: vyhodnoti sa podmienka ak ano tak sa vykona St ak nie vykona sa Sf a pokracuje sa dalej a v tomto duchu som napisal aj tie virtualne instrukcie. nieco v tomto zmysle:
vyhodnotenie vyrazu E;
falsejump (label1);
jump(label2);
label1: Sf; jump(label3);
label2: St; jump(label3);
label3: pokracovanie programu...
nepamatam sa presne, ale nieco take som tam vypotil (mozno to bolo aj dobre :lol9: )
4. trebalo napisat pre volanie zadanej funkcie - f: a x b ->b , ze akeho typu su skutocne parametre a akeho typu je vysledok ak bola volana ako f(3,2.5).
tak som napisal, ze parameter a je typu int, parameter b je typu float a vysledna hodnota funkcie je typu float. takisto si niesom isty spravnostou. toto ma v prvom momente napadlo.
ako som povedal, skusku som spravil (aj ked som to velmi necakal) a aj ked papier znesie vela tak hadam tam bolo aj cosi k veci :lol9:
3.) Navrhnite jednym pravidlom deklaraciu premennych Vars ak definicia zacina klucovym slovom var, potom nasleduje nenulovy pocet nazvov premennych, za nimi dvojbodka a nasledovny typ T.
Text je len priblizny.. vyslo nieco take Vars -> "var" id {"," id} ":" T
Bolo treba k tomu zostrojit procedure Vars(k:symset) - syntakticky analyzator aj so zotavenim.
Ako k tomu zostrojis syntakticky??? ja som z toho jelen kua "var",",",":" budes brat ako neterminaly a id a T ako terminaly? var mozem nacitat do symbolu naraz? if symbol= var then.....?
Quote from: UnderTaker on 16.06.2007, 21:23:50
K tomu prvemu prikladu A->aBCdeF|aBCd malo pravidlo po uprave vyzerat A->aBCd[eF] a prechodovy diagram sa kresli pred upravou ako 2 vetvy jedna pre slovo AbCdeF a druha pre aBCd a po uprave bude jedna vetva, ktora konci v stave aBCd, a z toho ide este dalej rovna ciara kde sa to vetvi eF a zase spat do rovnej ciary?
Som to editol po preskumani dalsich informacii:)
toz si si isty ze to mas spravne? :)
keby som vedel ci to je spravne tak sa na to asi nepytam :P ale chcem sa opytat ci si treba pozriet aj tu 2 cast knihy Generovanie jazykovych procesorov od Havlice ci nie? ako pozeram tak tam su same blbosti
Quote from: UnderTaker on 17.06.2007, 16:02:01
keby som vedel ci to je spravne tak sa na to asi nepytam :P ale chcem sa opytat ci si treba pozriet aj tu 2 cast knihy Generovanie jazykovych procesorov od Havlice ci nie? ako pozeram tak tam su same blbosti
toto uz je mimo zaberu prekladacov, nie? nebudeme to potrebovat v stvrtaku na havliceho predmet "konstrukcie prekladacov"? alebo tak nejak sa ten predmet vola
som sa pytal kamosov a ze to uz je konstrukcia prekladacov tak ako ty hovoris:)
Quote from: abcddd on 13.06.2007, 05:57:24
1.) A->aBCdeF|aBCd
a) napisat preco dana gramatika nie je gramatikou LL1? nakreslit prechodovy diagram.
b) upravit na gramatiku LL1, nakreslit prechodovy diagram. Ake pravidlo ste pouzili?
ako treba nakreslit prechodovy diagram k tomu?
tak prekladace sa cim dalej tym viac menia, ale dnes sa mi to podarilo E 55 :ropebanana: :metal:.
Takze teraz ku skuske, Kollar vobec neprisiel, prisiel nejaky typek ale mal hrozne trapne kecy ohladne toho, ze nech radsej odovzdame a nech si zapiseme predmet na dalsi rok atd. Ku otazkam vacsina otazok bola len teoria, jedna skupina nemala ani syntakticky.
Ja som bol v prvej polke kde asi tretina nespravila, cize ten novy typek tiez barz dobre neopravuje.
Dnes novy typek co bol sa vola Poruban. Podla toho co som si vsimol to vyzeralo tak, ze opravoval podla sablonky, ktoru mu (zrejme) pripravil Kollar. Otazky:
1. Napisat gramatiku jazyka EBNF pomocou EBNF.
Upravit dva vyrazy z EBNF na BNF. Islo o to ze pri jednom [daco_neviem_co] trebalo len zrobit ze je to to iste bez zatvoriek alebo prazdny retazec (epsilon),
a druhom ktory bol zas {daco} to prepisat tak aby zmizli tie {}, cize nejaku rekurziu donuka dat.
2. napisat gramatiku EBNF ceckovskeho cyklu do....while, ked B je telo a E je podmienka
napisat virtualne instrukcie k tomu cyklu
3. Su operacie +,-,* vsetky maju rovnaku prioritu a asociuju sprava a operacia = neasociuje a ma vacsiu prioritu ako ostatne tri. Identifikatory su jedno male pismeno. Treba napisat gramatiku. Potom k vyrazu a+b-c=d*e namalovat syntakticky a derivacny strom a napisat prefixny tvar.
Co reprezentuje syntakticky strom?
-----||------------- derivacny strom?
Ktore z tychto troch foriem su ekvivalentne?
4. Ako su reprezentovane typove vyrazy?
Ako je definovana unifikacia a substitucia v parametricky polymorfnom systeme?
nahoodu. Poruban je uplne v pohode chlapik. opravoval velmi tolerantne si myslim. kto uz neurobil dnes tak potom neviem
Druha skupina bola:
1. Syntakticky so zotavenim pre jazyk LL1: A---->{Db l Ca} kde H(D) a H(C) su zname, "asi" tam este boli este zadane sy ako symbol, getsym ako getsymbol a s K este nieco
urcit vstah medzi FIRST(D) a H(D) - to iste aj pre FIRST(C) a H(C)
2. Nieco s volacim aktivacnym po vykonani begin<2,4> neviem co presne a znazornit aky to bude mat na volaco vplyv (Toto som ani neprecital poriadne ked som videl to begin<2,4> takze take je aj moje podanie zadania)
3. Pre gramatiku : retazec sa zacina "a" a konci "c" medzi nimi je aspon jedno "b"
trebalo urcit prechodovy diagram, urobit konecnostavovy deterministicky automat a aj pre ten urobit prechodovy diagram
4. Aka je arita(pocet argumentov) instrukcii jump<L> a falsejump<L>, aky je ich typ a navratova hodnota a kolko miesta zaberaju v zasobniku.
Moja pamet je nanic takze nic blizsie uz neviem ak si spomenie niekto na dake dalsie veci pripiste
Co sa tyka opisovania bola prilezitost(prvej skupine opravoval kym sme pisali a nedaval bars pozor) ale nebolo z coho lebo zakazdym su ine priklady.
Opakuje sa len syntakticky so zotavenim
Priklady boli take ze trebalo porozmyslat a podumat suvislosti z inych predmetov(TI, PT)