符號串的最左推導及最右推導
需求分析
(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.演算法思想 描述的是大概的過程,具體實現的細節見 注釋。...