匯編語言有哪兩種類型 編譯程序和匯編程序有什么不同?
編譯程序和匯編程序有什么不同?用匯編語言或高級語言編寫的程序必須先發(fā)送到計算機(jī)并轉(zhuǎn)換成用機(jī)器語言表示的目標(biāo)程序(這個過程是編譯),然后才能由計算機(jī)執(zhí)行。執(zhí)行轉(zhuǎn)換過程的程序稱為編譯器。匯編程序是尚未編譯
編譯程序和匯編程序有什么不同?
用匯編語言或高級語言編寫的程序必須先發(fā)送到計算機(jī)并轉(zhuǎn)換成用機(jī)器語言表示的目標(biāo)程序(這個過程是編譯),然后才能由計算機(jī)執(zhí)行。執(zhí)行轉(zhuǎn)換過程的程序稱為編譯器。匯編程序是尚未編譯的匯編語言的源文件。
編譯器轉(zhuǎn)換后稱為目標(biāo)程序,即機(jī)器語言。
編譯器有三種類型:匯編程序、解釋器和編譯器。匯編編譯器是將匯編語言編寫的程序按一對一的對應(yīng)關(guān)系轉(zhuǎn)換成機(jī)器語言表達(dá)的程序。解釋編譯器將高級語言程序的語句解釋為一組機(jī)器語言指令,然后立即執(zhí)行它們。執(zhí)行之后,需要下一組語句來解釋和執(zhí)行,依此類推,直到程序完成。使用解釋式編譯器,雖然執(zhí)行速度很慢,但可以實(shí)現(xiàn)人機(jī)對話,隨時修改高級語言的程序。基礎(chǔ)語言是一種解釋性高級語言。編譯器將用高級語言編寫的程序一次翻譯成機(jī)器語言,過程非???。在此過程中,不能修改人機(jī)對話。FORTRAN語言是一種編譯的高級語言。
編譯型語言和解釋型語言各自的優(yōu)缺點(diǎn)是什么?
1. 在執(zhí)行程序之前,有一個單獨(dú)的編譯過程將程序翻譯成機(jī)器語言。以后,當(dāng)程序被執(zhí)行時,就不需要翻譯它了。
2. 解釋語言是在程序運(yùn)行時將程序翻譯成機(jī)器語言,因此其運(yùn)行速度比編譯語言慢。
3. C/C等是編譯語言,Java、C等是解釋語言。
4. 雖然Java程序在運(yùn)行之前有一個編譯過程,但它不是編譯成機(jī)器語言,而是編譯成字節(jié)碼(可以理解為中間語言)。在運(yùn)行時,字節(jié)碼被JVM翻譯成機(jī)器語言。
5. 腳本語言一般都有相應(yīng)的腳本引擎來解釋和執(zhí)行。他們通常需要一個翻譯來運(yùn)行。JavaScript、ASP、PHP、Perl和Nuva都是腳本語言。經(jīng)過C/C編譯和鏈接,可以形成一個獨(dú)立的EXE文件。
不同語言的編譯原理一樣嗎,為什么?
不一樣。編程語言通常分為兩類:編譯的和解釋的。正如您所提到的,JS是解釋的,前兩個是編譯的。即使是同一個編譯或解釋類型,也有細(xì)分,但這是一個很長的演講,所以我就不談了。
匯編語言有哪幾種類型?
匯編語言是匯編語言。
我從沒聽說過兩種編譯。
您所說的是編譯時,有兩種語言:編譯器和解釋器。這是一種高級語言。