基本介紹
- 中文名:簡單優先文法
- 性質:優先文法
- 屬性:簡單
- 編譯程式:的工作過程通常是詞法分析
計算機編程,簡單優先分析方法,
計算機編程
簡單優先分析文法的基本思想是對一個文法按一定的原則求出該文法所有符號包括終結符和非終結符之間的優先關係,按照這種關係確定規約過程中的句柄,它的規約過程實際上是規範規約。在算法實現過程中,主要使用visual C++進行編程。
簡單優先分析方法
·一種shift-reduce分析方法
·根據文法符號的優先關係確定句柄
·文法符號的優先關係的確定
簡單優先分析中的三種關係
X≌Y :若且唯若存在一個產生式A→…XY…X<|Y :若且唯若存在一個產生式A→…XB…
並有B=>Y…。X|>Y :若且唯若存在一個產生式A→…BC…
並有B=>…X,C=>Y…。
文法G為簡單優先文法如果滿足:對於任意兩個語法符號X和Y,至多成立一種 優先關係;任意兩個產生式都具有不同的右部。
文法優先關係的確定
FIRST(W) ={S | W=>S…,S∈(VN∪VT)}LAST(W) ={S | W=>…S,S∈(VN ∪VT)}
若有U→…SiSj…: 則有Si ≌ Sj ;若有U→…SiW…:則有Si<|Sj,且Sj∈FIRST(W)若有U→…VW…:則有Si|>Sj ,且Si∈LAST(V),
Sj∈(FIRST(W)∪{W})。
輸入流的結束標誌 ‘#’,文法的開始符為Z,#<|S,S∈FIRST(Z); 且#<|Z
S|>#,S∈LAST(Z); 且Z|># 簡單優先分析算法要點