Ⅰ 編譯原理假定要被代換的最左非終結符號是V,且有n條規則:V→A1|A2|…|An,那麼如何確定用哪個右部去替代V
設V為非終結符,且V→A1|A2 ,當V出現在下推棧的棧頂,且輸入符號為a時:
1. 若a屬於First(A1)而a不屬於First(A2),則V→A1
2. 若a不屬於First(A1)而a屬於First(A2),則V→A2
3. 若a不屬於First(A1)且a不屬於First(A2), 則表示輸入有錯
4. 若a屬於First(A1)且a屬於First(A2),,則表示終結首符集相交,需改寫文法,進行公因子提取
同理可推n條規則的情況…恩 還有First(A1)={epsilon}的情況你找本書看看預測分析表的構造方法就知道了~編譯原理畫語法樹?這種問題我一般用表解決,樹還真不會畫- -本人新手,第一次在回答題,求採納求賞分~~~~^_^
Ⅱ 編譯原理中 文法 文法G定義為四元組(Vn ,Vt,P,S)這4個是什麼意思 另外 終結符和非終結符是什麼意思
文法G是一個四元式(Vt,Vn,S,P)
其中Vt是一個非空有限集,它的每個元素稱為終結符號
Vn是一個非空有限集,它的每個元素稱為非終結符號(Vt和Vn的交集為空)
S是一個非終結符號,稱為開始符號
P是一個產生式集合(有限),每個產生式的形式是P-->a
開始S必須在某個產生式的左部出現一次
終結符指組成語言的基本符號(如基本字、標識符、常數、算符、界符)
非終結符號(也稱語法變數)表示一定符號串的集合。
你看到小寫字母一般是終結符,大寫字母肯定是非終結符
不明白可以聯系。
Ⅲ 編譯原理問題。非終結符的FOLLOW集裡面為什麼要放個#號
#號是分析過程中引入的界符
用來表示開始和結束的邊界用
對於一個文法G(S)來說
求公理S的FOLLOW集的時候,由於沒有一個產生式的右部包含S
所以我們規定S的FOLLOW集是{#}
就是一個句型的結束符
#句型#
Ⅳ 編譯原理 終結符集合 包不包括空 ε 為什麼
除了非終結符之外的符號都是終結符,「|」符號除外,只有這個啥都不是
Ⅳ 編譯原理中終結符具有什麼屬性,非終結符具有什麼屬性
終結符,通俗的說就是不能單獨出現在推導式左邊的符號,也就是說終結符不能再進行 推導。
不是終結符的都是非終結符。非終結符可理解為一個可拆分元素,而終結符是不可拆 分的最小元素。
Ⅵ 急求!怎麼求編譯原理的FOLLOW集合在線等~
follow集合是針對非終結符而言的;follow(U)所表達的是句型中非終結符U的所有可能的後隨終結符號的集合,特別注意一點:「#」是識別符號的後隨附。
直接收取:形如「……Ua」的組合,直接把啊收入到follow(U)中
直接收取:形如「……UP……」的組合,(P是非終態符);把firth(P)除去ε直接收入到follow(U)中。
反復傳遞:形如「P-……U」的產生式,
follow(P)的全部內容傳遞到follow(U)中,或者說是P-……UB且first(B)包含ε,則把first(B)除去ε直接收入到follow(U)中,同時吧follow(P)的全部內容傳送到follow(U)中...
Ⅶ 編譯原理里產生式中符號帶括弧是什麼意思
就是 字元本身 意思是F產生( E ) 或者 i 比如If語句的開頭 就是 帶括弧的 必須是 if(表達式)這樣的形式 丟了任何即括弧就是其 終結符 「(」 和 「)」.
Ⅷ 請問編譯原理中的終結符和非終結符是什麼意思
非終結符還要繼續展開,可以包含終結符和非終結符具體的要看編譯原理,不是一句兩句說得清的
Ⅸ 編譯原理的終結符和非終結符如何理解
一、非終結符:
1、非終結符可以再分成更細的東西。
2、不是終結符的都是非終結符。非終結符可理解為一個可拆分元素,而終結符是不可拆分的最小元素。終結符號就是語言中用到的基本元素,名詞、動詞、形容詞、助詞等等基本語言單位。
二、終結符:
1、終結符直接就代表一個意思,比如關鍵字if就不能再分成i和f了。
2、通俗的說就是不能單獨出現在推導式左邊的符號,也就是說終結符不能再進行推導。非終結符則是"語法"中用到的元素,除非談論"語法",一般交談語言中並不會用到非終結符。比如:主語、短語、片語、句子。
(9)編譯原理三種終結符號集擴展閱讀:
終結符和非終結符在計算機科學和語言學的領域是用來指定推導規則的元素。在某個形式語法之中,終結符和非終結符是兩個不交的集合。
從形式語言中定義看,終結符(T)就是不可再分的字元或串。而非終結符(N)是一個遞歸形式的定義:由終結符和至少一個非終結符號組成的串。
如果編譯過程中發現源程序有錯誤,編譯程序應報告錯誤的性質和錯誤的發生的地點,並且將錯誤所造成的影響限制在盡可能小的范圍內,使得源程序的其餘部分能繼續被編譯下去,有些編譯程序還能自動糾正錯誤,這些工作由錯誤處理程序完成。
需要注意的是,一般上編譯器只做語法檢查和最簡單的語義檢查,而不檢查程序的邏輯。
網路-終結符
網路-編譯
Ⅹ 編譯原理這個符號表示什麼 如圖~~~~
剪頭上加一個星號:S-*->aPb
表示從S可以推出含有非終結符P的形如aPb的句型。
剪頭上加一個加號:S-+->a
表示從S可以推出終結符a。