Ka notiek sentencialo formu iegu - PowerPoint PPT Presentation

1 / 50
About This Presentation
Title:

Ka notiek sentencialo formu iegu

Description:

K notiek sentenci lo formu ieg ana, ja izmanto atvasin anu no lab s puses P rb d t/sav rst veida analiz t ji Aug upejo anal ze (BOTTOM-UP ... – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 51
Provided by: Martins112
Category:

less

Transcript and Presenter's Notes

Title: Ka notiek sentencialo formu iegu


1
Ka notiek sentencialo formu iegušana,ja izmanto
atvasinašanu no labas puses
2
Virkne Atvasinajums, sakot no labas puses
3
Gribetos šo celu veikt preteja virziena
4
Ka uzminet, kura bridi kuru produkciju
lietot?Varianti var but vairaki
5
Parbidit/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

6
Steks 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
7
Augš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

14
Piemers
Gramatika valodai, kas satur palindromus
15
Piemers
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
17
LR(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.
18
LR(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?.
19
Raksti
  • 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.

20
Rakstu 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.

21
Rakstu 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.
22
Operacija 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)
23
Stavoklu 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).

24
Piemers

25
1

26
2
1

P
27
P
2
1
3
a
28
P
2
1
3
a
b
4
29
P
2
1
3
a
b
c
5
4
c
30
P
P
2
6
1
3
a
b
c
5
4
c
31
P
P
2
6
1
3
a
a
7
b
c
5
4
c
32
P
P
2
6
1
3
a
a
7
b
c
5
8
4
c
P
33
P
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?

36
LR(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)
37
Analizes 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)
38
Darbibas ar analizes tabulu
  • Ja actionsm,ai shift s, tad no
    konfiguracijas (s0X1s1X2... Xmsm ,
    aiai1...an)pariet konfiguracija(s0X1s1X2...
    Xmsmais , ai1...an)

39
Darbibas ar analizes tabulu (turp.)
  1. 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.

40
Darbibas ar analizes tabulu (turp.)
  1. Ja actionsm,ai accept, tad ievada virkne
    tiek atzita par derigu un analize beidzas
  2. Ja actionsm,ai error, tad ievada virkne
    netiek atzita par derigu un analize beidzas (var
    iedarbinat specialu kludu apstrades mehanismu)

41
Steks 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
42
Steks Ievads Darbiba
1 abca shift 3
1a3 bca shift 4
1a3b4 ca shift 5
1a3b4c5 a reduce 4
1a3b4P8 a error
43
Steks Ievads Darbiba
1 abba shift 3
1a3 bba shift 4
1a3b4 ba shift 4
1a3b4b4 a shift 3
1a3b4b4a3 error
44
Piemers
45
Piemers
(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.
46
Piemers
47
Piemers
48
(No Transcript)
49
LR(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!
50
Konflikti
  • shift-reduce konflikts
  • reduce-reduce konflikts
  • Saka, ka gramatika ir LR(0) gramatika, ja tabula
    nesatur šadus konfliktus.
Write a Comment
User Comments (0)
About PowerShow.com