Skip to content

Instantly share code, notes, and snippets.

@JanVoracek
Last active December 17, 2015 12:39
Show Gist options
  • Save JanVoracek/5611359 to your computer and use it in GitHub Desktop.
Save JanVoracek/5611359 to your computer and use it in GitHub Desktop.
INKOM test
00:15:30
Kompilátory - zkušební test (3 otázky mají 2 správné odpovědi)
1
Kompilátory
19
Kompilátor se koncepčně skládá z dvou základních etap:
°
1 Analýza a syntéza.
0 Analýza a optimalizace kódu.
0 Lexikální a syntaktická analýza.
0 Scanner a parser.
°
Co je úlohou lexikálního analyzátoru?
°
1 Vyhledávání lexém ve zdrojovém kódu.
0 Odstranění nadbytečných znaků v zdrojovém kódu
0 Test správnosti tokenů zdrojového kódu
1 Přiřazení tokenů lexémám zdrojového kódu
°
Co je úlohou syntaktického analyzátoru?
°
1 Vyšetřování gramatické struktury zdroj. kódu
0 Vyhodnocení výrazů a příkazů zdroj. textu
1 Generování syntaktického stromu z proudu tokenů
0 Vytvoření posloupnosti derivací
°
Tabulka symbolů slouží k uložení informací o
°
1 identifikátorech zdrojového kódu
0 všech lexémách zdrojového kódu
0 proměnných programu
0 následnosti vykonávaných operací
°
Pojem Lexéma znamená:
°
1 posloupnost znaků zdroj. textu s definovaným významem
0 souvislá část vytvářejícího pravidla
0 ekvivalentní název k názvu token
0 levá část vytvářejícího pravidla, které definujeme
°
Formální jazyk nad abecedou A je
°
1 libovolná podmnožina řetězců nad A
0 množina identifikátorů ze symbolů abecedy A
0 slovník libovolných slov zpracovávaných kompilátorem
0 seznam slov a příkazů programovacího jazyka
°
Jediný z těchto výroků je nepravdivý (!). Který to je?
°
1 V kontextové gramatice nesmí být v LHS terminál.
0 V gramatice existují terminály, neterminály a produkce.
0 Vytvářející pravidlo se používá při derivaci.
0 V začátečním neterminále začíná anebo končí analýza.
°
Mějme gramatiku G = ({S,A}, {0,1}, S, P) kde
P: S ::= 0A1
0A ::= 00A1
11A0 ::= 1A0
A ::= e (e je prázdny symbol).
Jakého typu je G ?
°
1 Bez obmezení.
0 Kontextová.
0 Bezkontextová
0 Regulární.
°
Nech G = (N, T, S, P) je gramatika.
Potom pro Jazyk specifikovaný gramatikou G platí, že L(G)
°
1 { w | S=>* w, w je z T* }
0 { w | N=>* w, w je z (T u N)* } u je sjednocení
0 { w | S=>* w, w je z (T u N)* } u je sjednocení
0 { w | S=>* aX, a je z T, X je z N* }
°
Konečný stavový automat je definičně 5-tice (Q,A,q,F,d), kde
°
1 Q=množina stavů, A=vstupní abeceda, d=přechodová funkce
0 A=terminály, d=přechodová funkce, q=začáteční stav
0 Q=neterminály, A=terminály, F=koncové stavy
0 A=tokeny, d=přechodová funkce, Q=množina stavů
°
Nech KA je konečný automat.
Pouze jeden z těchto výroků je pravdivý(!). Který to je?
°
1 KA má právě jeden zač.stav a alespoň jeden koncový stav.
0 Do každého stavu kromě počátečního musí vést hrana.
0 Koncový stav nesmí mít přechod do jiného stavu.
0 Z konečného automatu vytváříme parser.
°
Derivační strom používáme
°
1 v bezkontextové gramatice jako ekvivalent odvození
0 v kontextové gramatice pro zápis derivace
0 V regulární gramatice pro zápis výrazu
0 jako vývojový diagram pro kódování parseru
°
Redukce je
°
1 reverzní operace k derivaci
0 zkrácení řetězce za účelem zrychlení analýzy
0 optimalizování množiny pravidel gramatiky
0 odstranění nedosažitelných neterminálů
°
Větní forma je
°
1 odvozený řetězec terminálů a neterm. v průběhu analýzy
0 šablona pro vytvoření konkrétního řetězce jazyka
0 zápis řetězce ve formátovaném tvaru
0 přijatá část vstupního řetězce
°
Pro bezkontextovou gramatiku platí:
°
1 pravidla umožňují nahradit neterminál nezávisle od okolí
0 v pravých stranách pravidel nesmí sousedit dva neterm.
0 je to formálně jméno gramatiky typu 1
0 při jej návrhu nemusíme dohlížet na pořadí terminálů
°
Jedna odpověď je nepravdivá (která je to?)
pro nejednoznačnou gramatiku platí, že
°
1 má víc, jak jedno pravidlo se stejnou pravou stranou
0 má víc, jak jedno nejlevější odvození
0 má víc, jak jedno najpravější odvození
0 má víc, jak jeden strom odvození
°
Jazyk LL(1) je
°
0 specielní typ regulárního jazyka
0 verze původního jazyka redukovaného o 1 pravidlo
1 na výběr pravidla stačí znalost jednoho vstupního symbolu
0 jazyk s levostrannými derivacemi- verze 1.
°
Konfigurace konečného automatu je
°
1 dvojice (q, w), kde q je stav, w je řetězec
0 definování pravidel přechodů mezi stavy KA
0 sestavení cesty v KA ze zač.stavu po koncový stav
0 úprava konečného automatu do požadovaného stavu
°
které podmínky nevyhovují podmínkám jazyka typu LL(1)?
°
1 Přímá levá rekurze
1 Stejný prefix u stejné levé strany
0 Stejný prefix u sousedních pravidel
0 rekurze typu A->B alfa, B->D beta, D->A gama
°
Kompilátor se koncepčně skládá z dvou základních etap:
✓ Analýza a syntéza.
Co je úlohou lexikálního analyzátoru?
✓ Vyhledávání lexém ve zdrojovém kódu.
✓ Přiřazení tokenů lexémám zdrojového kódu
Co je úlohou syntaktického analyzátoru?
✓ Vyšetřování gramatické struktury zdroj. kódu
✓ Generování syntaktického stromu z proudu tokenů
Tabulka symbolů slouží k uložení informací o
✓ identifikátorech zdrojového kódu
Pojem Lexéma znamená:
✓ posloupnost znaků zdroj. textu s definovaným významem
Formální jazyk nad abecedou A je
✓ libovolná podmnožina řetězců nad A
Jediný z těchto výroků je nepravdivý (!). Který to je?
✓ V kontextové gramatice nesmí být v LHS terminál.
Mějme gramatiku G = ({S,A}, {0,1}, S, P) kde
P: S ::= 0A1
0A ::= 00A1
11A0 ::= 1A0
A ::= e (e je prázdny symbol).
Jakého typu je G ?
✓ Bez obmezení.
Nech G = (N, T, S, P) je gramatika.
Potom pro Jazyk specifikovaný gramatikou G platí, že L(G)
✓ { w | S=>* w, w je z T* }
Konečný stavový automat je definičně 5-tice (Q,A,q,F,d), kde
✓ Q=množina stavů, A=vstupní abeceda, d=přechodová funkce
Nech KA je konečný automat.
Pouze jeden z těchto výroků je pravdivý(!). Který to je?
✓ KA má právě jeden zač.stav a alespoň jeden koncový stav.
Derivační strom používáme
✓ v bezkontextové gramatice jako ekvivalent odvození
Redukce je
✓ reverzní operace k derivaci
Větní forma je
✓ odvozený řetězec terminálů a neterm. v průběhu analýzy
Pro bezkontextovou gramatiku platí:
✓ pravidla umožňují nahradit neterminál nezávisle od okolí
Jedna odpověď je nepravdivá (která je to?)
pro nejednoznačnou gramatiku platí, že
✓ má víc, jak jedno pravidlo se stejnou pravou stranou
Jazyk LL(1) je
✓ na výběr pravidla stačí znalost jednoho vstupního symbolu
Konfigurace konečného automatu je
✓ dvojice (q, w), kde q je stav, w je řetězec
Které podmínky nevyhovují podmínkám jazyka typu LL(1)?
✓ Přímá levá rekurze
✓ Stejný prefix u stejné levé strany
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment