1. 編譯原理 活前綴問題
不含句柄之後字元的前綴都是活前綴,a在句柄之前,當然是。
2. 編譯原理描述文法所有可行前綴
空 •0s1 0•s1 0s•1 0s1• •01 0•1 01•
3. 編譯原理中 文法 文法G定義為四元組(Vn ,Vt,P,S)這4個是什麼意思 另外 終結符和非終結符是什麼意思
文法G是一個四元式(Vt,Vn,S,P)
其中Vt是一個非空有限集,它的每個元素稱為終結符號
Vn是一個非空有限集,它的每個元素稱為非終結符號(Vt和Vn的交集為空)
S是一個非終結符號,稱為開始符號
P是一個產生式集合(有限),每個產生式的形式是P-->a
開始S必須在某個產生式的左部出現一次
終結符指組成語言的基本符號(如基本字、標識符、常數、算符、界符)
非終結符號(也稱語法變數)表示一定符號串的集合。
你看到小寫字母一般是終結符,大寫字母肯定是非終結符
不明白可以聯系。
4. 編譯原理中LR(1) 那個向前搜索符怎麼求的 跪求高手解答(別只是按照書抄)
初始項目集中,約定第一個項目S′→ ·S,# 向前搜索符為#(#是句子結束標志,有的書採用的是其他符號)
其他項目的向前搜索符同CLOSURE有關,需要求FIRST集合。
詳細內容只能先去看書,然後看例題,再做些習題
5. 編譯原理中LR(1) 那個向前搜索符怎麼求的 跪求高手解答 復制粘貼或者答非所問的別來
1、首先第一步就是項目[S』-> . S,],自動生成搜索符],自動生成搜索符],自動生成搜索符,從項目[A->α.Bβ,?]生成項目[B->…,first(β)]。
6. 編譯原理 無法提取左公因子,都有公共前綴
就是有公共前綴才可以提取左公因子啊……
bool -> expr expr'
expr' -> e
| < expr
| <= expr
| > expr
| >= expr
後面幾個比較操作符如果還算公因子的話,還可以繼續提:
用expr1 代替 < expr 和 <= expr,刪除這兩個右部,添加右部 <expr1,添加產生式expr1-> expr|= expr
用expr2 代替 > expr 和 >= expr,刪除這兩個右部,添加右部 >expr2,添加產生式expr2-> expr|= expr
7. 編譯原理寫出表達式-a-(b*c/(c-d)+(-b)*a)的前綴式和後綴式。
abcde/+*+ 畫一個運算樹 先算的d/e根為"/",子結點為d,e 然後算c+d/e,根為「+」,左右子結點為e和上面的子樹 b*(c+d/e)根為"*",作子樹為b,右子樹為(c+d/e)的樹 最後a為右結點,"+"為根,左子樹為剛才得到的樹。 該樹後序遍歷即得。
8. 請問規范規約是什麼意思(這個詞應該是用在計算機編譯原理中)
在編譯原理中,規范規約是編譯程序中語法分析(自下而上分析)階段的,在此階段中處理文法和句子。規范規約是文法中句子的一個最右推導的逆過程。
如果你是沒學過編譯原理的,這個具體要說意思的話,太抽象。你只要知道編譯程序的工作是從輸入源程序開始到輸出目標程序為止的整個過程,而這個過程可分為五個階段:詞法分析、語法分析、語義分析與中間代碼產生、優化、目標代碼生成。規范規約就是語法分析中用到的,為後面的步驟做准備。
9. 編譯原理,算符優先文法採用"移進-規約"技術,其規約過程是規范的. 這句話錯在哪了謝謝
算符優先文法確實使用了移入歸約技術,但其歸約過程不滿足規范歸約(最左歸約),算符優先文法每次歸約的是最左素短語,而規范歸約每次歸約的是最左直接短語(句柄)
10. 編譯原理 LR(0) 項目集規范族怎麼構建。 書上的實在是看不懂那些I0、I1、I2的步驟。求一個
LR分析法是一種自下而上進行規范歸約的語法分析法,L指從左到右掃描輸入符號串,R是指構造最右推導的逆過程。對大多數無二義性上下文無關文法描述的語言都可用它進行有效的分析。主要分析器有LR(0),SLR(1),LR(1),LALR(1):
LR(0):在分析的每一步,只需根據當前棧頂狀態而不必向前查看輸入符號就能確定應採取的分析動作。所能分析的LR(0)文法要求文法的每一個LR(0)項目集中都不含沖突項目。
示例文法:
0 S』 -> S
1 S -> A
2 S -> B
3 A -> aAb
4 A -> c
5 B -> aBb
6 B -> d