語(yǔ)言之間的翻譯
- 匯編語(yǔ)言->機(jī)器語(yǔ)言:匯編(或交叉匯編)
- 程序語(yǔ)言-匯編語(yǔ)言或機(jī)器指令:編譯(或解釋?zhuān)?/li>
- 高級(jí)語(yǔ)言之間:轉(zhuǎn)換(或預(yù)編譯)
- 逆向:反匯編昆码,反編譯
翻譯形態(tài)
編譯器:先翻譯后執(zhí)行
解釋器:邊翻譯邊執(zhí)行
語(yǔ)言成分
聲明+操作=完整定義,
聲明:生成相應(yīng)的環(huán)境寡壮,一般是配置存儲(chǔ)空間磷蜀;
操作:生成可執(zhí)行的代碼序列。
原則:先聲明后引用
編譯器工作過(guò)程
源程序(字符序列)-> 詞法分析(記號(hào)流)-> 語(yǔ)法分析(語(yǔ)法樹(shù))-> 語(yǔ)義分析(修改樹(shù)結(jié)構(gòu))-> 中間代碼生成(可選)-> 代碼優(yōu)化(可選)-> 目標(biāo)代碼生成(不同形式:匯編柏锄,可重定位消请,內(nèi)存形式)
這個(gè)過(guò)程中始終伴隨著符號(hào)表管理和出錯(cuò)處理嚷兔。
基本架構(gòu)
前端:語(yǔ)言結(jié)構(gòu)和意義的分析森渐; (語(yǔ)法/語(yǔ)義分析)
后端:語(yǔ)言意義處理;(代碼生成/優(yōu)化)
中間代碼:前端與后端的分界冒晰;
掃描遍數(shù)
每個(gè)階段將程序完整分析一邊的工作模式為一遍掃描同衣。
因素:軟硬件條件(內(nèi)存大小)壶运,語(yǔ)言結(jié)構(gòu)(如標(biāo)識(shí)符先聲明后引用)耐齐,編譯技術(shù)(拉鏈-回填)等。