複製鏈接
請複製以下鏈接發送給好友

編譯原理

(從實戰中理解編譯原理)

鎖定
編譯原理,經過對普通編譯原理分析,形成了以詞典為核心,結合詞的數據結構完成編譯過程的自成體系技術理論。通過分析詞法生成詞典(詞典發生器),分析語法生成局部代碼,並建立數據指針翻譯機),組裝局部代碼生成目標機器語言流並建立程序調用過的對象、指針等數據流空間,最終完成可執行程序裝配器)三個模糊過程(因為這些過程都離不開詞典,編譯中間會發生相互影響),把高級計算機語言加工成為計算機機器語言代碼流,這就是我們提出的編譯原理。
《從實戰中理解編譯原理》系列文章從另一個角度介紹編譯原理技術 [1]  ,使用“大白話”的方式解釋其實現方法,簡單明瞭。希望大家共勉。
中文名
編譯原理
語    種
大白話
讀    法
具有輸出的中間量
方    法
“一斷、二比、三譯

目錄

編譯原理實質

計算機程序編譯原理的實質就是把程序員員容易理解的高級語言程序代碼流翻譯成計算機可執行的機器指令代碼流。可以使用“一斷、二比、三譯”形象説明實質。
1、。按照語言的語法規則掃描斷詞,結合文法詞典把程序字符串流分解成為計算機語言能夠識別的基本單元(標識詞、運算符)。
2、。從程序流中找出擴展標識詞的定義,建立標識詞結構,放入文法詞典,服務於新的定義和函數程序代碼的編譯。程序語句、表達式裏面使用的標識可以從詞典中比較找到。
3、。把函數程序文本字符串流中的算術表達式賦值語句控制語句翻譯成為計算機機器語言二進制代碼流。
4、組裝函數翻譯後的二進制代碼流,明確數據空間地址和大小,生成計算機裸機或操作系統可以執行目標代碼

編譯原理文法

文法是以有窮的集合刻畫無窮的集合的一個工具”,有窮的集合應該是已經出現的,人們普遍接受的詞、詞組或句子,無窮的集合就是有窮的集合的詞、詞組或句子,創造新的集合過程和結果,有待進一步認識接受。
我們的文法規定內涵是已經明確定義的和正在定義(聲明)的內容。反映到計算機語言程序中就是編程時已經定義的和正在定義(聲明)的字符或字符串。文法可以以表的形式,或詞典形式存放。

編譯原理語法

使用“三二術”替代“語法樹”。
不管是常數、對象變量、函數,還是“()”,表達式可以看成具有輸出的中間量
量1 + 量2 - 量3 * 量4 & 量5>量6
按照表達式的從前到後的順序,先取表達式三個量和兩個計算符,把其中兩量和一符優先計算,結果存放在中間量之中,而後再順序取表達式一符一量,變成新三量兩符,重複兩量和一符優先計算,直到剩兩量和一符,再得到最後計算結果。

編譯原理對比

編譯原理 編譯原理
與普通編譯原理比較(圖),從圖片可以看出兩種編譯技術異同。
參考資料
  • 1.    陳旺火.編譯原理.北京:國防工業出版社,2010-2-4