簡介:前端
編譯器和解釋器後端
/* input --> C --> output 可執行的程序 offline input --> I --> output 結果 online
/* 編譯器的結構 I --> 前端 --> 後端 --> O 詳細: I --> 【詞法 --> 語法】-->【指令生成 --> 優化】 --> O
棧式計算機post
/* 兩條指令 push add 僞代碼 // push 是壓棧的意思 push 1 push 5 push 6 add { x = pop(); y = pop(); z = x + y; push z } 任務:編譯程序 1 + 2 + 3 到棧式計算機 「1 + 2 + 3」 --> 語法分析 --> (+) --> 代碼生成(樹的 post order) --> stack / \ (+) (3) / \ 1 2 n 表明數字 (1) n: push n (2) +: add 總結: --> 前端 --> 語法樹 --> 後端 --> 代碼生成 優化: --> 前端 --> 語法樹1 --> 優化 --> 語法樹2 -->後端 -->