编译原理——语言处理程序
概況
程序語言是為了書寫計(jì)算機(jī)程序而人為設(shè)計(jì)的符號,用于對計(jì)算過程進(jìn)行描寫敘述、組織和推導(dǎo),程序語言分為低級語言和高級語言,低級語言包含計(jì)算機(jī)硬件能識別的由0、1組成的機(jī)器指令語言和用符號組成的指令語言匯編集合的匯編語言,高級語言是人們開發(fā)的功能更強(qiáng)、抽象級別更高的語言以支持程序設(shè)計(jì),面向各類應(yīng)用的程序語言。
?
因?yàn)橛?jì)算機(jī)僅僅能理解由0、1序列構(gòu)成的機(jī)器語言。因此高級程序語言須要翻譯,即將高級語言或匯編語言編寫的程序翻譯成某種機(jī)器語言好曾向,擔(dān)負(fù)這一任務(wù)的程序稱為“語言處理程序”。語言處理程序的基本方式為匯編、解釋和編譯。
?
匯編程序
?
用符號表示的指令稱為匯編指令,匯編指令集合稱為匯編語言。
?
匯編語言由指令語言、偽指令語句和宏指令語句構(gòu)成。指令語句又稱為機(jī)器指令語言。將指令語言匯編后能產(chǎn)生對應(yīng)的機(jī)器代碼。偽指令語句,是指示匯編源程序時完畢某些工作,通俗的說是寫給“匯編軟件”看的。不翻譯成機(jī)器碼。宏指令語句。多次反復(fù)使用的程序段叫宏,須要使用這段程序時。僅僅要使用宏名即能夠。這樣宏的引用就是宏指令語句。
?
匯編語言編寫的程序?yàn)閰R編語言程序,匯編語言程序?qū)R編語言所編寫的源程序翻譯成機(jī)器指令程序。
該工作包含兩部分,一是將匯編語言轉(zhuǎn)換成機(jī)器指令,還有一部分處理源程序中的偽指令。該工作是實(shí)現(xiàn)途徑是通過兩次掃描源程序。
?
編譯程序
編譯程序是把某種高級語言書寫的源程序翻譯成目標(biāo)語言程序。
?
編譯程序工作分為六個階段,各自是此法分析、語法分析、語義分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成這六個階段,可是在實(shí)際的編譯器中可能會將當(dāng)中的某些階段結(jié)合在一起進(jìn)行處理。
?
在邏輯上將這六個階段分為前段和后端,前段從詞法分析到中間代碼生成4個階段,后端包含代碼優(yōu)化和目標(biāo)代碼生成這兩個階段,前段和后端把編譯器分成了與機(jī)器無關(guān)編程語言有關(guān)和機(jī)器有關(guān)編程語言無關(guān)兩部分。
?
解釋程序
解釋程序能夠直接將源程序解釋運(yùn)行。也能夠?qū)⒃闯绦蚍g成某種中間代碼形式。然后對中間代碼進(jìn)行解釋來運(yùn)行。
?
解釋程序的詞法、語法和語義與編譯程序基本同樣,只是不同的是解釋程序不產(chǎn)生目標(biāo)程序,執(zhí)行時候須要源程序和解釋程序參與。
?
編譯與解釋比較
編譯方式下。機(jī)器上僅僅執(zhí)行目標(biāo)程序,源程序和編譯程序不參與目標(biāo)程序執(zhí)行。解釋方式下。源程序和解釋程序要參與到程序執(zhí)行過程中。執(zhí)行程序的控制權(quán)在解釋程序。
?
編譯較解釋效率高,解釋方式下執(zhí)行程序,須要重復(fù)多次掃描源程序,而且須要很多其它的內(nèi)存。
編譯方式進(jìn)行目標(biāo)代碼生成并優(yōu)化在時間和空間上都比解釋程序耗費(fèi)多,可是編譯程序的最大的優(yōu)勢是一次編譯完畢多次執(zhí)行。所以總體效率比解釋高。
轉(zhuǎn)載于:https://www.cnblogs.com/hrhguanli/p/5085071.html
總結(jié)
以上是生活随笔為你收集整理的编译原理——语言处理程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cro概念股有哪些 关注这些上市公司就
- 下一篇: 汽车电子板块有哪些股票 A股的投资者们都