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

PPJ materialy

Started by Payne, 07.03.2009, 22:44:09

« predchdzajce - alie »

Frodooo

v 9. prednaske to mate lenze ak tomu nerozumie clovek tak to moze mat aj vypracovane ale vela to nepomoze....

puq

ta ked tomu nerozumeju tak im to je tak ci tak na rit...lebo zmeni kollar trochu zadanie ulohy...ina bude gramatika alebo hocico..a su v riti...cize tak ci tak tomu treba pochopit

ppt

pri otazke 1d - neviete co znamenaju tie bodky, ktore su kreslene v tych obrazkoch DKA?

puq

bodka znamena kde sa nachadza automat v tom momente...odporucam si napr pozriet este:

http://www.tu-ke.com/forum/3-ro269nik/prekladace-skuska-!!!/

buhehe

#279
ako by vyzerala syn.analyza pri X->A[bC]
void X(K){
   A(b|H(C)|K)   //alebo A(b|K)
   //a teraz takto???
   check(b|H(C))
   if(symbol == b){
      getsymbol()
      C(K)
   }
}

check sa dava aj ked je v pravidle []?

roman5555

nema niekto nejaky sikovny tahacik ????

ppt

Quote from: puq on  29.04.2009, 16:43:01
bodka znamena kde sa nachadza automat v tom momente...odporucam si napr pozriet este:

http://www.tu-ke.com/forum/3-ro269nik/prekladace-skuska-!!!/
super dik, pomohlo :)

roman5555

Na ftp je v rar subore PPJ_09 ten vzorovy test v pdf a potom textovy subor kde su niektore veci vyriesene . Mohol by to niekto este podoplnovat :D:D

libra2

Nevedel by niekto vypracovat 3.otazku, kto vie, ako to ma byt?

kov

#284
roman, nerob hanbu romanom...


1a. Definujte lexikalnu gramatiku identifikatorov zacinajucich bud znakom $ alebo lubovolnym velkym pismenom, s naslednym neprazdnym retazcom obsahujucim na kazdej pozicii bud male pismeno alebo desiatkovu cislicu:

   Priklady spravnych identifikatorov: $a, $1, Za, $8a2acd
   Priklady nespravnych identifikatorov: $, A, 1a, a2bcd, AZ

($|L) (E|D) {E|D}
L -> A..Z
E -> a..z
D -> 0..9

//pre Id -> ${D} | L{E}
// spravne: $0, $, $110, A, Aa
// nespravne: A1


1b. Definujte lexikalnu gramatiku binarnej cislice a na jej zaklade lexikalnu gramatiku binarneho cisla.

B -> 0|1
Bn -> B{B}


1c. Definujte lexikálnu gramatiku binárnej císlice a na jej základe lexikálnu gramatiku
osmickovej císlice. Potom definujte gramatiku císla v osmickovej sústave.

B -> 0|1
Bn -> B{B}

O -> B|2|3|4|5|6|7
On -> O{O}

Guisseppe

Quote from: kov on  29.04.2009, 18:03:11
1b. Definujte lexikalnu gramatiku binarnej cislice a na jej zaklade lexikalnu gramatiku binarneho cisla.

B -> 0|1
Bn -> B{B}
Na prednaske pisal Kollar na tabulu taketo nieco: Bn -> B{B}#B
Neviete, co znamena to "#B"? Pretoze bez toho mi to je logicke, ale s tym #B ani nie.

kov

#286
2a. Definujte gramatiku jazyka zatvorkovanych vyrazov v tvare EBNF. Gramatika ma generovat napriklad tieto vyrazy:
   a, ((a)), (b+C)*d/b, e+x*y-c
   s operandami v tvare jednopismenovych identifikatorov a operatormi +,-,*, a /,
   takymi, ze operatory + a - su asociativne sprava, operator * je neasociativny a operator / je asociativny zlava, pricom ich priorita p je takato:

   p(+) = p(-) > p(*) > p(/)


riesenie:     E -> A {"/" A}
      A -> B ["*" B]
      B -> T [("+"|"-") B]
      T -> Id | "(" E ")"


2b. Za predpokladu, ze Vami definovana gramatika bude pouzita pre syntaxou riadeny preklad vyrazov do postfixneho tvaru, urcte pre zdrojovy vyraz a + b + c * d / e + f jeho postfixny tvar na vystupe.

Postfix [[a + b + c * d / e + f]]
= abc++d*ef+/

Prefix: /*+a+bcd+ef

kov

#287
Quote from: Guisseppe on  29.04.2009, 18:11:25
Na prednaske pisal Kollar na tabulu taketo nieco: Bn -> B{B}#B
Neviete, co znamena to "#B"? Pretoze bez toho mi to je logicke, ale s tym #B ani nie.

mna napada len zretazenie... Kollar tiez napisal na tabulu nieco take ze

On -> O{O} #O
Dn -> D{D} #D

pricom skonstatoval ze pri decimalnych cislach to "#D" nema byt ale pri osmickovych ma... mne to osobne tiez dava viac zmysel bez toho #

kov

#288
4a. Nech gramatika prikazu while je definovana pravidlom (zatvorky v uvodzovkach su terminalne symboly):

   While_Stat -> while "(" Expr ")" "{" Stat_Seq "}"

Za predpokladu, vyznam tohto prikazu je rovnaky ako v jazyku C, definujete pren schemu prekladu do postfixneho jazyka, pricom pouzite virtualne instrukcie jump a falsejump

   T [[ while "(" Expr ")" "{" Stat_Seq "}" ]]
   = label<L1> E[[Expr]] falsejump<L2> S[[Stat_Seq]] jump<L1> label<L2>

   //Expr - hodnota v zasobniku (0 or 1, false or true)


4b. Nech gramatika prikazu if je definovana pravidlom (zatvorky v uvodzovkach su terminalne symboly):

   If_Stat -> if "(" Expr ")" "{" Stat_Seq "}" [ else "{"Stat_Seq "}"]

Definujte schemu prekladu tohto prikazu do postfixneho jazyka, pricom pouzite virtualne instrukcie jump a falsejump

   T [[ if "(" Expr ")" "{" Stat_Seq "}" ]]
   = E[[Expr]] falsejump<L1> S[[Stat_Seq]] label<L1>

   T [[ if "(" Expr ")" "{" Stat_Seq "}" else "{"Stat_Seq "}"  ]]
   = E[[Expr]] falsejump<L1> S[[Stat_Seq]] jump<L2> label<L1> S[[Stat_Seq]] label<L2>


4c. Nech gramatika prikazu do...while je definovana pravidlom (zatvorky v uvodzovkach su terminalne symboly):

   Do_While_Stat -> do "{" Stat_Seq "}" while "(" Expr ")"

Za predpokladu, vyznam tohto prikazu je rovnaky ako v jazyku C, definujte pren schemu prekladu do postfixneho jazyka, pricom pouzite virtualne instrukcie jump a falsejump

   T [[ do "{" Stat_Seq "}" while "(" Expr ")"  ]]
   = label<L1> S[[Stat_Seq]] E[[Expr]] falsejump<L2> jump<L1> label<L2>

morrfun23

a ten treti priklad nema nikto spraveny?

Frodooo

ako funguje ten 4 typ prikladov stale som na to neprisiel...:(

buhehe

#291
3. A -> B { d E } ( c | F )

void A(K){
   B(d|H(E)|c|H(F)|K)
   check(d|H(E)|c|H(F)|K)
   while (symobl in d|H(E) ){
      if(symbol==d) getsymbol()
      else error(d|H(E)|c|H(F)|K)
      E(d|H(E)|c|H(F)|K)
      check(d|H(E)|c|H(F)|K)
   }
   check(c|H(F)|K)
   switch(sym)
      case c: getsymbol()
      case H(F) : F(K)
      default : error(c|H(F)|K)
}


tak nejak...

puq

podla mna to neje dobre

buhehe

oprav jak si myslis...

Mao

#294
B(H(B)|d|H(E)|c|H(F)|K)
check(d|H(E)|c|H(F)|K)
while (symobl in d|H(E) )
{
if(symbol==d)
   getsymbol()
else
   error(d|H(E)|c|H(F)|K)
E(d|H(E)|c|H(F)|K)
check(d|H(E)|c|H(F)|K)
}
..
.
zvysok je asi ok

puq

zdielam rovnaky nazor :D dufam ze je spravny ;)

buhehe

#296
opravene thx...som si neuvedomil ze ten cyklus nemusi zbehnut a zabudol som tu podmienku pri getsymbol

morrfun23

a tela funkcii Error a Check maju vyzerat ako?

buhehe

ved to mas vsetko v tom pdf

morrfun23

a na ktorej strane to je len tak mimochodom?