• 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

« predchdzajce - alie »

elros

Quote from: antil kiprest on  17.01.2011, 01:41:46
Quote from: antil kiprest 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?


TRUE / FALSE ?

TRUE

Mike

Quote from: Mike 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 ?
neviem co s tymto

antil kiprest

Quote from: Mike on  17.01.2011, 01:51:57
Quote from: Mike 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 ?
neviem co s tymto

toto netusim ani v naznakoch
bravčové krídielka a náhradu sóje poprosím!!

OsamelyVlk

Quote from: antil kiprest on  17.01.2011, 01:55:15
Quote from: Mike on  17.01.2011, 01:51:57
Quote from: Mike 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 ?
neviem co s tymto

toto netusim ani v naznakoch

netusim.

Mike

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

?                    idem kreslit


aka bude priaorita ?

a+ ( b - ( ( c = d ) * e ) )   ?

OsamelyVlk

dalej. nieco s parametrickou polymorf. f: b-> axb . akeho typu bude vysledok ak f (3, 2.5) ?
(tu tiez nevem ci naraza na nieco ako record... alebo len ze vysledok bude float)...

dalej.
do EBNF :mp
a) ifnot E then SF else ST (plus pre toto aj virtualne instruktcie jump , falsejump)
b)ifnot E then SF
__riesene
a) A->E[SF|ST]
 vyhodnotenie Ecka;
 falsejump (label 1);
 jump (label2);
 label1: SF , jump (label3);
 label2: ST , jump(label3);
 label3: pokracovanie programu;

b)A->E[SF]


dalej: gramatika vyrazu pre postupnost prikazov PP oddelenych ciarkou + syntakt. so zotavenim

Mike

Quote from: OsamelyVlk on  17.01.2011, 02:05:04
dalej: gramatika vyrazu pre postupnost prikazov PP oddelenych ciarkou + syntakt. so zotavenim

A->P { , P }

antil kiprest

#707
Quote from: Mike on  17.01.2011, 02:04:10
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.

?                    idem kreslit


aka bude priaorita ?

a+ ( b - ( ( c = d ) * e ) )   ?

jou priorita myslim ze sedi

gramatika :

expr -> eq [("+" | "-" | "*" ) expr]
eq -> id ["=" id]
id -> ("a" | "b" | ... | "z" )


synt strom:

          +
      /       \
    a         -
             /   \
            b      *
                  /   \
                =      e
              /  \
             c    d


prefix :   +a-b*=cde

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

Mike

#708
Quote from: antil kiprest on  17.01.2011, 02:15:34
Quote from: Mike on  17.01.2011, 02:04:10
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.

priorita a+ ( b - ( ( c = d ) * e ) )  

gramatika :

expr -> eq [("+" | "-" | "*" ) expr]
eq -> id ["=" id]
id -> ("a" | "b" | ... | "z" )


prefix :   +a-b*=cde

postfix:  a  b    c = d   e * -  +

OsamelyVlk

Aka je arita(pocet argumentov) instrukcii jump<L> a falsejump<L>, aky je ich typ a navratova hodnota a kolko miesta zaberaju v zasobniku.

k tomuto som nasel v prednaskach toto :

jump<L>- C[[jump<L>]] = JMP L
falsejump<L> - C[[falsejump<L>]]= POP
                                                   BZE L

antil kiprest

aky je rozdiel medzi znakom kolmosti a omegou??  ked hovorime o typoch samozrejme
bravčové krídielka a náhradu sóje poprosím!!

OsamelyVlk

#711
Quote from: antil kiprest on  17.01.2011, 02:33:42
aky je rozdiel medzi znakom kolmosti a omegou??  ked hovorime o typoch samozrejme

ze Kolmost je z mnoziny omega ,
kolmost znamena to , ze nastal chybny vypocet (este overim v prednaskam )
EDIT: presne to znie ze omega je nedefinovana hodnota najvseobecnejsieho typu ktoremu patria vsetky hodnoty vratane  nedefinovanej hodnoty "kolmost" . nedefinovana hodnota  je vysledok zlyhania vypoctu...

smelyzajo

vie mi niekto vysvetlit ten syntakticky analizator ale osobne ak je niekto z intraku ??? :beer1:

antil kiprest

Quote from: OsamelyVlk on  17.01.2011, 02:36:02
Quote from: antil kiprest on  17.01.2011, 02:33:42
aky je rozdiel medzi znakom kolmosti a omegou??  ked hovorime o typoch samozrejme

ze Kolmost je z mnoziny omega ,
kolmost znamena to , ze nastal chybny vypocet (este overim v prednaskam )

kolmost je AnyType vsak?? proste vsetky typy.. ale co je omega?
bravčové krídielka a náhradu sóje poprosím!!

OsamelyVlk

Quote from: antil kiprest on  17.01.2011, 02:38:52
Quote from: OsamelyVlk on  17.01.2011, 02:36:02
Quote from: antil kiprest on  17.01.2011, 02:33:42
aky je rozdiel medzi znakom kolmosti a omegou??  ked hovorime o typoch samozrejme

ze Kolmost je z mnoziny omega ,
kolmost znamena to , ze nastal chybny vypocet (este overim v prednaskam )

kolmost je AnyType vsak?? proste vsetky typy.. ale co je omega?
naopak , omega je anytype a kolmost je prvok z mnoziny anytype ktory ako definuje zlyhanie vypoctu

antil kiprest

Quote from: OsamelyVlk on  17.01.2011, 02:41:52
Quote from: antil kiprest on  17.01.2011, 02:38:52
Quote from: OsamelyVlk on  17.01.2011, 02:36:02
Quote from: antil kiprest on  17.01.2011, 02:33:42
aky je rozdiel medzi znakom kolmosti a omegou??  ked hovorime o typoch samozrejme

ze Kolmost je z mnoziny omega ,
kolmost znamena to , ze nastal chybny vypocet (este overim v prednaskam )

kolmost je AnyType vsak?? proste vsetky typy.. ale co je omega?
naopak , omega je anytype a kolmost je prvok z mnoziny anytype ktory ako definuje zlyhanie vypoctu

aha, okej, zle som cital.. dik:)
bravčové krídielka a náhradu sóje poprosím!!

antil kiprest

viete niekto co je ten derivacny strom??  ak hej, ukazka k prikladu vyssie by bola fajn
bravčové krídielka a náhradu sóje poprosím!!

OsamelyVlk

#717
Ako su reprezentovane typove vyrazy?
odpoved: typove konstanty . typove premenne a typove operacie;

Ako je definovana unifikacia a substitucia v parametricky polymorfnom systeme?

ak A a B su typove premenne, T1 = B1 T2 = B2, potom T1xT2 = T3 a vsetky vyskyty B1 a B2 sa nahradia A, lebo A ma typ TA - tomu sa hovori unifikacia
ak A je typova premenna, T1 = A, T2 = TE (typovy vyraz) kde TE nie je premenna, kazdy vyskyt A sa nahradi TE - substitucia
a to B, ak  T1 = A, T2 = B, potom T1 = B, lebo doslo k substitucii A = B

correct ??

typove vyrazy to je z prednasok  a to druhe paste z podobneho problemu

Mike

Quote from: antil kiprest on  17.01.2011, 02:47:38
viete niekto co je ten derivacny strom??  ak hej, ukazka k prikladu vyssie by bola fajn

nasiel som daco take, ale neviem ako to funguje

antil kiprest

Quote from: Mike on  17.01.2011, 02:57:42
Quote from: antil kiprest on  17.01.2011, 02:47:38
viete niekto co je ten derivacny strom??  ak hej, ukazka k prikladu vyssie by bola fajn

nasiel som daco take, ale neviem ako to funguje

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

Mike

#720
nasiel som peknu prezentaciu, ale neviem to aplikovat na ten konkretny priklad

www.cs.vsb.cz/kot/soubory_animaci/a-deriv_strom.pdf

to je vlastne reprezentacia syntaktickej analyzy zhora nadol, obrazok na strane 87 v skriptach

OsamelyVlk

#721
Quote from: Mike on  17.01.2011, 03:09:11
nasiel som peknu prezentaciu, ale neviem to aplikovat na ten konkretny priklad

www.cs.vsb.cz/kot/soubory_animaci/a-deriv_strom.pdf

to je vlastne reprezentacia syntaktickej analyzy zhora nadol, obrazok na strane 85 v skriptach

na konci vetiev alebo listov alebo co to je je vzdy male pismeno alebo ten maly znak. vzdy sa riesi velke  pismeno ,,,
len raz sa presiel cely cyklus ze ABC , potom je to len o vracani a doplnani aby z VELkych pismen ostali na konci len male...

antil kiprest

Quote from: Mike on  17.01.2011, 03:09:11
nasiel som peknu prezentaciu, ale neviem to aplikovat na ten konkretny priklad

www.cs.vsb.cz/kot/soubory_animaci/a-deriv_strom.pdf

to je vlastne reprezentacia syntaktickej analyzy zhora nadol, obrazok na strane 87 v skriptach

uf no nejak mi to nezapina... a skripta nemam.. ak  by ste na to prisli tak sem s tym ;)
bravčové krídielka a náhradu sóje poprosím!!

Mike

#723
treba napisat akym postupom (pouzitim akych pravidiel) sme sa dostali k vyslednemu vyrazu a + b - c = d * e  

EDIT: cize potrebujeme bezkontextovu gramatiku

Mike

1. Syntakticky analyzator so zotavenim pre jazyk LL(1): A->{Db l Ca} kde H(D) a H(C) su zname.
Urcit vstah medzi FIRST(D) a H(D) - to iste aj pre FIRST(C) a H(C)


??