Author Topic: Formálne jazyky a preklada?e  (Read 145222 times)

antil kiprest

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #675 on: 17.01.2011, 00:42:33 »
takze ak napriklad mam   A->aBCdeF|aBCd, vieme ze to nie je gramatika LL(1) lebo v jednom riadku nemoze byt viac krat ten isty terminalny symbol

do LL(1) vyberiem pred zatvorku aBCd a vyjde mi co ...

A-> aBCd ( eF| ? )


A-> aBCd [eF]   dla mna
bravčové krídielka a náhradu sóje poprosím!!

OsamelyVlk

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #676 on: 17.01.2011, 00:43:29 »
asi to bude nejaky LL(k) jazyk,..

a to nemoze byt uz jazyk LL(1) ale s tym ze overuje len nase znalosti na prefixy v LL1 ?
akoze chytaak.

OsamelyVlk

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #677 on: 17.01.2011, 00:44:29 »
takze ak napriklad mam   A->aBCdeF|aBCd, vieme ze to nie je gramatika LL(1) lebo v jednom riadku nemoze byt viac krat ten isty terminalny symbol

do LL(1) vyberiem pred zatvorku aBCd a vyjde mi co ...

A-> aBCd ( eF| ? )


A-> aBCd [eF]   dla mna


Ja by som to tiez tak dal.

elros

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #678 on: 17.01.2011, 00:45:19 »
LL1 to nemoze byt, lebo to 1 znamena, ze musis vediet na zaklade 1 vstupu, ze co mas robit,.. a tam si mal 2 moznosti

a tamto by som tiez dal A-> aBCd [eF]

antil kiprest

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #679 on: 17.01.2011, 00:50:00 »
4)Rezimy semantickej analyzy vymenovat a popisat. Tabulka pre semanticku analyzu - vymenovat polozky a popisat.

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

elros

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #680 on: 17.01.2011, 00:53:07 »

postfix by mal byt :  ab+c+de+*f/

a prefix??



ak je tamto postfix,.. tak prefix by mal byt   /*++abc+def

Mike

  • Hero Member
  • *****
  • Posts: 634
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #681 on: 17.01.2011, 00:58:30 »
4)Rezimy semantickej analyzy vymenovat a popisat. Tabulka pre semanticku analyzu - vymenovat polozky a popisat.

?

asi takto:

Semanticka analyza
- analýza mien – je to klasifikacia identifikatorov
- analýza deklaracii – vytvorenie typoveho prostredia, vypocet velkosti pamati pre alokaciu premennych
- analýza tela – typova kontrola + generovanie virtualneho kodu > vyrtualny kod

Tabuľka sémantickej analyzy
-tabulka D (displej), ak id<ival> je identifikator na vstupe, potom D[ival] ukazuje na meno do zasobnika US. D ma rovnaky rozmer ako TID a musi byt inicializovana
- US – zasobnik mien, reprezentuje aktualne typove prostredie
- TS – typovy zasobnik, sluzi na vytvaranie typov a ich kontrolu
- RS – zasobnik pre aktualne alokovanu velkost pamati pre premenne na jednotlivych urovniach
-NS – pomocny zasobnik pre zapamatanie smernikov do US

Mike

  • Hero Member
  • *****
  • Posts: 634
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #682 on: 17.01.2011, 01:00:05 »
takze ak napriklad mam   A->aBCdeF|aBCd, vieme ze to nie je gramatika LL(1) lebo v jednom riadku nemoze byt viac krat ten isty terminalny symbol

do LL(1) vyberiem pred zatvorku aBCd a vyjde mi co ...

A-> aBCd ( eF| ? )


A-> aBCd [eF]   dla mna

Ake pravidlo ste pouzili?

OsamelyVlk

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #683 on: 17.01.2011, 01:03:45 »
takze ak napriklad mam   A->aBCdeF|aBCd, vieme ze to nie je gramatika LL(1) lebo v jednom riadku nemoze byt viac krat ten isty terminalny symbol

do LL(1) vyberiem pred zatvorku aBCd a vyjde mi co ...

A-> aBCd ( eF| ? )


A-> aBCd [eF]   dla mna

Ake pravidlo ste pouzili?


tam ide o to ze [eF] ==  eF| prazdny symbol

antil kiprest

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #684 on: 17.01.2011, 01:04:07 »
takze ak napriklad mam   A->aBCdeF|aBCd, vieme ze to nie je gramatika LL(1) lebo v jednom riadku nemoze byt viac krat ten isty terminalny symbol

do LL(1) vyberiem pred zatvorku aBCd a vyjde mi co ...

A-> aBCd ( eF| ? )


A-> aBCd [eF]   dla mna

Ake pravidlo ste pouzili?

to s tym vyberanim pred zatvorku bolo myslene len prenesene.. proste sa na to pozri logicky..  mas A -> aBCd | aBCdeF  ... bud nastane prve alebo druhe... spolocne maju 'aBCd'  cize to nastane urcite, takze  A-> aBCd   , a potom uz bud moze alebo nemusi prist aj to 'eF'   cize   [eF]  
bravčové krídielka a náhradu sóje poprosím!!

Mike

  • Hero Member
  • *****
  • Posts: 634
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #685 on: 17.01.2011, 01:10:47 »
to s tym vyberanim pred zatvorku bolo myslene len prenesene.. proste sa na to pozri logicky..  mas A -> aBCd | aBCdeF  ... bud nastane prve alebo druhe... spolocne maju 'aBCd'  cize to nastane urcite, takze  A-> aBCd   , a potom uz bud moze alebo nemusi prist aj to 'eF'   cize   [eF]  
kde je to v skriptach ? officialne sa to vola ako to pravidlo ?

OsamelyVlk

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #686 on: 17.01.2011, 01:13:38 »
to s tym vyberanim pred zatvorku bolo myslene len prenesene.. proste sa na to pozri logicky..  mas A -> aBCd | aBCdeF  ... bud nastane prve alebo druhe... spolocne maju 'aBCd'  cize to nastane urcite, takze  A-> aBCd   , a potom uz bud moze alebo nemusi prist aj to 'eF'   cize   [eF]  
kde je to v skriptach ? officialne sa to vola ako to pravidlo ?

http://hornad.fei.tuke.sk/~plocica/ppj/srp.html

z tej tabulky BNF a EBNF som si to vyvodil.

antil kiprest

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #687 on: 17.01.2011, 01:15:07 »
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
 


to by malo byt A -> c[("*" | "-") A]  vsak??  

a aka je asociativita?? zprava?
bravčové krídielka a náhradu sóje poprosím!!

Mike

  • Hero Member
  • *****
  • Posts: 634
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #688 on: 17.01.2011, 01:17:13 »
takze ak napriklad mam   A->aBCdeF|aBCd, vieme ze to nie je gramatika LL(1) lebo v jednom riadku nemoze byt viac krat ten isty terminalny symbol

do LL(1) vyberiem pred zatvorku aBCd a vyjde mi ...

A-> aBCd [ eF ]


antil kiprest

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #689 on: 17.01.2011, 01:18:20 »
to s tym vyberanim pred zatvorku bolo myslene len prenesene.. proste sa na to pozri logicky..  mas A -> aBCd | aBCdeF  ... bud nastane prve alebo druhe... spolocne maju 'aBCd'  cize to nastane urcite, takze  A-> aBCd   , a potom uz bud moze alebo nemusi prist aj to 'eF'   cize   [eF]  
kde je to v skriptach ? officialne sa to vola ako to pravidlo ?

ale ake pravidlo mas na mysli?
to cele je proste prevod z nejakeho LL(k) (ci co to je)  do LL(1)
bravčové krídielka a náhradu sóje poprosím!!

OsamelyVlk

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #690 on: 17.01.2011, 01:19:24 »
takze ak napriklad mam   A->aBCdeF|aBCd, vieme ze to nie je gramatika LL(1) lebo v jednom riadku nemoze byt viac krat ten isty terminalny symbol

do LL(1) vyberiem pred zatvorku aBCd a vyjde mi ...

A-> aBCd [ eF ]



suhlasim s nakresom... @Mike

Mike

  • Hero Member
  • *****
  • Posts: 634
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #691 on: 17.01.2011, 01:27:24 »
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.


malo byt nejak tak:

Vars -> "var" id { "," id } " : " T                   //id - tak oznacoval Kolar premenne

zostrojit syntakticky analyzator aj so zotavenim pre procedure Vars(k:symset)

ako by ste riesili ?

 

OsamelyVlk

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #692 on: 17.01.2011, 01:28:58 »
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)  

nasel som nieco take: ma to byt ako tabulka
[parametre]
[adresa navratu]
oblast premennych
oblast premennych
oblast premennych
oblast premennych  
zakladna adresa urovne 0 <-X
zakladna adresa urovne 1
zakladna adresa urovne 2 z tade sipka ukazuje na uroven adressa navratu
predosla hodnota x     z tade sipka ukazuje do priestoru nad tymto textom
[                          ] <-SP pri volani begin



      

antil kiprest

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #693 on: 17.01.2011, 01:31:13 »
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.


malo byt nejak tak:

Vars -> "var" id { "," id } " : " T                   //id - tak oznacoval Kolar premenne

zostrojit syntakticky analyzator aj so zotavenim pre procedure Vars(k:symset)

ako by ste riesili ?

 


v tej ulohe nie je nic o ciarkach, takze "," by som vynechal....  na zotavenie idem kuknut
bravčové krídielka a náhradu sóje poprosím!!

Mike

  • Hero Member
  • *****
  • Posts: 634
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #694 on: 17.01.2011, 01:32:04 »
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)  

nasel som nieco take: ma to byt ako tabulka
[parametre]
[adresa navratu]
oblast premennych
oblast premennych
oblast premennych
oblast premennych  
zakladna adresa urovne 0 <-X
zakladna adresa urovne 1
zakladna adresa urovne 2 z tade sipka ukazuje na uroven adressa navratu
predosla hodnota x     z tade sipka ukazuje do priestoru nad tymto textom
[                          ] <-SP pri volani begin



      


OsamelyVlk

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #695 on: 17.01.2011, 01:33:04 »
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.


malo byt nejak tak:

Vars -> "var" id { "," id } " : " T                   //id - tak oznacoval Kolar premenne

zostrojit syntakticky analyzator aj so zotavenim pre procedure Vars(k:symset)

ako by ste riesili ?

 


v tej ulohe nie je nic o ciarkach, takze "," by som vynechal....  na zotavenie idem kuknut

to som sa chcel spytat ze preco ta "," ... keby tam chcu aj ciarku tak vieme ako...

Mike

  • Hero Member
  • *****
  • Posts: 634
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #696 on: 17.01.2011, 01:34:02 »
text otazky nie je presny, v konecnom dosledku mu vyslo tak s tou ciarkou.

elros

  • Newbie
  • *
  • Posts: 41
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #697 on: 17.01.2011, 01:35:13 »
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.


malo byt nejak tak:

Vars -> "var" id { "," id } " : " T                   //id - tak oznacoval Kolar premenne

zostrojit syntakticky analyzator aj so zotavenim pre procedure Vars(k:symset)

ako by ste riesili ?


Vars -> "var" id { "," id } " : " T  

Vars(k:symset){

if (symbol == "var") getsymbol();
else error(H(id) | "," | ":" | H(T) | K);

id("," | H(id) | ":" | H(T) | K));

check("," | H(id) | ":" | H(T) | K);
while(symbol &("," | H(id)){
       if (symbol == ",") getsymbol();
       else error("," | H(id) | ":" | H(T) | K);
       id("," | H(id) | ":" | H(T) | K);
       check("," | H(id) | ":" | H(T) | K);
       }
if (symbol == ":") getsymbol();
else error(H(T) | K);
T(K);
}

Mike

  • Hero Member
  • *****
  • Posts: 634
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #698 on: 17.01.2011, 01:41:29 »
2.) bola dana funkcia "function F(x : real) : integer". Tato funkcia 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)

anyone ?

antil kiprest

  • Full Member
  • ***
  • Posts: 159
    • View Profile
Re: Formálne jazyky a preklada?e
« Reply #699 on: 17.01.2011, 01:41:46 »
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
 


to by malo byt A -> c[("*" | "-") A]  vsak??  

a aka je asociativita?? zprava?

TRUE / FALSE ?
bravčové krídielka a náhradu sóje poprosím!!