編譯原理之最左推導和最右推導

2021-04-01 01:38:26 字數 1109 閱讀 2958

符號串的最左推導及最右推導

需求分析

(1

)輸入乙個文法,可以有多個非終結符號,每個非終結符號可有多條規則。(2

)輸入要分析的符號串(3

)分別採用最左推導和最右推導進行符號串的分析,請輸出推導過程。

文法為:

e->cb

c->c

b->b

假如有個要分析的字串為

eb最左推導的分析為

1cbb

2cbb

3cbb

4cbb

最右推導的分析為1eb

2cbb

3cbb

4cbb

1 輸入文法

2 輸入要分析的字串

3 選擇適當的文法

4

判斷是否要分析的字串已經分析完

n

5

輸出分析結果並結束

1 輸入文法

2

輸入要分析的字串 3

選擇適當的文法 4

判斷是否要分析的字串已經分析完 n

5

輸出分析結果並結束 y

詳細設計

1.介面設計

利用vc

++的mfc

的單對話方塊做模板,輸入文法和要分析的字串分別用乙個

text

來輸入,輸出的最左推導和最右推導結果在

listbox

,乙個按鈕來確認

2.模組演算法(偽**)

(1)最左推導

while(

這不是最後乙個字元

)(2)

最右推導

while(

這不是最後乙個字元)(

3)何為非終結符號

e->cd

可以看出凡是在箭頭左邊的為非終結符號(4

)分析文法表

例如e->c

c->c

由此可見:

在->

左邊的為非終結符號,

->

右邊的為要分析的文法

最左推導和最右推導

於 1.定義 2.丟擲乙個小栗子 文法g e 為 給出i i i的最左推導和最右推導。思考三分鐘再往下看哦 解析 最左推導 從文法的起始符號開始 e e t t t f t i t i t f i f f i i f i i i 最右推導 從文法的開始符號開始 e e t e t f e t i e...

編譯原理 語法推導樹

語法推導樹必須具有的特徵 首先理解此處和文法有關,文法公式g 1.每個結點都有乙個標記,此標記是v的乙個符號。這個標記必須是終結符或者非終結符中的乙個 2.根的標記是s 開始符 3.若一結點n至少有乙個它自己除外的子孫,並且有標記a,則a肯定在vn中。如果乙個結點有子孩子,則這個結點肯定不是終結符 ...

編譯原理之文法推導

已知文法g 表示式 項 表示式 項 項 因子 項 因子 因子 表示式 i 試給出下列表示式的推導。1 i 2 i 3 i i 4 i i i 5 i i i 6 i i i 7 i i i 8 i i 9 i i i i 10 i i i 3.演算法思想 描述的是大概的過程,具體實現的細節見 注釋。...