導航:首頁 > 源碼編譯 > 編譯原理中的select集合

編譯原理中的select集合

發布時間:2022-05-13 04:41:42

1. select (9+6*5+3%2)/5-3 這個是怎麼算的啊

這個是資料庫的計算,就是求(9+6*5+3%2)/5-3的值,結果為5

2. 在線等 如圖編譯原理

(1)
存在左遞歸:E→EA
進行消除得:
E→E'
E'→AE' | ε
消除後的文法G[E]:
E→iA | E'
E'→AE' | ε
A→i | d | (E)

(2)
FIRST集:
FIRST(E)={i,d,(,ε}
FIRST(E')={i,d,(,ε}
FIRST(A)={i,d,(}

FOLLOW集:
FOLLOW(E)={#,)}
FOLLOW(E')={#,)}
FOLLOW(A)={#,i,d,(,),ε}

(3)SELECT集:
SELECT(E→iA)={i}
SELECT(E→E')={i,d,(,),#}
SELECT(E'→AE')={i,d,(}
SELECT(ε)={#,)}
SELECT(A→i)={i}
SELECT(A→d)={d}
SELECT(A→(E))={(}

由於SELECT(E→iA)∩SELECT(E→E')={i}∩{i,d,(,),#}={i}≠{Φ},即具有相同左部的產生式的SELECT集合的交集不為空可知,該文法不是LL(1)的。

希望你不是在考試的時候發的。

3. 懂編譯原理的請進

判斷是否是LL(1)文法的方法是根據FIRST集合和FOLLOW集合來判斷的,不是這個SELECT啊!你看的時哪本書?

4. 求 編譯原理 語法分析程序

可以參考我的空間,我在三年前寫過類似代碼。
http://hi..com/逄韶華/ihome/myblog

5. 編譯原理中,經過消除左遞歸的文法就一定是LL1文法么

不一定,還有回溯等其他的情況,判斷文法是不是LL1需要計算每個產生式的select集,根據計算結果才能確定

6. 怎麼求編譯原理中的first集,follow集和selec集

由於終結符的first集合就是它自己,所以求出非終結符的first集合後,就可很直觀地得到每個字元串的first集合三,first集求法
first集合最終是對產生式右部的字元串而言的,但其關鍵是求出非終結符的first集合

7. 關於編譯原理first follow 和select

首先要明白這三個集的作用和用途,知道了他們是用來做什麼的之後,理解起來就簡單一些
First(A)集的作用是標示在替換非終結符A的時候,替換後的文法的首字母集合,語法分析程序根據這個來判斷給定的語言是否是合法的,是符合規則的。
Follow(A)的作用是標示那些可以出現在A之後的字元,語法分析程序根據這個,在A可以被替換為e(空)的時候來進行判斷,看當前的文法是否是合法的。
這里簡單說明下,比如A->b,A->e(空) 當給定的語言是 bXXXXX的時候,根據第一句文法就可以判定句子合法,但是如果給的語言是cXXXXX的時候,因為A->可以替換為空,這時候就需要一句A的follow集來進行判斷,若A的follow集裡面含有c 則語言是合法的
Select集的作用是將first集和follow集進行合並,如果兩個文法的左端都是A,若他們的select集交集為空,表明他們是兩個無關的,不會產生不確定性的文法,反之,則表明文法不是LL(1)文法
計算的公式很繁雜,理解了意思之後,看就能看出來。。。。

8. 編譯原理, 寫一個簡單文法的詞法/語法分析器有簡單的方法嗎

那就用 lex 和 yacc 寫

不過實驗課程就是讓你手算一次

如果你用工具直接生成了意義不大

9. LL(1)文法-------編譯原理

我正在寫一個編譯器,源代碼在這里:
http://code.google.com/p/bellman/source/browse
其中詞法規則在lex.l文件中,語法規則在grammer.y中,分別用flex和bison的輸入文件的格式寫的。我實現了一個類似C/C++的語法

地址如下:
http://code.google.com/p/bellman/source/browse/trunk/lib/bellman/lex.l
http://code.google.com/p/bellman/source/browse/trunk/lib/bellman/grammer.y
具體有什麼問題可以發郵件[email protected]

10. 編譯原理中follow 集 select 集

不能,
A->aBc
將first c 加入follow(B)中,若c為空,把follow(A)加入follow(B)中

閱讀全文

與編譯原理中的select集合相關的資料

熱點內容
創維電視櫃怎麼安裝app 瀏覽:850
可愛的程序員陸漓劇照 瀏覽:850
怎樣把截屏壓縮成300kb 瀏覽:224
dart文件加密 瀏覽:39
java對接攝像頭源碼 瀏覽:885
安卓項目開發實例附源碼 瀏覽:728
程序員蘋果全家桶 瀏覽:197
遠程命令阻塞 瀏覽:730
有網頁源碼怎麼查數據 瀏覽:100
win10下make編譯速度過慢 瀏覽:865
微機原理編譯環境 瀏覽:17
怎麼把圖紙轉換成pdf 瀏覽:540
安卓libcurl編譯64 瀏覽:904
手機app怎麼測速 瀏覽:275
中興gpon命令 瀏覽:885
python中取出字典key值 瀏覽:682
Linux目錄inode 瀏覽:147
手機上如何用文件夾發郵件 瀏覽:429
暢課app密碼忘了怎麼找回 瀏覽:79
怎麼編譯idea 瀏覽:231