解釋執(zhí)行和編譯執(zhí)行的區(qū)別?
更新時(shí)間:2011年09月13日 20:29:41 作者:
在說解釋執(zhí)行和編譯執(zhí)行之前先說幾個(gè)概念,需要的朋友可以參考下。
一:編譯器
編譯器是一種特殊的程序,它可以把以特定編程語言寫成的程序變?yōu)闄C(jī)器可以運(yùn)行的機(jī)器碼。我們把一個(gè)程序?qū)懞?,這時(shí)我們利用的環(huán)境是文本編輯器,這時(shí)我們把程序稱為源程序,在此以后程序員可以運(yùn)行相應(yīng)的編譯器,通過指定需要編譯的文件的名稱就可以把相應(yīng)的源文件(通過一個(gè)復(fù)雜的過程)轉(zhuǎn)化為機(jī)器碼了。
二:機(jī)器碼
機(jī)器語言(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ùn)行庫,也就是說.aspx頁面是通過CLR進(jìn)行編譯成dll文件的,因?yàn)閍spx頁面可以用C#/VB.NET/J#等多種語言編寫代碼,不管那種語言編寫的代碼都是通過CLR編譯后生成同樣的dll文件。
五:解釋執(zhí)行和編譯執(zhí)行的區(qū)別?
計(jì)算機(jī)并不能直接地接受和執(zhí)行用高級語言編寫的源程序,源程序在輸入計(jì)算機(jī)時(shí),通過"翻譯程序"翻譯成機(jī)器語言形式的目標(biāo)程序,計(jì)算機(jī)才能識別和執(zhí)行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。編譯方式是指利用事先編好的一個(gè)稱為編譯程序的機(jī)器語言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶將高級語言編寫的源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,以完成源程序要處理的運(yùn)算并取得結(jié)果。解釋方式是指源程序進(jìn)入計(jì)算機(jī)后,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯,計(jì)算機(jī)一句句執(zhí)行,并不產(chǎn)生目標(biāo)程序。
編譯器是一種特殊的程序,它可以把以特定編程語言寫成的程序變?yōu)闄C(jī)器可以運(yùn)行的機(jī)器碼。我們把一個(gè)程序?qū)懞?,這時(shí)我們利用的環(huán)境是文本編輯器,這時(shí)我們把程序稱為源程序,在此以后程序員可以運(yùn)行相應(yīng)的編譯器,通過指定需要編譯的文件的名稱就可以把相應(yīng)的源文件(通過一個(gè)復(fù)雜的過程)轉(zhuǎn)化為機(jī)器碼了。
二:機(jī)器碼
機(jī)器語言(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ùn)行庫,也就是說.aspx頁面是通過CLR進(jìn)行編譯成dll文件的,因?yàn)閍spx頁面可以用C#/VB.NET/J#等多種語言編寫代碼,不管那種語言編寫的代碼都是通過CLR編譯后生成同樣的dll文件。
五:解釋執(zhí)行和編譯執(zhí)行的區(qū)別?
計(jì)算機(jī)并不能直接地接受和執(zhí)行用高級語言編寫的源程序,源程序在輸入計(jì)算機(jī)時(shí),通過"翻譯程序"翻譯成機(jī)器語言形式的目標(biāo)程序,計(jì)算機(jī)才能識別和執(zhí)行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。編譯方式是指利用事先編好的一個(gè)稱為編譯程序的機(jī)器語言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶將高級語言編寫的源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語言表示的與之等價(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簡介
- 編譯和解釋的區(qū)別是什么
相關(guān)文章
WebStorm?發(fā)布2021.3重大更新新功能介紹
?2021年度最后一次重大更新WebStorm?2021.3來了!此更新充滿了期待已久的增強(qiáng)功能,包括對遠(yuǎn)程開發(fā)的支持、改進(jìn)的?HTML?完成、重新設(shè)計(jì)的?Deno?集成等2021-12-12
如何用Idea或者webstorm跑一個(gè)Vue項(xiàng)目(步驟詳解)
這篇文章主要介紹了如何用Idea或者webstorm跑一個(gè)Vue項(xiàng)目,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
一文教你在現(xiàn)有Vue項(xiàng)目中嵌入Blazor項(xiàng)目
目前官方只提供了angular和react倆種示例,所以本教程將來講解如何在Vue的現(xiàn)有項(xiàng)目中嵌入使用Blazor項(xiàng)目。文中的方法講解詳細(xì),感興趣的小伙伴可以了解一下2023-01-01
ChatGpt無法訪問或錯(cuò)誤碼1020的幾種解決方案
ChatGPT是一種語言模型,它被訓(xùn)練來對對話進(jìn)行建模,下面這篇文章主要給大家介紹了關(guān)于ChatGpt無法訪問或錯(cuò)誤碼1020的幾種解決方案,文中介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
網(wǎng)站統(tǒng)計(jì)中的數(shù)據(jù)收集原理及實(shí)現(xiàn)
目前主流的數(shù)據(jù)收集方式基本都是基于javascript的。本文將簡要分析這種數(shù)據(jù)收集的原理,并一步一步實(shí)際搭建一個(gè)實(shí)際的數(shù)據(jù)收集系統(tǒng)2013-09-09

