解釋執(zhí)行和編譯執(zhí)行的區(qū)別?
更新時(shí)間:2011年09月13日 20:29:41 作者:
在說(shuō)解釋執(zhí)行和編譯執(zhí)行之前先說(shuō)幾個(gè)概念,需要的朋友可以參考下。
一:編譯器
編譯器是一種特殊的程序,它可以把以特定編程語(yǔ)言寫成的程序變?yōu)闄C(jī)器可以運(yùn)行的機(jī)器碼。我們把一個(gè)程序?qū)懞?,這時(shí)我們利用的環(huán)境是文本編輯器,這時(shí)我們把程序稱為源程序,在此以后程序員可以運(yùn)行相應(yīng)的編譯器,通過(guò)指定需要編譯的文件的名稱就可以把相應(yīng)的源文件(通過(guò)一個(gè)復(fù)雜的過(guò)程)轉(zhuǎn)化為機(jī)器碼了。
二:機(jī)器碼
機(jī)器語(yǔ)言(machine language)是一種指令集的體系。這種指令集,稱機(jī)器碼(machine code),是電腦的CPU可直接解讀的。
三:目標(biāo)程序
目標(biāo)程序又稱“目的程序”。 由編譯程序?qū)⒃闯绦蚓幾g成與之等價(jià)的由機(jī)器碼構(gòu)成的,計(jì)算機(jī)能直接運(yùn)行的程序,該程序叫目標(biāo)程序。
四:.NET中的CLR是什么?
它是ASP.NET中的公共語(yǔ)言運(yùn)行庫(kù),也就是說(shuō).aspx頁(yè)面是通過(guò)CLR進(jìn)行編譯成dll文件的,因?yàn)閍spx頁(yè)面可以用C#/VB.NET/J#等多種語(yǔ)言編寫代碼,不管那種語(yǔ)言編寫的代碼都是通過(guò)CLR編譯后生成同樣的dll文件。
五:解釋執(zhí)行和編譯執(zhí)行的區(qū)別?
計(jì)算機(jī)并不能直接地接受和執(zhí)行用高級(jí)語(yǔ)言編寫的源程序,源程序在輸入計(jì)算機(jī)時(shí),通過(guò)"翻譯程序"翻譯成機(jī)器語(yǔ)言形式的目標(biāo)程序,計(jì)算機(jī)才能識(shí)別和執(zhí)行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。編譯方式是指利用事先編好的一個(gè)稱為編譯程序的機(jī)器語(yǔ)言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶將高級(jí)語(yǔ)言編寫的源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語(yǔ)言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,以完成源程序要處理的運(yùn)算并取得結(jié)果。解釋方式是指源程序進(jìn)入計(jì)算機(jī)后,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯,計(jì)算機(jī)一句句執(zhí)行,并不產(chǎn)生目標(biāo)程序。
編譯器是一種特殊的程序,它可以把以特定編程語(yǔ)言寫成的程序變?yōu)闄C(jī)器可以運(yùn)行的機(jī)器碼。我們把一個(gè)程序?qū)懞?,這時(shí)我們利用的環(huán)境是文本編輯器,這時(shí)我們把程序稱為源程序,在此以后程序員可以運(yùn)行相應(yīng)的編譯器,通過(guò)指定需要編譯的文件的名稱就可以把相應(yīng)的源文件(通過(guò)一個(gè)復(fù)雜的過(guò)程)轉(zhuǎn)化為機(jī)器碼了。
二:機(jī)器碼
機(jī)器語(yǔ)言(machine language)是一種指令集的體系。這種指令集,稱機(jī)器碼(machine code),是電腦的CPU可直接解讀的。
三:目標(biāo)程序
目標(biāo)程序又稱“目的程序”。 由編譯程序?qū)⒃闯绦蚓幾g成與之等價(jià)的由機(jī)器碼構(gòu)成的,計(jì)算機(jī)能直接運(yùn)行的程序,該程序叫目標(biāo)程序。
四:.NET中的CLR是什么?
它是ASP.NET中的公共語(yǔ)言運(yùn)行庫(kù),也就是說(shuō).aspx頁(yè)面是通過(guò)CLR進(jìn)行編譯成dll文件的,因?yàn)閍spx頁(yè)面可以用C#/VB.NET/J#等多種語(yǔ)言編寫代碼,不管那種語(yǔ)言編寫的代碼都是通過(guò)CLR編譯后生成同樣的dll文件。
五:解釋執(zhí)行和編譯執(zhí)行的區(qū)別?
計(jì)算機(jī)并不能直接地接受和執(zhí)行用高級(jí)語(yǔ)言編寫的源程序,源程序在輸入計(jì)算機(jī)時(shí),通過(guò)"翻譯程序"翻譯成機(jī)器語(yǔ)言形式的目標(biāo)程序,計(jì)算機(jī)才能識(shí)別和執(zhí)行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。編譯方式是指利用事先編好的一個(gè)稱為編譯程序的機(jī)器語(yǔ)言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶將高級(jí)語(yǔ)言編寫的源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語(yǔ)言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,以完成源程序要處理的運(yùn)算并取得結(jié)果。解釋方式是指源程序進(jìn)入計(jì)算機(jī)后,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯,計(jì)算機(jī)一句句執(zhí)行,并不產(chǎn)生目標(biāo)程序。
您可能感興趣的文章:
- 在Mac OS上自行編譯安裝Apache服務(wù)器和PHP解釋器
- windows命令行中java和javac、javap使用詳解(java編譯命令)
- java編譯時(shí)出現(xiàn)使用了未經(jīng)檢查或不安全的操作解決方法
- android apk反編譯到j(luò)ava源碼的實(shí)現(xiàn)方法
- Eclipse不自動(dòng)編譯java文件的終極解決方法
- java教程之java程序編譯運(yùn)行圖解(java程序運(yùn)行)
- Java 版的 Ruby 解釋器 JRuby 1.7.14 發(fā)布
- JAVA設(shè)計(jì)模式之解釋器模式詳解
- Java版的Ruby解釋器 JRuby簡(jiǎn)介
- 編譯和解釋的區(qū)別是什么
相關(guān)文章
利用ChatGPT與MindShow制作一個(gè)PPT的方法詳解
PPT制作是商務(wù)、教育和各種場(chǎng)合演講的重要組成部分,然而,很多人會(huì)花費(fèi)大量時(shí)間和精力在內(nèi)容生成和視覺(jué)設(shè)計(jì)方面,為了解決這個(gè)問(wèn)題,我們可以利用兩個(gè)強(qiáng)大的工具——ChatGPT和MindShow,來(lái)提高制作PPT的效率,感興趣的同學(xué)可以參考閱讀2023-06-06大數(shù)據(jù)就業(yè)的三大方向和最熱門十大崗位【推薦】
這篇文章主要介紹了大數(shù)據(jù)就業(yè)的三大方向和最熱門十大崗位,需要的朋友可以參考下2019-06-06gliffy-confluence-plugin-9.1.2插件教程詳解
這篇文章主要介紹了gliffy-confluence-plugin-9.1.2破解教程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02關(guān)于idea+centos7+zookeeper報(bào)錯(cuò)connectionloss,timeout問(wèn)題
這篇文章主要介紹了idea+centos7+zookeeper報(bào)錯(cuò)connectionloss,timeout問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01UUencode 編碼,UU編碼介紹、UUencode編碼轉(zhuǎn)換原理與算法
這篇文章主要介紹了UUencode 編碼,UU編碼介紹、UUencode編碼轉(zhuǎn)換原理與算法,需要的朋友可以參考下2016-06-06chatgpt成功解決Access denied 1020錯(cuò)誤問(wèn)題(最新推薦)
從前兩天網(wǎng)上開始一直開著的chatgpt網(wǎng)頁(yè)突然打不開了,提示1020錯(cuò)誤,嘗試換了不同代理軟件或者代理地點(diǎn)仍然無(wú)法解決,這篇文章主要介紹了chatgpt成功解決Access denied 1020錯(cuò)誤,需要的朋友可以參考下2023-05-05git工作區(qū)暫存區(qū)與版本庫(kù)基本理解及提交流程全解
這篇文章主要為大家介紹了git工作區(qū)暫存區(qū)與版本庫(kù)基本理解及提交流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-04-04