⑴ 終結符是
Vt是一個非空有限集,它的每個元素稱為終結符號
Vn是一個非空有限集,它的每個元素稱為非終結符號(Vt和Vn的交集為空)
S是一個非終結符號,稱為開始符號
P是一個產生式集合(有限),每個產生式的形式是P-->a
開始S必須在某個產生式的左部出現一次
終結符指組成語言的基本符號(如基本字、標識符、常數、算符、界符)
非終結符號(也稱語法變數)表示一定符號串的集合。
你看到小寫字母一般是終結符,大寫字母肯定是非終結符
不明白可以聯系。
⑵ 編譯原理中 文法 文法G定義為四元組(Vn ,Vt,P,S)這4個是什麼意思 另外 終結符和非終結符是什麼意思
文法G是一個四元式(Vt,Vn,S,P)
其中Vt是一個非空有限集,它的每個元素稱為終結符號
Vn是一個非空有限集,它的每個元素稱為非終結符號(Vt和Vn的交集為空)
S是一個非終結符號,稱為開始符號
P是一個產生式集合(有限),每個產生式的形式是P-->a
開始S必須在某個產生式的左部出現一次
終結符指組成語言的基本符號(如基本字、標識符、常數、算符、界符)
非終結符號(也稱語法變數)表示一定符號串的集合。
你看到小寫字母一般是終結符,大寫字母肯定是非終結符
不明白可以聯系。
⑶ 編譯原理中FIRSTVT和LASTVT是什麼意思
Firstvt和Lastvt是為了畫算符優先關系表的(就是表裡面填優先大於小於等於的那個)。
然後要注意他們可都是終結符的集合。
Firstvt
找Firstvt的三條規則:如果要找A的Firstvt,A的候選式中出現:
A->a.......,即以終結符開頭,該終結符入Firstvt
A->B.......,即以非終結符開頭,該非終結符的Firstvt入A的Firstvt
A->Ba.....,即先以非終結符開頭,緊跟終結符,則終結符入Firstvt
Lastvt
找Lastvt的三條規則:如果要找A的Lastvt,A的候選式中出現:
A->.......a,即以終結符結尾,該終結符入Lastvt
A->.......B,即以非終結符結尾,該非終結符的Lastvt入A的Lastvt
A->.....aB,即先以非終結符結尾,前面是終結符,則終結符入Firstvt
⑷ 請問編譯原理中的終結符和非終結符是什麼意思
非終結符還要繼續展開,可以包含終結符和非終結符具體的要看編譯原理,不是一句兩句說得清的
⑸ 一個編譯原理的問題
First(α) 是符號串α的開始符號集合。
也就是說,用推導的方法對α進行推導,一次次地使用產生式,用產生式右部的符號串替換一個非終結符,所有那些可能出現在第一個符號位置的終結符,就構成了開始符號集。
比如,在C語言中,對於符號串「語句」來說,標識符(賦值語句)、if(條件語句)、printf(輸出函數)這些單詞(終結符)都是它開始符號集合中的元素,而+(加號)、}(右花括弧)不可能出現在「語句」的開頭,所以不是它的開始符號集合中的元素。
Follow(A)是非終結符A的後跟符號集合。
它是指在所有可能的句型中,一切可能出現在非終結符A後面的一個終結符。
這里要特別注意是在「句型」中。
你可以自己舉例,比如分析一下C語言中「表達式」後面可能跟哪些單詞,它們就是非終結符「表達式」後跟符號集合中的元素。
你說的這兩個集合的交集問題不存在。
因為它們針對的是不同類型的對象(一個是符號串,另一個是某個非終結符)。
實際上,在選擇集合問題中,考慮的不是它們的交集,而是一個產生式右部符號串的First集跟這個產生式左端非終結符的Follow集的並集。
考慮交集的,發生在相同左部的不同產生式的選擇集合之間。
⑹ 編譯原理這個符號表示什麼 如圖~~~~
剪頭上加一個星號:S-*->aPb
表示從S可以推出含有非終結符P的形如aPb的句型。
剪頭上加一個加號:S-+->a
表示從S可以推出終結符a。
⑺ 編譯原理 V+什麼意思,例如下面的例子。。。
v表示終結符和非終結符集合。
+表示集合中的一個或多個元素構成的串的集合。
所以v+表示由一個或多個終結符或非終結符構成的串的集合。比如如果a∈VT,A∈VN,那麼a,A,aA,Aa,aAA,AaA等都是v+中的元素。
⑻ 編譯原理 終結符集合 包不包括空 ε 為什麼
除了非終結符之外的符號都是終結符,「|」符號除外,只有這個啥都不是
⑼ 誰能夠解釋下編譯原理中什麼是FIRSTVT,和LASTVT,盡量淺顯易懂點謝謝
Firstvt和Lastvt是為了畫算符優先關系表的(就是表裡面填優先大於小於等於的那個)。
然後要注意他們可都是終結符的集合。
Firstvt
找Firstvt的三條規則:如果要找A的Firstvt,A的候選式中出現:
A->a.......,即以終結符開頭,該終結符入Firstvt
A->B.......,即以非終結符開頭,該非終結符的Firstvt入A的Firstvt
A->Ba.....,即先以非終結符開頭,緊跟終結符,則終結符入Firstvt
Lastvt
找Lastvt的三條規則:如果要找A的Lastvt,A的候選式中出現:
A->.......a,即以終結符結尾,該終結符入Lastvt
A->.......B,即以非終結符結尾,該非終結符的Lastvt入A的Lastvt
A->.....aB,即先以非終結符結尾,前面是終結符,則終結符入Firstvt
⑽ 編譯原理的終結符和非終結符如何理解
一、非終結符:
1、非終結符可以再分成更細的東西。
2、不是終結符的都是非終結符。非終結符可理解為一個可拆分元素,而終結符是不可拆分的最小元素。終結符號就是語言中用到的基本元素,名詞、動詞、形容詞、助詞等等基本語言單位。
二、終結符:
1、終結符直接就代表一個意思,比如關鍵字if就不能再分成i和f了。
2、通俗的說就是不能單獨出現在推導式左邊的符號,也就是說終結符不能再進行推導。非終結符則是"語法"中用到的元素,除非談論"語法",一般交談語言中並不會用到非終結符。比如:主語、短語、片語、句子。
(10)編譯原理終結符是一個集合嗎擴展閱讀:
終結符和非終結符在計算機科學和語言學的領域是用來指定推導規則的元素。在某個形式語法之中,終結符和非終結符是兩個不交的集合。
從形式語言中定義看,終結符(T)就是不可再分的字元或串。而非終結符(N)是一個遞歸形式的定義:由終結符和至少一個非終結符號組成的串。
如果編譯過程中發現源程序有錯誤,編譯程序應報告錯誤的性質和錯誤的發生的地點,並且將錯誤所造成的影響限制在盡可能小的范圍內,使得源程序的其餘部分能繼續被編譯下去,有些編譯程序還能自動糾正錯誤,這些工作由錯誤處理程序完成。
需要注意的是,一般上編譯器只做語法檢查和最簡單的語義檢查,而不檢查程序的邏輯。
網路-終結符
網路-編譯