Syntaxou riadený preklad Flashcards
Čo je syntaxou riadený preklad?
prepojenie syntaktickej
analýzy s nasledujúcimi fázami kompilácie
Čo robí syntaxou riadený preklad?
K pravidlám gramatiky sú priradené akcie - Generovanie kódu, ukladanie do tabuľky symbolov, chybové hlásenia, …
Čo je to prekladová schéma?
Podobná syntaxou riadenej definícií, ale viac implementačných detailov (menej abstraktná)
Ako delíme syntaxou riadený preklad podľa prechodov?
Počas parsovania - jeden prechod, bez explicitnej konštrukcie stromu odvodenia
Alebo prechádzaním stromu odvodenia
Čo je Syntaxou riadená definícia (SRD)?
Abstraktná špecifikácia syntaxou riadeného prekladu
Vznikne rozšírením CF gramatiky vstupného jazyka o atribúty a sémantické pravidlá
Čo sú atribúty?
Priradené k symbolom gramatiky: X.x = atribút x symbolu X
Nesú d’al’šiu informáciu o danom symbole - hodnota
Čo sú sémantické pravidlá?
Priradené k pravidlám gramatiky: B.b := f(C1.c1,…,Ck.ck)
Slúžia pre výpočet atribútov symbolov v rámci jedného pravidla gramatiky
Môžu obsahovat’ funkcie s bočným efektom (napr. vypísanie hodnoty na výstup)
Ako nazývame SRD bez side effect funkcií?
atribútové gramatiky
Čo je vrchol v strome odvodenia?
záznam s poľami, teda symbol + atribúty
Aké poznáme typy atribútov?
Syntetizované a dedičné
Aké sú to syntetizované atribúty?
Hodnoty sa vypocítajú podľa hodnôt atribútov detí
často používané
Aké sú to dedičné atribúty?
Hodnoty sa vypočítajú podl’a hodnôt atribútov rodičov a súrodencov
Kedy je atribút závislý?
Čo je anotovaný strom odvodenia?
Strom odvodenia s vypočítanými hodnotami atribútov
Opíš prvý príklad - kalkulačka
pozri slide
Ako nazývame SRD iba so syntetizovanými atribútmi?
S-atribútová definícia a vždy sa dá vyhodnotit’ na strome odvodenia prechodom zdola-nahor
Opíš druhý príklad - deklarácie
pozri slide
Čo je to graf závislostí?
Znázorňuje závislosti medzi atribútami
Orientovaný graf D = (V,E)
* V - množina vrcholov, atribúty symbolov gramatiky
* E -množina hrán, X.x →Y.y ∈E ak Y.y je závislý na X.x
Opíš algoritmus vytvorenia grafu závislostí
Čo je topologické triedenie?
Usporiadanie vrcholov m1,…,mk, také, že platí:
Ak existuje hrana mi → mj potom mi je pred mj .
Opíš syntaktický strom
Aké poznáme funkcie na konštrukciu vrcholov?
1 mknode(op, left , right )
2 mkleaf (id, entry ) ⇒ Vrátia smerník na skonštruovaný vrchol
3 mkleaf (num, val )
Ako reprezentujeme vrcholy pre operátory, konštanty a identifikátory?
Opíš čo sa deje na slide Syntaktický strom pre výrazy - Syntaxou riadená definícia
slide cca pred stredom
Čo sú to S-atribútové definície?
Obsahujú iba syntetizované atribúty
Čo sú to L-atribútové definície?
Obsahujú syntetizované aj dedičné atribúty, ale sú tu určité obmedzenia pre výpočet dedičných atribútov
Zahŕnajú všetky SRD, ktoré sa implementujú bez explicitnej konštrukcie stromu odvodenia
Aký je vzťah S a L atribútových definícií?
S je vlastná podmnožina L
Aké obmedzenia použijeme aj keď sa S aj L dajú implementovať zhora-nadol aj zdola-nahor?
1 Gramatika je LR a SRD je S-atribútová
2 Gramatika je LL a SRD je L-atribútová
Definuj L-atribútovú definíciu aj s príkladom
Ako vyhodnocujeme atribúty v L-atribútovej definícii?
Napr. DFS
Čo sú to prekladové schémy? Aj s príkladom
Aké poznáme obmedzenia pre prekladové schémy?
Opíš prekladovú schému s kalkulačkou niekde na slide v 2/3
Ako implementujeme S-atribútovú definíciu pri LR parsovaní?
Opíš príklad -S-atribútová definícia pri LR parsovaní?
Opíš čo sa deje na odfotenom slide
Ako vieme implementovať L-atribútovú definíciu pri prediktívnom parsovaní?
Opíš čo sa deje na nasledujúcom slide
Opíš ako sa odstraňuje ľavá rekurzia z prekladovej schémy (na slide)
Opíš konštrukciu prediktívneho prekladača