導航:首頁 > 源碼編譯 > 編譯成ast常用方法

編譯成ast常用方法

發布時間:2024-12-24 21:52:04

編譯原理簡單嗎

編譯原理主要是講了編譯器的實現。
那什麼是編譯器呢?
編譯器就是將 源程序→編譯器 →目標機器代碼的程序
本文將用一段最簡單的代碼進行說明

1 + 2 + 3

第一步. 詞法分析
當代碼從文件中被讀入到編輯器時,將會進行詞法分析
示例中的代碼最終會轉換為(下面為偽代碼)

1 ADD 2 ADD 3

第二步. 語法分析
這一步編譯器將會把詞法分析的結果轉換成AST(abstract syntax tree, 抽象語法樹)
所有的操作數將會作為子節點,所有的操作符將會作為父節點。(不知道的同學可以看一下樹的生成)

1 + 2 + 3 對應的樹
3. 生成目標代碼
對上面的樹進行後序遍歷,將會得到下面的偽代碼

((1 2 +) 3 +)

生成的匯編偽代碼為

START:

MOV VALUE, 0//初始化結果為0

ADD VALUE, 1

ADD VALUE, 2//(1 2 +)的匯編偽代碼

ADD VALUE, 3

RET VALUE

END

最終匯編代碼會被編譯成機器代碼,在計算機上執行。
下面為一般情況下的編譯流程
1. 詞法分析(生成代碼對應的token序列,使用正則表達式)
2. 語法分析(生成AST)
3. 語義分析(對代碼的語法進行檢查)
4. 代碼生成(生成可執行的代碼)

閱讀全文

與編譯成ast常用方法相關的資料

熱點內容
怎樣設置自己手機號碼加密 瀏覽:700
伺服器怎麼設置登錄地址 瀏覽:997
日本監控攝像頭用什麼APP 瀏覽:58
株洲歪鬍子游戲源碼 瀏覽:140
朔源碼燕窩會假嗎 瀏覽:279
php是否支持gd 瀏覽:925
旅遊查攻略下載什麼app 瀏覽:774
ps存儲不在原始文件夾 瀏覽:37
android直播開發CSDN 瀏覽:750
apacheaddtypephp 瀏覽:501
女程序員美劇 瀏覽:639
安卓怎麼隱身登錄王者榮耀 瀏覽:854
通達信前五源碼編寫 瀏覽:19
gcc怎麼編譯qt程序 瀏覽:925
華為文件夾命名大全 瀏覽:383
php無限分類循環 瀏覽:41
北漂程序員營養餐 瀏覽:105
掃描件pdf轉換成圖片 瀏覽:58
忍者必須死伺服器升級到什麼時候 瀏覽:339
鹼基最多配對演算法 瀏覽:829