• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

PREKLADACE SKUSKA !!!

Started by JBull, 15.05.2007, 20:16:55

« predchdzajce - alie »

Marek8


UnderTaker

akurat ze cislice su od 0 po 9 nie od 1 po 9 :))

bodik

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

tosen

Vie niekto nakodit tie syntakticke co maly na minulom termine?

Marek8

Quote from: tosen on  05.06.2007, 02:33:04
Vie niekto nakodit tie syntakticke co maly na minulom termine?
ano  ;D

bodik

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...

Username


bodik

no jedine zo skript, a zameraj sa najma na priklady a zdrojaky zo zadania. teoria nebola ziadna..

styrioci

a neda sa nic pouzivat na skuske?

Marek8

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

Username

#35
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?

bodik

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.

uchvat

Spravilo viac tipla by som ze asi 20 az 25 preslo ale  netusim .... 

Skywalker

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.
Love Knows No Borders

sandman

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.

Username

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

bodik

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...

uchvat

#42
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)

Marek8

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.

Username

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?

Marek8

#45
*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...

Username

pomohlo by mi viac keby si mi napisal ako to je spravne :P

Marek8

Tak ten gulickovy priklad podla mna a {b|a gulicka}.
Tie prefixy a postfixy - chyba ti tam asociativnost.

sunic

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)

abcddd

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?