Ja tote veci chapem tak:
- vzájomná poloha deklarácií volanej a volajúcej procedúry pri zmene zobrazenia
Netuším
- syntax jazyka LL(1) - ľavá faktorizácia, ...
Jazyk LL(1): L - čítame z ľava, L - najľavejšie odvodenie, 1 - na základe 1 symbolu na vstupe vieme sa rozhodnúť čo ďalej,..
jazyk musí byť faktorizovaný z ľava, nesmie mať rekurziu ľavú
asi to je len teoreticka otazka
- syntax deklarácie premenných, analýza
Var_Decl [[
var Var_List_decl {Var_List_Decl)]] = Var_List_Decl{Var_List_Decl}
Var_List_Decl [[Id_List
colon Type
semicolon]] =
idlist Id_List Type
defvarsId_List[[
id<ival>{
comma id<ival> ]] =
id<ival>{
id<ival>}
- keď A a B sú typ. premenné typu záznam, k čomu dochádza pri porovnaní typov (substitúcia a unifikácia)
ak A a B su typove premenne, T
1 = A T
2 = B, potom T
1 = T
2 = C a vsetky vyskyty A a B sa nahradia C - unifikacia
ak A je typova premenna, T
1 = A, T
2 = TE (typovy vyraz) kde TE nie je premenna, kazdy vyskyt A sa nahradi TE - substitucia
a ten record, ak T
1 = A, T
2 = record, potom T
1 = record, lebo doslo k substitucii A = record
- čo reprezentuje strom odvodenia, syntaktický strom, typové výrazy
Typove vyrazy je vhodne reprezentovat synaktickymi stromami,
strom odvodenia je pri analyze zhora-nadol, postupne jak sa nejaky vyraz odvadza z gramatiky,
- ako bude vyzerať aktivačný záznam s begin<2, 4>
to budu to tie registre (obdlzniky) asi tak nejak:
[parametre]
[adresa navratu]
[oblast premennych]
[oblast premennych]
[oblast premennych]
[oblast premennych] - 4 krat, lebo v = 4
[zakladna adresa urovne 0] <- X (tu ukazuje X|
[zakladna adresa urovne 1]
[zakladna adresa urovne 2] sipka z tade na adresu navratu, uroven 2, lebo l = 2
[predosla hodnota X] sipka z tade ukazuje do priestoru nad obrazok
[ ]<- tu ukazuje SP po volani begin