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

編譯原理集合的逆集合

發布時間:2025-05-04 16:35:55

⑴ 什麼叫活前綴,用通俗的話解答下,或者簡單的例子。 這個題是編譯原理的。

活前綴:右句型的前綴,而且其右端不會超過該句型的最右邊句柄的末端。
右句型:最右推導可得到的句型。
最右推導:每步推導都替代最右非終結符的推導。
推導:我們說αBγ推導出αβγ,是說存在產生式B->β。
產生式:左邊為非終結符,右邊為終結符與非終結符組合成的串。
非終結符:是字元串的集合。
終結符:組成語言的詞。如c語言中的2,a,int,if等。
句型:開始符經過若干步推導後得到的串。
前綴:如abc的前綴為a、ab、abc。
開始符:開始符是整個語言的集合。
句柄:非形式的,句柄是和某個產生式右部匹配的字元串,把句柄歸約成產生式左部的非終結符,可以得到最右推導的逆過程的一步。形式的定義為:開始符s經過若干步最右推導得到αBγ,αBγ經過一步最右推導得到αβγ,若γ為終結符的集合,則β為句柄。舉例:
E->E+E|E*E|-E|(E)|id,對於id+id*id,其中一個最右推導為E->E+E->E+E*E->E+E*id->E+id*id->id+id*id。在id+id*id歸約成E+id*id的過程中,最左邊的id是句柄。E+id*id歸約成E+E*id時,最左邊的id是句柄,把E+E*id歸約成E+E*E時,id是句柄。把E+E*E歸約成E+E時E*E是句柄。E+E歸約成E時,E+E是句柄。
歸約:可理解為把產生式右邊的串用產生式左邊的非終結符代替。
注1:再說一下活前綴,舉個例子,比如E+E*E歸約成E+E,句柄是E*E,那麼它的活前綴就是E、E+、E+E、E+E*、E+E*E。又比如id+id*id歸約成E+id*id,句柄是最左邊的id,那麼它的活前綴是id,因為不能超過句柄。
注2:至於為什麼要給出活前綴的定義和如何用歸約的方法實現語法分析,還要進一步學習。

⑵ 編譯原理

編譯原理):利用編譯程序從源語言編寫的源程序產生目標程序的過程; 用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。

編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成

(2)編譯原理集合的逆集合擴展閱讀:

編譯程序的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最後看是否構成一個符合要求的程序,按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程序是最終的一個語法單位。

編譯程序的語法規則可用上下文無關文法來刻畫。語法分析的方法分為兩種:自上而下分析法和自下而上分析法。自上而下就是從文法的開始符號出發,向下推導,推出句子。

而自下而上分析法採用的是移進歸約法,基本思想是:用一個寄存符號的先進後出棧,把輸入符號一個一個地移進棧里,當棧頂形成某個產生式的一個候選式時,即把棧頂的這一部分歸約成該產生式的左鄰符號。

閱讀全文

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

熱點內容
如何防止程序員接觸核心代碼 瀏覽:860
我的世界村民命令 瀏覽:633
伺服器的kb是什麼意思 瀏覽:291
雲手機伺服器的架構 瀏覽:54
別克君威發動機壓縮比 瀏覽:474
go語言程序設計pdf中文 瀏覽:74
網紅解壓小新屁屁貼 瀏覽:152
中銀app怎麼看銀行卡號 瀏覽:101
安卓手機如何玩我的世界版本 瀏覽:959
winform自己創建文件夾 瀏覽:259
特派員的命令 瀏覽:212
文明重啟國服怎麼開自己的伺服器 瀏覽:179
steam視頻壁紙文件夾 瀏覽:524
通達信炒股軟體編程 瀏覽:720
如何使用伺服器控制權 瀏覽:589
計算機演算法需要學數學嗎 瀏覽:604
stc單片機燒寫程序 瀏覽:172
deflaterjava 瀏覽:129
壓縮機常用品牌 瀏覽:185
如何快速攻略伺服器 瀏覽:375