LR分析器SLR規(guī)范的LR課件_第1頁
LR分析器SLR規(guī)范的LR課件_第2頁
LR分析器SLR規(guī)范的LR課件_第3頁
LR分析器SLR規(guī)范的LR課件_第4頁
LR分析器SLR規(guī)范的LR課件_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

LR分析器(SLR,規(guī)范的LR)4.6-4.7LR分析器(SLR,規(guī)范的LR)4.6-4.7SLRSLR4.5

LR分析器4.5.3構(gòu)造SLR分析表術(shù)語:LR(0)項目(簡稱項目)在右部的某個地方加點的產(chǎn)生式4.5LR分析器4.5.3構(gòu)造SLR分析表4.5

LR分析器4.5.3構(gòu)造SLR分析表術(shù)語:LR(0)項目(簡稱項目)在右部的某個地方加點的產(chǎn)生式加點的目的是用來表示分析過程中的狀態(tài)4.5LR分析器4.5.3構(gòu)造SLR分析表4.5

LR分析器4.5.3構(gòu)造SLR分析表術(shù)語:LR(0)項目(簡稱項目)在右部的某個地方加點的產(chǎn)生式加點的目的是用來表示分析過程中的狀態(tài)exprexpr+term

4.5LR分析器4.5.3構(gòu)造SLR分析表exprex4.5

LR分析器4.5.3構(gòu)造SLR分析表術(shù)語:LR(0)項目(簡稱項目)在右部的某個地方加點的產(chǎn)生式加點的目的是用來表示分析過程中的狀態(tài)exprexpr+term*termfactor

4.5LR分析器4.5.3構(gòu)造SLR分析表exprex4.5

LR分析器4.5.3構(gòu)造SLR分析表術(shù)語:LR(0)項目(簡稱項目)在右部的某個地方加點的產(chǎn)生式加點的目的是用來表示分析過程中的狀態(tài)exprexpr+term*termfactor

4.5LR分析器4.5.3構(gòu)造SLR分析表exprex4.5

LR分析器4.5.3構(gòu)造SLR分析表術(shù)語:LR(0)項目(簡稱項目)在右部的某個地方加點的產(chǎn)生式加點的目的是用來表示分析過程中的狀態(tài)例 A

XYZ對應(yīng)有四個項目

A

·XYZ A

X·YZ A

XY·Z A

XYZ·例 A

只有一個項目和它對應(yīng) A

·

4.5LR分析器4.5.3構(gòu)造SLR分析表4.5

LR分析器構(gòu)造SLR分析表的兩大步驟1、從文法構(gòu)造識別可行前綴的DFA2、從上述DFA構(gòu)造分析表4.5LR分析器構(gòu)造SLR分析表的兩大步驟4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA

1)拓廣文法

E

E+T|T T

T

F|F F

(E)|id

4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFA4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA

1)拓廣文法

E

E

E

E+T|T T

T

F|F F

(E)|id

4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFA4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA 2)構(gòu)造LR(0)項目集規(guī)范族I0:

E

·E4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFA4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA 2)構(gòu)造LR(0)項目集規(guī)范族I0:

E

·E E

·E+T E

·T4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFA4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA 2)構(gòu)造LR(0)項目集規(guī)范族I0:

E

·E E

·E+T E

·T T

·T

F T

·F4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFA4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA 2)構(gòu)造LR(0)項目集規(guī)范族I0:

E

·E E

·E+T E

·T T

·T

F T

·F F

·(E) F

·id4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFA4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA 2)構(gòu)造LR(0)項目集規(guī)范族I0:

E

·E (核心項目) E

·E+T E

·T (非核心項目, T

·T

F 通過對核心項目求閉包

T

·F 而獲得) F

·(E) F

·id4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFA4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA 2)構(gòu)造LR(0)項目集規(guī)范族I0: I1:

E

·E E

E

·E+T E

E·+T

E

·T T

·T

F T

·F F

·(E) F

·id E4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFAE4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA 2)構(gòu)造LR(0)項目集規(guī)范族I0: I1:

E

·E E

E

·E+T E

E·+T

E

·T T

·T

F I1:=goto(I0,E) T

·F F

·(E) F

·id E4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFAE4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA 2)構(gòu)造LR(0)項目集規(guī)范族I0: I1:

E

·E E

E· E

·E+T E

E·+T

E

·T T

·T

F I2: T

·F E

F

·(E) T

F

F

·id ET4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFAET4.5

LR分析器1、從文法構(gòu)造識別可行前綴的DFA

2)構(gòu)造LR(0)項目集規(guī)范族I0: I1:

E

·E E

E

·E+T E

E·+T

E

·T T

·T

F I2: T

·F E

F

·(E) T

F

F

·id I3:

T

ETF4.5LR分析器1、從文法構(gòu)造識別可行前綴的DFAETF4.5

LR分析器I0: I4:

E

·E F

(·E) E

·E+T E

·T T

·T

F T

·F F

·(E) F

·id

(4.5LR分析器I0: I4:(4.5

LR分析器I0: I4:

E

·E F

(·E) E

·E+T E

·E+T E

·T E

·T T

·T

F T

·T

F T

·F T

·F F

·(E) F

·(E) F

·id F

·id

(4.5LR分析器I0: I4:(4.5

LR分析器I0: I4:

E

·E F

(·E) E

·E+T E

·E+T E

·T E

·T T

·T

F T

·T

F T

·F T

·F F

·(E) F

·(E) F

·id F

·id

I5:

F

id·

(id4.5LR分析器I0: I4:(id4.5

LR分析器I1I0EI3I2I4I5TF(id

4.5LR分析器I1I0EI3I2I4I5TF(id4.5

LR分析器I1I0EI3I2I4I5TF(idI1:

E

E· E

E·+T

4.5LR分析器I1I0EI3I2I4I5TF(idI14.5

LR分析器I1I0EI3I2I4I5TF(idI1:

E

E· E

E·+TI6:

E

E+·T

T

·T

F

T

·F

F

·(E)

F

·id+4.5LR分析器I1I0EI3I2I4I5TF(idI14.5

LR分析器I1I0EI3I2I4I5TF(idI1: I2:

E

E

T· E

E·+T T

FI6:

E

E+·T

T

·T

F

T

·F

F

·(E)

F

·id+4.5LR分析器I1I0EI3I2I4I5TF(idI14.5

LR分析器I1I0EI3I2I4I5TF(idI1: I2:

E

E

T· E

E·+T T

FI6: I7:

E

E+·T T

T

·F

T

·T

F

F

·(E)

T

·F F

·id

F

·(E)

F

·id+

4.5LR分析器I1I0EI3I2I4I5TF(idI14.5

LR分析器I1I0EI3I2I4I5TF(idI3: T

無狀態(tài)轉(zhuǎn)換

4.5LR分析器I1I0EI3I2I4I5TF(idI34.5

LR分析器I1I0EI3I2I4I5TF(idI4: F

(·E) E

·E+T E

·TT

·T

F T

·F F

·(E) F

·id

4.5LR分析器I1I0EI3I2I4I5TF(idI44.5

LR分析器I1I0EI3I2I4I5TF(idI4: I8:F

(·E) F

(E·)E

·E+T E

E·+T

E

·TT

·T

F T

·F F

·(E) F

·id

E4.5LR分析器I1I0EI3I2I4I5TF(idI44.5

LR分析器I1I0EI3I2I4I5TF(idI4: I8:F

(·E) F

(E·)E

·E+T E

E·+T

E

·TT

·T

F I2:T

·F E

T·F

·(E) T

FF

·id

TE4.5LR分析器I1I0EI3I2I4I5TF(idI44.5

LR分析器I1I0EI3I2I4I5TF(idI4: I8:F

(·E) F

(E·)E

·E+T E

E·+T

E

·TT

·T

F I2:T

·F E

T·F

·(E) T

FF

·id I3:

T

TFE4.5LR分析器I1I0EI3I2I4I5TF(idI44.5

LR分析器I1I0EI3I2I4I5TF(idI4: I8:F

(·E) F

(E·)E

·E+T E

E·+T

E

·TT

·T

F I2:T

·F E

T·F

·(E) T

FF

·id I3:

T

I4:

F

(·E)

... TF(E4.5LR分析器I1I0EI3I2I4I5TF(idI44.5

LR分析器I1I0EI3I2I4I5TF(idI4: I8:F

(·E) F

(E·)E

·E+T E

E·+T

E

·TT

·T

F I2:T

·F E

T·F

·(E) T

FF

·id I3:

T

I4:

I5:

F

(·E)

F

id·

... TF(idE4.5LR分析器I1I0EI3I2I4I5TF(idI44.5

LR分析器I1I0EI3I2I4I5TF(idI5:F

id·

無狀態(tài)轉(zhuǎn)換4.5LR分析器I1I0EI3I2I4I5TF(idI54.5

LR分析器I1I0+EI6I3I2I4I8I7I5指向I2指向I3T*F(Eidid(FT4.5LR分析器I1I0+EI6I3I2I4I8I7I54.5

LR分析器I1I0+指向I7EI6I9I3I2I4I11I8I7I10*TI5指向I4指向I3指向I5指向I4指向I5指向I6指向I2指向I3F(FTid*id(F(Eid+)id(FTE

E

E+T

E+T

F

E+T

id

E+T

F

id把所有狀態(tài)都作為接受狀態(tài)這是一個DFAE+T

F

的所有前綴都可接受4.5LR分析器I1I0+指向I7EI6I9I3I2I44.5

LR分析器I0:

E

·E E

·E+T E

·T T

·T

F T

·F F

·(E) F

·id也可以構(gòu)造一個識別可行前綴的NFAN4.5LR分析器I0: 也可以構(gòu)造一個識別可行前例子1.給出接受文法S->(L)|aL->L,S|S的活前綴的一個DFA例子1.給出接受文法答案-1答案-1例子2.求接受文法S->Aa|bAc|dc|bdaA->d的活前綴DFA和SLR(1)分析表例子2.求接受文法答案-2(DFA)答案-2(DFA)答案-2(狀態(tài)分析表)答案-2(狀態(tài)分析表)4.5

LR分析器構(gòu)造SLR分析表的兩大步驟1、從文法構(gòu)造識別可行前綴的DFA2、從上述DFA構(gòu)造分析表4.5LR分析器構(gòu)造SLR分析表的兩大步驟4.5

LR分析器例 SLR(1)文法的描述能力有限S

V=ES

EV

EV

idE

VI0:S

·S

S·V=ES·EV

·

EV·idE

·VI2:S

V·=EE

V第一項目使得action[2,=]=s6第二項目使得 action[2,=]為按EV歸約,因為=是E的一個后繼符=是E的一個后繼符:S$

V=E$

E=E$4.5LR分析器例 SLR(1)文法的描述能力有限S4.5

LR分析器例 SLR(1)文法的描述能力有限S

V=ES

EV

EV

idE

VI0:S

·S

S·V=ES·E

V

·

EV·idE

·V

I2:S

V·=EE

V第一項目使得action[2,=]=s6第二項目使得 action[2,=]為按EV歸約,因為=是E的一個后繼符在所關(guān)注場合E的后繼是$:S$

V=E$

E=E$

S$

E

$

V$4.5LR分析器例 SLR(1)文法的描述能力有限S4.5

LR分析器4.5.4

構(gòu)造規(guī)范的LR分析表LR(1)項目:

重新定義項目,讓它帶上搜索符,成為如下形式

[A

·

,a]LR(1)項目[A

·

,a]對可行前綴

有效: 如果存在著推導(dǎo)S

*rm

Aw

rm

w,其中:

=

;a是w的第一個符號,或者w是

且a是$4.5LR分析器4.5.4構(gòu)造規(guī)范的LR分析表4.5

LR分析器例 S

BB B

bB|a 從最右推導(dǎo)S

*rm

bbBba

rm

bbbBba看出:

[B

b·B,b]對可行前綴

=bbb是有效的 對于項目[A

·

,a],當(dāng)

為空時,是根據(jù)搜索符a來填表(歸約項目),而不是根據(jù)A的后繼符來填表4.5LR分析器例 SBB4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/a4.5LR分析器S·S,$I04.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/aB

·bB,b/aB

·a,b/aI3B

a·,b/aI4ab4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/aB

·bB,b/aB

·a,b/aI3B

a·,b/aI4aabbS

BB·,$I5B

b·B,$B

·bB,$B

·a,$I6B

bB·,$I9B

a·,$I7B

bB·,b/aI8BbbBaaB4.5LR分析器S·S,$I0S4.5

LR分析器構(gòu)造規(guī)范的LR分析表(1)基于LR(1)項目來構(gòu)造識別G

可行前綴的DFA(2)從Ii構(gòu)造分析器的狀態(tài)i,狀態(tài)i的action函數(shù)如下確定如果[A

·a

,b]在Ii中,且goto(Ii,a)=Ij,那么置action[i,a]為sj如果[A

·

,

a]在Ii中,且A

S

,那么置action[i,a]為rj

如果[S

S·,

$]在Ii中,那么置action[i,$]=acc 如果用上面規(guī)則構(gòu)造出現(xiàn)了沖突,那么文法就不是LR(1)的4.5LR分析器構(gòu)造規(guī)范的LR分析表4.5

LR分析器先前基于SLR(1)有移進-歸約沖突的例子,在基于規(guī)范LR(1)時無沖突S

V=ES

EV

EV

idE

VI0:S

·S,$S·V=E,$S·E,$V

·

E,=/$V·id,=/$E

·V,$I2:S

V·=E,$E

V·,$V4.5LR分析器先前基于SLR(1)有移進-歸約沖突的例4.5

LR分析器4.5.5

構(gòu)造LALR分析表研究LALR的原因規(guī)范LR分析表的狀態(tài)數(shù)偏多LALR特點LALR和SLR的分析表有同樣多的狀態(tài),比規(guī)范LR分析表要小得多LALR的能力介于SLR和規(guī)范LR之間LALR的能力在很多情況下已經(jīng)夠用LALR分析表構(gòu)造方法通過合并規(guī)范LR(1)項目集來得到4.5LR分析器4.5.5構(gòu)造LALR分析表4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/aB

·bB,b/aB

·a,b/aI3B

a·,b/aI4aabbS

BB·,$I5B

b·B,$B

·bB,$B

·a,$I6B

bB·,$I9B

a·,$I7B

bB·,b/aI8BbbBaaBI4和I7僅搜索符不一樣4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/aB

·bB,b/aB

·a,b/aI3B

a·,b/aI4aabbS

BB·,$I5B

b·B,$B

·bB,$B

·a,$I6B

bB·,$I9B

a·,$I7B

bB·,b/aI8BbbBaaBI4和I7合并4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/aB

·bB,b/aB

·a,b/aI3B

a·,b/aI4aabbS

BB·,$I5B

b·B,$B

·bB,$B

·a,$I6B

bB·,$I9B

a·,$I7B

bB·,b/aI8BbbBaaB輸入為bbabba$4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/aB

·bB,b/aB

·a,b/aI3B

a·,b/aI4aabbS

BB·,$I5B

b·B,$B

·bB,$B

·a,$I6B

bB·,$I9B

a·,$I7B

bB·,b/aI8BbbBaaB輸入為bba$4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/aB

·bB,b/aB

·a,b/aI3B

a·,b/aI4aabbS

BB·,$I5B

b·B,$B

·bB,$B

·a,$I6B

bB·,$I9B

a·,$I7B

bB·,b/aI8BbbBaaB有三組同心集,都合并4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/a/$B

·bB,b/a/$B

·a,b/a/$I36B

a·,b/a/$I47aabbS

BB·,$I5B

bB·,b/a/$I89BbBa4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/a/$B

·bB,b/a/$B

·a,b/a/$I36B

a·,b/a/$I47aabbS

BB·,$I5B

bB·,b/a/$I89BbBa棧 輸入0 bba$4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/a/$B

·bB,b/a/$B

·a,b/a/$I36B

a·,b/a/$I47aabbS

BB·,$I5B

bB·,b/a/$I89BbBa棧 輸入0b36 ba$4.5LR分析器S·S,$I0S4.5

LR分析器S

·S,$I0S

·BB,$B

·bB,b/aB

·a,b/aS

S·,$I1S

B·B,$B

·bB,$B

·a,$I2SBB

b·B,b/a/$B

·bB,b/a/$B

·a,b/a/$I36B

a·,b/a/$I47aabbS

BB·,$I5B

bB·,b/a/$I89BbBa棧 輸入0b36b36a$4.5LR分析器S·S,$I0S4.5

LR分析器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論