共找到11條詞條名為編譯原理的結果 展開
編譯原理
從實戰中理解編譯原理
編譯原理,經過對普通編譯原理分析,形成了以詞典為核心,結合詞的數據結構完成編譯過程的自成體系技術理論。通過分析詞法生成詞典(詞典發生器),分析語法生成局部代碼,並建立數據指針(翻譯機),組裝局部代碼生成目標機器語言流並建立程序調用過的對象、指針等數據流空間,最終完成可執行程序(裝配器)三個模糊過程(因為這些過程都離不開詞典,編譯中間會發生相互影響),把高級計算機語言加工成為計算機機器語言代碼流,這就是我們提出的編譯原理。
《從實戰中理解編譯原理》系列文章從另一個角度介紹編譯原理技術,使用“大白話”的方式解釋其實現方法,簡單明了。希望大家共勉。
計算機程序編譯原理的實質就是把程序員員容易理解的高級語言程序代碼流翻譯成計算機可執行的機器指令代碼流。可以使用“一斷、二比、三譯”形象說明實質。
1、斷。按照語言的語法規則掃描 斷詞,結合文法詞典把程序字元串流分解成為計算機語言能夠識別的基本單元(標識詞、運算符)。
2、比。從程序流中找出擴展標識詞的定義,建立標識詞結構,放入文法詞典,服務於新的定義和函數程序代碼的編譯。程序語句、表達式裡面使用的標識可以從詞典中比較找到。
3、譯。把函數程序文本字元串流中的算術表達式、賦值語句、控制語句翻譯成為計算機機器語言二進位代碼流。
4、組裝函數翻譯后的二進位代碼流,明確數據空間地址和大小,生成計算機裸機或操作系統可以執行目標代碼。
“文法是以有窮的集合刻畫無窮的集合的一個工具”,有窮的集合應該是已經出現的,人們普遍接受的詞、片語或句子,無窮的集合就是有窮的集合的詞、片語或句子,創造新的集合過程和結果,有待進一步認識接受。
我們的 文法規定內涵 是已經明確定義的和正在定義(聲明)的內容。反映到計算機語言程序中 就是編程時已經定義的和正在定義(聲明)的字元或字元串。文法可以以表的形式,或詞典形式存放。
使用“三二術”替代“語法樹”。
不管是常數、對象變數、函數,還是“()”,表達式可以看成具有輸出的中間量
量1 + 量2 - 量3 * 量4 & 量5 > 量6
按照表達式的從前到后的順序,先取表達式三個量和兩個計算符,把其中兩量和一符優先計算,結果存放在中間量之中,而後再順序取表達式一符一量,變成新三量兩符,重複兩量和一符優先計算,直到剩兩量和一符,再得到最後計算結果。
編譯原理[從實戰中理解編譯原理]