編譯原理看不懂
A. 編譯原理 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
B. 編譯原理中LR(0)分析表中的r1、r2等等 是怎麼規則填寫的s1、s2…我明白了,但r規則看不懂
r表示規約 r5表示的就是用第五條產生式進行規約的 至於r填在哪裡嗎 我就舉個例子吧 比如I8 進行規約 就會在H的所有fellow集合上填上r5 希望你能看懂。。。。
C. 為什麼編譯原理這么難
因為那個太精確化了,以致於稍不留意就會產生問題,另外,這個和平時的大腦運作方式有些不同,只是主觀問題,其實很容易的,都是模式化的編譯手段。
D. 編譯原理代碼看不懂
你男的還是女的?
E. 學編譯原理好苦逼啊,根本聽不懂,什麼自動機的,覺得很抽象,是我以前學離散數學沒有學好嗎請教大大們
估計C語言沒學好,會基本編程了,在學編譯會發現不過是邏輯關系集中抽象而已,沒什麼難的~認真聽,照著例題多做幾遍,會明白他的邏輯關系的~~不過前提是你的IQ夠正常人的數值~~~
F. 編譯原理問題:求解
E是文法開頭。ε代表終結符號(推理中代表終點或結果,程序語言中代表常量等)。E T 這些大寫字母一般代表非終結符號(這些代表中間過程,非結果。程序中代表函數等等)。開始是E。因為有個G(E)。E就是文法開始符號。推導就有E開始,它也是一個非終結符(代表函數、或者一個推導過程,類似於程序中的main(c++)、winmain(vc++)、dllmain(dll)等主函數)。
1算術表達式文法:這個文法是一個遞歸文法。計算機進行邏輯推導時會走很多彎路(類似於遍歷一顆樹的過程)。為了不讓計算機走彎路(提高效率的目的),可以變換為第二種文法。這種文法消除了遞歸(消除了歧義,類似於後綴表達式),使計算機可以一條直線走到底兒推導出結果。
我也很久沒看編譯原理了。 呵呵
G. 編譯原理:優先函數 f和g 到底怎麼看啊,不懂怎麼構造的 求解...
求算符優先函數的方法—迭代法
若已知運算符之間的優先關系,可按如下步驟構造優先函數:
1、對每個運算符a(包括#在內)令f(a)=g(a)=1
2、如果a⋗b且f(a)<=g(b),令f(a)=g(b)+1
3、如果a⋖b且f(a)>=g(b),令g(b)= f(a)+1
4、如果a≐b而f(a) ≠g(b),令min{f(a),g(b)}=max{f(a),g(b)}
5、重復2~4,直到過程收斂。如果重復過程中有一個值大於2n,則表明不存在算符優先函數。
H. 有關自學編譯原理的問題。
編譯原理的"原理"其實跟C語言關系不太大,除非你是想親手實踐一個小型的編譯器,對於數據結構,你明白基本的隊列和棧基本就夠了,如果還沒全懂,不必怕看不懂編譯原理.
編譯原理比較難學,但是在學的過程中我覺得一定要明白每一種詞法分析到底是在干什麼,不要只為了編譯原理的題而學,那樣我覺得學起來會非常抽象.
至於書,我覺得還是使用清華大學的<編譯原理>,張素琴,呂映芝那本.這本書也是編譯原理的經典教材,雖然不是特別好懂,但我覺得這本書你"熟讀千遍",肯定會有所收獲.把前七章學完,"原理"部分就完畢了.
最好這門課找些視頻教程學來會容易一些,否則真是要自己硬看的話還是有一定難度的...
I. 編譯原理的一個問題
唉 這個很簡單
B->aAr
這里是書上為了方便理解設的
A B都是非終結符
a 和 r是表示一個表達的串
比如說 a=EdsT 或者a=空
r也是一樣的
規則1
開始符的follow集要包括($)注釋:有些書是「#」
規則2
就是first(r)中有空的話
比如r=iTB|空
那麼first(r)相當於first(iTB)就是{i,空}
說明有空
那麼follow(A)中包括了follow(B)中的所有元素
規則3
follow(A)包括了first(r)中的元素 但排除「空」
因為follow集不能有「空」
注釋:上面"空"是一個書上的一個符號「空」 不好敲出來 希望你看得懂了
J. 《編譯原理》猶如天書,怎麼學
穩扎穩打,如果發現看不懂,圖書管理去借幾本中國人寫的,稍微看懂一些,
然後再回過頭來看這本,英語翻譯過來的,是比較拗口,如果英語好,直接看原著更好,
一定不要一個概念沒搞清楚就又累計一堆問號,
最後就崩潰了,
一點點搞清楚,要理解,不要死記,沒那麼難