Lexikálna analýza Flashcards

1
Q

Aká je primárna úloha lexikálnej analýzy?

A

Čítanie znakov zo vstupu a ich preklad na postupnost’ tokenov, ktorú d’alej využije syntaktická analýza

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Aké sú ďalšie úlohy lexikálnej analýzy?

A
  • Uloženie informácie o tokenoch do tabul’ky symbolov
  • Odstránenie komentárov a bieleho priestoru (medzery,
    tabulátory, znaky nového riadku)
  • Zosúladit’ chybové hlásenia so zdrojovým programom
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Čo je token?

A

množina ret’azcov so spoločným významom
Výstup lexikálnej analýzy a vstup syntaktickej analýzy
napr. identifikátor, konštanta, operátor a pod.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Čo je pattern?

A

Pravidlo popisujúce množinu ret’azcov pre daný token

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Čo je lexéma?

A

Postupnost’ znakov v zdrojovom programe, ktorá
zodpovedá patternu pre nejaký token

Lex. analyzátor rozpoznáva lexémy v zdrojovom programe a prekladá ich na príslušné tokeny.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Ako sa vie lexikálny analyzátor zotaviť z chyby? (ak postupnost’ čítaných znakov zo vstupu nezodpovedá žiadnemu patternu)

A

1 Vymazanie znakov zo vstupu, kým sa nenájde ret’azec
zodpovedajúci niektorému patternu
2 Vloženie znakov navyše
3 Výmena nesprávneho znaku za správny
4 Výmena susedných znakov

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Ako funguje vstup pre LA?

A

Používa sa buffer
Treba čítať znak po znaku ale treba niekedy aj lookahead
1 Naraz je načítaný jeden blok znakov
2 Pozícia práve spracovávaného znaku je v bufferi označená
smerníkom
3 čítanie a spätné vrátenie znakov na vstup je riešené presunutím smerníka v bufferi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Opíš dvojbufferovú schému

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Opíš algoritmus 2bufferovej schémy

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Opíš algoritmus 2bufferovej schémy s použitím zarážok

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Ako spolupracuje LA a SA?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Opíš regulárne výrazy, ich formu

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Aké sú nejaké “zločiny” LA?

A

Odsadenie ako syntaktická konštrukcia (Python, Flex)
Povolené medzery v mene identifikátora, napr. Fortran
Kl’účové slová nie sú rezervované a môžu byt’ použité ako
identifikátory

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Opíš atribúty tokenov

A

Lex. analyzátor vracia v skutoňnosti dvojicu (token, atribút)
Atribút je upresnenie konkrétnej inštancie tokenu, pre synt. analýzu zväčša nemá význam ale využíva sa v d’al’ších fázach pri preklade (napr. smerník do tabuľky symbolov, hodnota, …)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Ako funguje tabuľka symbolov pri rozpoznaní tokenu?

A

Pri rozpoznaní identifkátora sa najskôr skontroluje, či už je v tabul’ke symbolov
* Ak áno: vráti sa smerník na príslušný záznam
* Ak nie: pridá sa nový záznam

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Ako vieme implementovať tabuľku symbolov?

A
17
Q

Aké sú kroky pri vytváraní lex. analyzátora?

A

Najskôr definuj množinu tokenov
Vytvor patterny pre jednotlivé tokeny
Implementuj rozpoznávanie patternov

18
Q

Aké poznáme metódy tvorby lexikárneho analyzátora?

A

Prechodové diagramy
Thomsonova metóda (cez regulárne výrazy, jednoduché ale menej efektívne)
Naprogramovanie v programovacom jazyku (is_digit() a podobne využité)
Zahrnutie do syntaktickej analýzy

19
Q

Čo sú konečné automaty?

A
20
Q

Čo sú prechodové diagramy?

A
21
Q

Opíš implementáciu prechodových diagramov

A
22
Q

Ako vieme zostrojiť NKA pre L1|L2?

A

Máme 2 automaty, z prvého stavu kroky na epsilon do oboch, následne z ich akceptačných na epsilon do akceptačného. A podobne ostatné

23
Q

Aké poznáme 2 prístupy k Thomsonovej metóde?

A

r - reg. výraz, x - reťazec
1 Priama simulácia zostrojeného NKA
Priestor:O(|r|), čas:O(|r|×|x|)
2. Zostrojenie ekvivalentného DKA štandardnou konštrukciou, simulácia DKA
Priestor: O(2^|r|), čas: O(|x|)

24
Q

Opíš algoritmus Aho-Corasick

A