• Welcome to TUKE FĂ“RUM - FĂłrum pre študentov Technickej Univerzity v Košiciach.
 

Formálne jazyky a preklada?e

Started by mishelka, 16.09.2010, 13:35:34

« predchádzajúce - ďaląie »

Mike

#625
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

riesenie:   G -> ("A"|...|"Z") ("A"|...|"Z"){"0"..."9"}[']

Napíšte, do akej konfigurácie sa dostane automat pri konfigurácii  .a { b | a }, ak na vstup pride znak b

riesenie: a { .b | .a } .  

antil kiprest

Quote from: Mike on  16.01.2011, 20:42:46
Quote from: antil kiprest on  16.01.2011, 20:25:00
A-> X [ a Y ] {Z}

malo by to byt spravne

super:) tak este by som skusil jednu, nech si vyjasnim vsetky moznosti...

A-> B {d E} (c | F)

void A(symbolset K){

B(d | HE | c | HF | K );
check (d | HE | c | HF | K );

while (sym & (d | HE)){
 if(sym == d)
    getsymbol();
 else
    error(d | HE | c | HF | K);
 
 E(d | HE | c | HF | K);
 check(d | HE);

}

check(c | HF | K);

  switch(sym){
    case c : getsymbol();
             break;
    case HF: F(K);
             break;
    default: error(c | HF | K);
 }

}

Mike ? ;)
bravčové krídielka a náhradu sóje poprosím!!

Mike

Quote from: antil kiprest on  16.01.2011, 20:54:48A-> B {d E} (c | F)

void A(symbolset K){

B(d | HE | c | HF | K );
check (d | HE | c | HF | K );

while (sym & (d | HE)){
 if(sym == d)
    getsymbol();
 else
    error(d | HE | c | HF | K);
 
 E(d | HE | c | HF | K);
 check(d | HE);     // tu by malo byt check(d | HE | c | HF | K);

}

check(c | HF | K);

  switch(sym){
    case c : getsymbol();
             break;
    case HF: F(K);
             break;
    default: error(c | HF | K);
 }
}

antil kiprest

link na prednasky najdete v threade fjap  prezentacie   :)
bravčové krídielka a náhradu sóje poprosím!!

ludko

Quote from: Mike on  16.01.2011, 20:48:06

Napíšte, do akej konfigurácie sa dostane automat pri konfigurácii  a { . b | a }, ak na vstup pride znak b

riesenie: a . { b | c } .   ???

Tak ten gulickovy priklad podla mna a {b|a . }

antil kiprest

Quote from: Mike on  16.01.2011, 20:48:06


Napíšte, do akej konfigurácie sa dostane automat pri konfigurácii  a { . b | a }, ak na vstup pride znak b

riesenie: a . { b | c } .   ???

no neviem.. je to zadanie vobec spravne?? ved predsa ked je  '.'   pred 'b' mala by byt aj pred  'a' nie??  a tusim aj na konci

mozno sa mylim ale prvy stav je  . a { b | a }
a potom po zadani 'a' nasleduje  a { .b | .a }.   ci nie?
a nasledne po zadani 'b' by to ostalo tak isto...  opravte ma ak sa mylim


Quote
check(d | HE);     // tu by malo byt check(d | HE | c | HF | K);

isto?? isiel som podla prezentacii a podla nich by v tom checku malo byt to iste co sa kontroluje ako podmienka vo while...  ved nakoniec ked opustime cyklus while mame tam dalsi check ktory poriesi zvysok
bravčové krídielka a náhradu sóje poprosím!!

ondrej0071

Quote from: smelyzajo on  16.01.2011, 06:43:26
bol by som niekomu vazne velmi vdacny ak by mi vysvetlil ten sntakticky analizator na konkretnom pripade aby som to uz konecne vedel spravit dnes som od rana cital skripta velkeho bossa a cekoval jeho prednasky ale mam pocit ze som asi radsej nemusel robit nic pretoze si s toho nic nepametam tak ak by mi to niekto vedel vysvetlit budem vdacny :'( :'( :'( :'( :'( :'(

so syntaktickym analyzatorom som bol na tom rovnako...vela som vsak pochopil z diskusie v archive..myslim ze to bol rok 2009/2010..tam je to pekne vysvetlene a plus,velmi dobra pomocka je prezentacia p. Plocicu
http://hornad.fei.tuke.sk/~plocica/ppj/p5.pdf

antil kiprest

ok idem si kupit boty a mozme pokracovat  ;D
bravčové krídielka a náhradu sóje poprosím!!

ondrej0071

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(-)

                   
        Expr -> Plus  [("+" / " - " )  Plus]
        Plus -> Div  [ " / " Plus ]
        Div -> Mul { " * "Mul }
       Mul ->  "value" | "(" Expr ")"

spravne?

ludko

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


G -> ("A"|...|"Z") ("A"|...|"Z"){"0"..."9"}[']

ludko

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

($ | A | B | ... | Z) ((a | b | ... | z ) | (0 | 1 | ... | 9))
{(a | b | ... | z ) | (0 | 1 | ... | 9)}

ludko

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.

{ab}   ??



ondrej0071

 Expr -> Plus  [("+" / " - " )  Plus]
       Plus -> Div  [ " / " Plus ]
       Div -> Mul { " * "Mul }
      Mul ->  "value" | "(" Expr ")"


4. nakreslite syntakticky strom pre vyraz 10 – 3 * 4 * (3 / 2 – 7), pricom gramatika je z prikladu 3


ondrej0071

Quote from: ludko on  16.01.2011, 21:47:06
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


G -> ("A"|...|"Z") ("A"|...|"Z"){"0"..."9"}[']

suhlasim

ondrej0071

Quote from: ludko on  16.01.2011, 21:52:58
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

($ | A | B | ... | Z) ((a | b | ... | z ) | (0 | 1 | ... | 9))
{(a | b | ... | z ) | (0 | 1 | ... | 9)}

:buttrock:

ondrej0071

Quote from: ludko on  16.01.2011, 22:01:30
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.

{ab}   ??

tiez si myslim,zeby to malo tak byt,ale neviem aky je rozdiel medzi prazdnym a neprazdnym retazcom  >:(  lebo by to mohlo byt aj (ab) {ab}


ondrej0071

Quote from: antil kiprest on  16.01.2011, 20:25:00
okej, takze otazky... mna by zaujmala tato:
5. napiste syntakticky analyzator so zotavenim pre A -> X [aY] {Z}, pouzite procedury check a error

myslim ze chceck a error vieme vsetci takze void A(symbolset K);

nejake navrhy?


A-> X [ a Y ] {Z}

predpokladam ze HX HY a HZ pozname.. takze

A(symbolset K){

X(a | HY | HZ | K);

check(a| HY | HZ | K);

if(sym == a ) {
   getsymbol();
   Y(HZ | K);        // nemal tu byt este else error( a | HY |HZ | K) ???
   check(HY | HZ | K);
}

check(HZ | K);
while (sym & (HZ)){
   Z(K);
   check(HZ | K);
}


}


hm??

ludko

2.Napíšte, do akej konfigurácie sa dostane automat pri konfigurácii
. a {b | c }, ak na vstup pride znak a


a. {b|c}

OsamelyVlk

Quote from: ondrej0071 on  16.01.2011, 22:06:29
Quote from: ludko on  16.01.2011, 22:01:30
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.

{ab}   ??

tiez si myslim,zeby to malo tak byt,ale neviem aky je rozdiel medzi prazdnym a neprazdnym retazcom  >:(  lebo by to mohlo byt aj (ab) {ab}


{ab} == ze vyraz ab moze byt nula az n-krat
ak vsak pred tento vyraz das (ab) , zabezpecis  , ze vyraz ab minimalne 1x bude
cize (ab) {ab} == ze ab je vzdy raz az nekonecno.
tak nejak to vidim ja.

tibike262

#644
Quote from: OsamelyVlk on  16.01.2011, 22:19:13
Quote from: ondrej0071 on  16.01.2011, 22:06:29
Quote from: ludko on  16.01.2011, 22:01:30
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.

{ab}   ??

tiez si myslim,zeby to malo tak byt,ale neviem aky je rozdiel medzi prazdnym a neprazdnym retazcom  >:(  lebo by to mohlo byt aj (ab) {ab}


{ab} == ze vyraz ab moze byt nula az n-krat
ak vsak pred tento vyraz das (ab) , zabezpecis  , ze vyraz ab minimalne 1x bude
cize (ab) {ab} == ze ab je vzdy raz az nekonecno.
tak nejak to vidim ja.
:metal: tak tak

ludko

Quote from: tibike262 on  16.01.2011, 22:22:20
Quote from: OsamelyVlk on  16.01.2011, 22:19:13
Quote from: ondrej0071 on  16.01.2011, 22:06:29
Quote from: ludko on  16.01.2011, 22:01:30
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.

{ab}   ??

tiez si myslim,zeby to malo tak byt,ale neviem aky je rozdiel medzi prazdnym a neprazdnym retazcom  >:(  lebo by to mohlo byt aj (ab) {ab}


{ab} == ze vyraz ab moze byt nula az n-krat
ak vsak pred tento vyraz das (ab) , zabezpecis  , ze vyraz ab minimalne 1x bude
cize (ab) {ab} == ze ab je vzdy raz az nekonecno.
tak nejak to vidim ja.
:metal: tak tak


Prechodovy diagram potom bude len takto vyzerat??


ondrej0071

Quote from: OsamelyVlk on  16.01.2011, 22:19:13
Quote from: ondrej0071 on  16.01.2011, 22:06:29
Quote from: ludko on  16.01.2011, 22:01:30
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.

{ab}   ??

tiez si myslim,zeby to malo tak byt,ale neviem aky je rozdiel medzi prazdnym a neprazdnym retazcom  >:(  lebo by to mohlo byt aj (ab) {ab}


{ab} == ze vyraz ab moze byt nula az n-krat
ak vsak pred tento vyraz das (ab) , zabezpecis  , ze vyraz ab minimalne 1x bude
cize (ab) {ab} == ze ab je vzdy raz az nekonecno.
tak nejak to vidim ja.


cize ab {ab} je spravne,kedze podmienkou je, aby prazdny retazec nepatril do jazyka

OsamelyVlk

Quote from: ludko on  16.01.2011, 22:39:27
Quote from: tibike262 on  16.01.2011, 22:22:20
Quote from: OsamelyVlk on  16.01.2011, 22:19:13
Quote from: ondrej0071 on  16.01.2011, 22:06:29
Quote from: ludko on  16.01.2011, 22:01:30
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.

{ab}   ??

tiez si myslim,zeby to malo tak byt,ale neviem aky je rozdiel medzi prazdnym a neprazdnym retazcom  >:(  lebo by to mohlo byt aj (ab) {ab}


{ab} == ze vyraz ab moze byt nula az n-krat
ak vsak pred tento vyraz das (ab) , zabezpecis  , ze vyraz ab minimalne 1x bude
cize (ab) {ab} == ze ab je vzdy raz az nekonecno.
tak nejak to vidim ja.
:metal: tak tak


Prechodovy diagram potom bude len takto vyzerat??



ano.

ondrej0071

Quote from: ludko on  16.01.2011, 22:39:27
Quote from: tibike262 on  16.01.2011, 22:22:20
Quote from: OsamelyVlk on  16.01.2011, 22:19:13
Quote from: ondrej0071 on  16.01.2011, 22:06:29
Quote from: ludko on  16.01.2011, 22:01:30
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.

{ab}   ??

tiez si myslim,zeby to malo tak byt,ale neviem aky je rozdiel medzi prazdnym a neprazdnym retazcom  >:(  lebo by to mohlo byt aj (ab) {ab}


{ab} == ze vyraz ab moze byt nula az n-krat
ak vsak pred tento vyraz das (ab) , zabezpecis  , ze vyraz ab minimalne 1x bude
cize (ab) {ab} == ze ab je vzdy raz az nekonecno.
tak nejak to vidim ja.
:metal: tak tak


Prechodovy diagram potom bude len takto vyzerat??



suhlasim s diagramom

ondrej0071

Quote from: ludko on  16.01.2011, 22:15:11
2.Napíšte, do akej konfigurácie sa dostane automat pri konfigurácii
. a {b | c }, ak na vstup pride znak a


a. {b|c}

toto nie je spravne...ak pride a,tak to bude vyzerat takto,ak sa nemylim

a { . b| . c} .