導航:首頁 > 源碼編譯 > 編譯成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常用方法相關的資料

熱點內容
pdf文件怎樣壓縮 瀏覽:428
前中央編譯局 瀏覽:135
壓縮包內存不足怎麼辦 瀏覽:655
蘋果app付款記錄在哪裡看 瀏覽:823
可愛的程序員劇情介紹陸漓流產了嗎 瀏覽:892
c程序的編寫編譯和運行 瀏覽:683
在線編程工具如何編譯 瀏覽:66
護衛神php網站 瀏覽:222
js文件中執行命令 瀏覽:827
go語言編譯器java版 瀏覽:920
有緣在線app在哪裡下載 瀏覽:587
bp演算法分類 瀏覽:821
iphone沒有網路連接到伺服器地址 瀏覽:302
命令與征服3紅色警戒 瀏覽:120
高爾夫嘉旅壓縮比 瀏覽:526
如何在雲伺服器上打開本地文件 瀏覽:653
什麼伺服器能掛400個yy 瀏覽:133
python在文件式中怎麼賦值 瀏覽:204
王者轉移號安卓轉移ios有什麼風險 瀏覽:793
怎麼注冊安卓市場 瀏覽:114