Title: Ka notiek sentencialo formu iegu
1Ka notiek sentencialo formu iegušana,ja izmanto
atvasinašanu no labas puses
2Virkne Atvasinajums, sakot no labas puses
3Gribetos šo celu veikt preteja virziena
4Ka uzminet, kura bridi kuru produkciju
lietot?Varianti var but vairaki
5Parbidit/saverst veida analizetaji
- Iespejamas darbibas
- parbidit (shift) simbolu no ievada uz steku
- vienkaršot, saverst (reduce) izmantojot
noteiktu produkciju - akceptet ievadu (accept) bridi, kad skaidrs,
ka tas atbilst gramatikai - pazinot par kludu (error) bridi, kad skaidrs,
ka ievads neatbilst gramatikai
6Steks Ievads Izpildama darbiba
aab shift
a ab shift
aa b reduce 3
aaA b reduce 2
A b reduce 5
AB b shift
ABb reduce 4
AB reduce 1
S accept
7Augšupejoša analize (BOTTOM-UP parsing)
8- Sak ar doto terminalu virkni
- Cenšas atrast produkcijas labai pusei atbilstošu
dalu un aizvietot ar produkcijas kreiso pusi - Ja izdodas reducet lidz starta simbolam, tad
virkne atbilst dotajai gramatikai
9 LR(k) analizes algoritmi
Efektiva augšupejošas analizes algoritmu klase
L ievada virkni lasa no kreisas puses uz labo R
buve atvasinajumus no labas puses preteja
seciba k ievada simbolu skaits, kads
nepieciešams, lai noteiktu analizetaja nakošo
darbibu
10 LR(k) analize
Ja pietiek tikai ar steka saturu, tad LR(0) Ja
vajag vienu ievada simbolu, tad LR(1). Ja k nav
noradits, tad uzskata, ka k1. Ja vajag zinat
vairak ka vienu simbolu uz priekšu, tad LR(k)
kgt1 Realas gramatikas parasti ir LR(1)
11 LR analizetaju pievilciba
LR analizetajus var izveidot praktiski visu
programmešanas valodu, kuram iespejams uzrakstit
bezkonteksta gramatiku, analizei. LR analizes
metode ir pazistamaka no parnese-saveršana tipa
metodem, pie kam efektivitate neatpaliek no citam
ši tipa metodem. LR analizetaji var atpazit
sintakses kludas uzreiz ka tas klust iespejams
ievada skenešanas laika.
12 LR analizetaju enas puse
Nopietnam gramatikam LR analizetajus gruti
izveidot ar roku nepieciešami speciali
programmešanas lidzekli.
13 LR analizetaju varianti
SLR Simple LR LALR Look ahead LR kanoniska LR
Stipraka
14Piemers
Gramatika valodai, kas satur palindromus
15Piemers
Nepatik, ka starta simbols var but labaja puse
pievieno jaunu starta simbolu
Meginasim uzminet, ka izskatas virknes abcba
analizes process.
16 abcba ? abPba ? aPa ? P ? S
Steks Ievads Darbiba
abcba shift
a bcba shift
ab cba shift
abc ba reduce
abP ba shift
abPb a reduce
aP a shift
aPa reduce
P reduce
S accept
17LR(0) analizetaji
Konstrue GDA, kas satur visus analizetaja
stavoklus un parejas, atkariba no terminaliem
(action tabula) vai neterminaliem (goto
tabula). Steku izmanto ši GDA darbibas
simulacija.
18LR(0) analizetaji
LR(0) analizetaja stavoklis norada, cik daudz no
dotas produkcijas ievada ir ieskenets. Stavokla
raksts (item) ir kada produkcija ar punktu tas
labaja puse. Piemeram, no produkcijas P?aPa
iespejams iegut sekojošus
rakstusP?.aPa P?a.Pa P?aP.a P?aPa.
No produkcijas P?e iegust tikai vienu rakstu P?.
19Raksti
- Intuitivi punkts norada, cik daudz no attiecigas
produkcijas labas puses esam redzejuši. - Izškirsim vairaku veidu rakstus
- ar punktu kreisaja gala (initial items) P?.aPa
- ar punktu labaja gala (complete items) P?aPa.
20Rakstu slegumi (Closure)
- Pienemsim, ka I ir rakstu kopa.
- Tad
- I?Closure(I)
- ja raksts A??.B? pieder Closure(I) , un ir
produkcija forma B??, tad Closure(I)
japievieno raksts B?.? (ja tas tur vel nebija) un
šadas darbibas jaatkarto tikmer, kamer neko
papildinat vairs nevar.
21Rakstu slegumi
Intuitivi attelo ekvivalentus stavoklus visi
veidi ka to vareja sasniegt. Piemers I
S?.P Closure(I) S?.P, P?.aPa,
P?.bPb, P?.c
Rakstu slegumi veido buvejama GDA stavoklus.
22Operacija GOTO
Ja si ir rakstu kopa un X ir kads gramatikas
simbols (terminalis vai neterminalis),
tad GOTO(si,X)Closure(A??X.?A??.X??si)
23Stavoklu veidošana
- Sak ar Closure(S?.S)(produkciju, kura ir
starta simbols) - Ja no kada stavokla si iespejams atrast tadu
gramatikas simbolu X, ka GOTO(si,X) ir netukša,
tad tas veido jaunu stavokli (jaatceras, ka X var
but gan terminalis, gan neterminalis).
24Piemers
251
262
1
P
27P
2
1
3
a
28P
2
1
3
a
b
4
29P
2
1
3
a
b
c
5
4
c
30P
P
2
6
1
3
a
b
c
5
4
c
31P
P
2
6
1
3
a
a
7
b
c
5
4
c
32P
P
2
6
1
3
a
a
7
b
c
5
8
4
c
P
33P
P
2
6
1
3
a
a
7
b
c
5
8
4
b
c
9
P
34(No Transcript)
35- Ka veidot analizes tabulu?
36LR(0) analizes tabula
action action action action goto
a b c P
1 s3 s4 s5 g2
2 acc
3 s3 s4 s5 g6
4 s3 s4 s5 g8
5 r(4) r(4) r(4) r(4)
6 s7
7 r(2) r(2) r(2) r(2)
8 s9
9 r(3) r(3) r(3) r(3)
37Analizes GDA konfiguraciju katra bridi nosaka
s0X1s1X2... Xmsm aiai1...an
steka saturs (parmainus - stavokli un
gramatikas simboli)
ievada neapskatita dala
Isteniba ta pati labeji sentenciala forma
X1X2... Xmaiai1...an (tikai papildinata ar
stavokliem)
38Darbibas ar analizes tabulu
- Ja actionsm,ai shift s, tad no
konfiguracijas (s0X1s1X2... Xmsm ,
aiai1...an)pariet konfiguracija(s0X1s1X2...
Xmsmais , ai1...an)
39Darbibas ar analizes tabulu (turp.)
- Ja actionsm,ai reduce A?b, tad
konfiguracijai (s0X1s1X2... Xmsm ,
aiai1...an)veic vienkaršošanu un pariet
konfiguracija(s0X1s1X2... Xm-rsm-rAs ,
aiai1...an),kur s gotosm-r,A r ir b
garumsVispirms no steka iznem 2r simbolus,
virsotne nonak sm-r, ieliek steka A un ierakstu
no gotosm-r,A . Ievada tekošais simbols
nemainas.
40Darbibas ar analizes tabulu (turp.)
- Ja actionsm,ai accept, tad ievada virkne
tiek atzita par derigu un analize beidzas - Ja actionsm,ai error, tad ievada virkne
netiek atzita par derigu un analize beidzas (var
iedarbinat specialu kludu apstrades mehanismu)
41Steks Ievads Darbiba
1 abcba shift 3
1a3 bcba shift 4
1a3b4 cba shift 5
1a3b4c5 ba reduce 4
1a3b4P8 ba shift 9
1a3b4P8b9 a reduce 3
1a3P6 a shift 7
1a3P6a7 reduce 2
1P2 accept
42Steks Ievads Darbiba
1 abca shift 3
1a3 bca shift 4
1a3b4 ca shift 5
1a3b4c5 a reduce 4
1a3b4P8 a error
43Steks Ievads Darbiba
1 abba shift 3
1a3 bba shift 4
1a3b4 ba shift 4
1a3b4b4 a shift 3
1a3b4b4a3 error
44Piemers
45Piemers
(1) S?S (2) S?A (3) S?B (4) A?xA (5) A?a (6)
B?xB (7) B?b
S
S?S.
x
A
S?A.
A?x.A A?.xA A?.a B?x.B B?.xB B?.b
S?.S S?.A S?.B A?.xA A?.a B?.xB B?.b
B
S?B.
A
A?xA.
x
B
B?xB.
a
A?a.
a
b
b
B?b.
46Piemers
47Piemers
48(No Transcript)
49LR(0) analizes tabula
action action action action action goto goto
a b ( ) S A
1 s6 r(5) r(5) s3 r(5) r(5) r(5) g2 g4
2 acc
3 s6 r(5) r(5) s3r(5) r(5) r(5) g8 g4
4 s5
5 r(3) r(3) r(3) r(3) r(3)
6 s6 r(5) r(5) r(5) r(5) r(5) g7
7 r(4) r(4) r(4) r(4) r(4)
8 s9
9 r(2) r(2) r(2) r(2) r(2)
Nav viennozimibas!
50Konflikti
- shift-reduce konflikts
- reduce-reduce konflikts
- Saka, ka gramatika ir LR(0) gramatika, ja tabula
nesatur šadus konfliktus.