編譯原理 算符運算優先

2022-04-27 11:21:11 字數 2934 閱讀 7853

1、移動規約分析法:

自底向上的語法分析方法,也稱為

移動歸約分析法

。2、文法g[s]

s  =>αaδ且a  => b則稱b是句型α

bδ相對於非終結符a的短語

素短語與最左素短語

g的句型的素短語是乙個短語,它至少包含乙個終結符,且除自身外不再包含其他素短語。處於句型最左邊的素短語為最左素短語

控制代碼:乙個句型的最左直接短語稱為該句型的控制代碼。 

通俗理解:

短語:一棵子樹的所有葉子自左至右排列起來形成乙個相對於子樹根的短語。 

直接短語:

僅有父子兩代的一棵子樹,它的所有葉子自左至右排列起來所形成的符號串。 

控制代碼:乙個句型的分析樹中最左那棵只有父子兩代的子樹的所有葉子的自左至右排列。 

example:

文法g[e]

(1) e→e+t

(2) e→t

(3) t→t*f

(4) t→f

(5) f→p­f|p

(6) p→(e)

(7) p→i

句型t+t*f+i

其短語有:

t+t*f+i

t+t*f

tt*f

i

素短語為t*fi

最左素短語為t*f

句型t+t+i的素短語為t+ti

句型t+t+f的素短語為t+t

3、算符優先文法的定義:

如果不含空產生式的上下文無關文法g中沒有形如a®bc的產生式,其中bc∈vn則稱g

為算符文法

og)。

性質1:在算符文法中任何句型都不包含兩個相鄰的非終結符.

性質2:如 ab 或 ba 出現在算符文法的 句型  中,其中  a∈vn,b∈vt, 則  中任何 含 b 的短語必含有a。

4、在og中 定義  (算符優先關係)

a = b        g中有形如:a->…ab…

或a -> …abb...的產生式。       

a < b        g中有形如: a-> …ab…的產生式, 而   b  =>   b…   或b  =>   cb… 

a > b         g中有形如: a => …bb…的產生式,而  b => …a 或  b =>… ac

規定  若 s=>  a…或    s => ca…    則    # < a

若 s  => …a   或  s =>…ac   則    a > #

在 og文法  g 中,若任意兩個終結符間至多有一種算符優先關係存在,則稱g 為算符優先文法(opg)。

注意:允許b>c, c>b;

不允許 b>c, b

5、首先定義如下兩個集合:

firstvt(b)={b|b => b… 或 b=> cb…}

lastvt(b)={a|b =>…a 或 b =>…ac}

按如下演算法計算出給定文法中任何兩個終結符對(a,b)之間的優先關係:

1) 『=『關係

直接看產生式的右部,若出現了a →…ab…或  a →…abb,則a=b

2)』<『關係

求出每個非終結符b的firstvt(b)

若a→…ab…,則任意b∈firstvt(b),則a』關係

求出每個非終結符b的lastvt(b)

若a→…bb…,則任意a∈lastvt(b),則a>b·

算符優先分析偽**:

k:= 1; s [ k ] := 「#」

repeat read 下一符號到a;

if s[ k ]  vt then j := k else j := k-1;

while s[ j ] > a do

if ( s [ j ] < a or s[ j ] = a)

then

else error

until a = 「#」

二、演算法優先關係構造演算法fi

rstv

t(p)

=las

tvt(

p)=firstvt(p)直接根據定義遞迴的構造即可:

lastvt(p)直接根據定義遞迴的構造即可:

編譯原理 算符優先分析法

一 算符文法的定義 二 定義任意兩個終結符號之間的優先關係 解釋 1 ab兩個可以同時規約,故優先順序相等 2 將r的推導式代入p的產生式中,最終也會形成如 1 中一樣的p的產生式的形式,但此時需要對b先進行規約,再規約a,故a的優先順序小於b的優先順序 3 同理可得,b的優先順序小於a的優先順序 ...

編譯原理 算符優先法文法分析

include include include include using namespace std 輸入文法 string input 儲存文法 vectorcontext 非終結符 vector char vn 終結符 vector char vt firstvt集 map char stri...

編譯原理 算符優先分析法詳解

算符優先分析法 operator precedence parse 是仿效四則運算的計算過程而構造的一種語法分析方法。算符優先分析法的關鍵是比較兩個相繼出現的終結符的優先順序而決定應採取的動作。優點 簡單,有效,適合表示式的分析。缺點 只適合於算符優先文法,是乙個不大的文法類。定義 短語 設有文法g...