當前位置:首頁 » 編程軟體 » 高級語言使用相同的編譯程序嗎

高級語言使用相同的編譯程序嗎

發布時間: 2022-07-21 10:36:25

A. 程序通常是用高級語言編寫源程序

1.計算機程序通常是用高級語言編寫源程序,程序包含數據結構,演算法存儲方式 編譯等,經過語言翻譯程序(解釋程序和編譯程序)轉換成機器接受的指令。
2.程序可按其設計目的的不同,分為兩類:一類是系統程序,它是為了使用方便和充分發揮計算機系統效能而設計的程序,通常由計算機製造廠商或專業軟體公司設計,如操作系統、編譯程序等;
4.另一類是應用程序,它是為解決用戶特定問題而設計的程序,通常由專業軟體公司或用戶自己設計,如賬務處理程序、文字處理程序等。

B. 為什麼說用高級語言寫的程序,執行效率沒有匯編高這些高級語言不都是要先編譯成匯編語言嗎

高級語言主要是給人看的,即使實現的目的完全相同,不同的程序員寫出來的高級語言都很可能會看起來完全不同,因此編譯器在把高級語言編譯為機器碼的過程中,就難免會產生很多的冗餘代碼,比如在匯編語言中從a點到b點能夠一步到達的,在高級語言編譯的代碼中卻有可能滿世界亂轉把整個字母表都走一遭後才到達b,盡管結果看起來是一樣的,但效率就不可同日而語了。
當然了,像js之類的腳本語言也是高級語言啊,它們是解析執行的,效率當然更加沒有匯編語言高了。

C. 為什麼高級程序語言需要編譯程序

計算機語言是人與計算機之間交流的媒介,其種類非常多,但大體上分為機器語言、匯編語言、高級語言三大類。

計算機不能直接理解高級語言,只能直接理解機器語言,因此必須將高級語言翻譯成機器語言,翻譯的過程分為兩種,一種是解釋,一種是編譯。兩種方式的區別在於翻譯的時間,編譯是在程序運行之前,需要一個專門的過程,將程序編譯成為機器語言的文件,比如EXE文件,以後要運行的話就不用再重新編譯了,直接使用之前的編譯結果就行了,因為只翻譯一次,運行時不需要再翻譯,所以編譯型語言的程序執行效率高。

解釋性語言則不同,解釋性語言不需要編譯,其程序在運行時才翻譯,每個語句都是執行時才翻譯。這樣解釋性語言每執行一次就要翻譯一次,其執行效率則相對較低。

另外,編譯型語言以二進制形式保存,源代碼不可見;解釋性語言以代碼形式保存。

D. 每一種高級語言都有它對應的編譯程序這句話是不是對的

這句話是錯的,並不是所有的高級程序設計語言都是編譯執行的,有些高級程序設計語言就是解釋執行的。
這里的關鍵是理解編譯執行和解釋執行的不同,編譯執行是由編譯程序編譯鏈接之後,生成可執行文件,以後只要執行可執行文件就好了;而解釋執行,是由解釋器來執行代碼的,每次執行都是解釋執行代碼的過程。解釋執行的典型高級程序設計語言就是java,另外還有VB等腳本語言。

E. 高級語言程序的兩種執行方式是什麼

高級語言的兩種執行方式

一、 解釋方式

所謂解釋方式就是從源程序的第一條語句開始,對每條語句都先解釋,然後馬上執行剛解釋出的這些指令,再對下一條語句做同樣的處理,直到所有語句都處理完。

解釋方式有一個特點,就是翻譯出來的計算機指令並不會存檔(不會生成目標代碼)。執行完這些二進制指令就丟失了。因此,解釋型語言沒執行一次都要重新翻譯並執行。

二、 編譯方式

所謂編譯方式,首先通過編譯程序把整個源程序中的所有語句翻譯為匯編語言源程序,然後再通過匯編程序把匯編語言源程序翻譯為機器語言的機器指令,形成.exe文件(可執行文件),.exe文件是可以直接運行的文件。

(5)高級語言使用相同的編譯程序嗎擴展閱讀

1、C、C++、Java、python等高級語言就是為了克服匯編語言的可移植性差,擺脫硬體底層的設計,用人的思維來編寫程序而設計的。高級語言表達方式接近人類的語言,描述問題的能力強,通用性,可讀性都很高。

2、所有的計算機語言,要想在計算機上運行都需要轉變為機器語言(只有0和1組成的)才能被執行。高級語言通過編譯程序(編譯器)翻譯成機器語言,匯編語言通過匯編程序(匯編器)翻譯為機器語言。

F. 高級編程語言也要編譯成匯編語言,不同的cpu匯編語言不一樣,那會編譯成那種匯編語言呢

高級語言一般最終不是編譯成匯編語言而是機器語言,而像C#這類語言編譯後為公共語言,不是機器碼,運行時公共語言代碼由NET框架負責進一步即時翻譯即時執行為機器指令。只有C++這類語言編譯後為CPU可以直接執行的機器碼。


附圖是VS2019中C++語言的一段調試時的反匯編窗口,其中白字是C++源代碼,下面是對應的匯編碼,匯編行左列為內存地址,中間是對應的機器指令和數據(內存中的實際值),右側是對應的匯編碼。

比如,定義整數變數a並賦值1的語句,被編譯器編譯成C7 45 F8 01 00 00 00 這樣幾個位元組,其中C7為匯編碼中的MOV指令,可以操作16位寄存器和內存以及立即數,45 F8 是當前命名空間中變數地址,即變數a的地址(F845),而01 00 00 00 為32位寬度的數值1(內存排列順序是前低後高)。也就是說機器語言的指令格式為:指令代碼,地址,數據,當然根據不同指令,有時候地址和數據是不需要的。而右側 MOV dword ptr[a],1 是指令助記符,也就是匯編指令,而用匯編指令編寫的程序也是需要編譯成機器指令的。


指令C7對應的匯編碼及含義

G. 用於高級語言的編譯程序有哪兩種

用於高級語言的編譯程序有兩種:編譯程序和鏈接程序。
以C語言為例,編譯器是cc,可能鏈接程序就是link。
二者作用是不同的,編譯器是把源程序翻譯成符號語言,鏈接程序把來自不同源文件的多個程序整合起來,形成最終的可執行程序。
C++的編譯系統沿用了C語言。其他語種,如PASCAL,DELPHI,C#,OBJECT-C,本質上沒發生變化
高級語言本身分成兩類,編譯型和解釋性的,編譯型的就是上面的類型,解釋型的,如BASIC,JAVA,
PHP,
PYTHON等,是不需要編譯的,可以直接根據源代碼(或中間代碼)直接翻譯到操作系統上。

H. 高級語言的編譯過程,經過哪幾個步驟

開發C程序有四個步驟:編輯、編譯、連接和運行。

任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。

1、預處理:導入源程序並保存(C文件)。

2、編譯:將源程序轉換為目標文件(Obj文件)。

3、鏈接:將目標文件生成為可執行文件(EXE文件)。

4、運行:執行,獲取運行結果的EXE文件。

(8)高級語言使用相同的編譯程序嗎擴展閱讀:

將C語言代碼分為程序的幾個階段:

1、首先,對源代碼文件進行測試。以及相關的頭文件,比如Stdio。H.CPP預處理為。我的文件。預編譯。該文件不包含任何宏定義,因為所有宏都已展開,且包含的文件已插入。我提起。

2、編譯過程是對預處理後的文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程通常是整個程序的核心部分,也是最復雜的過程之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可運行的可執行程序。也就是說,您需要鏈接到大量文件以獲得最終可執行文件「a.out」。

4、在鏈接過程中,其他目標文件中定義的函數調用指令需要重新調整,而其他目標文件中定義的變數也存在同樣的問題。

I. 使用高級語言編寫的程序稱為

高級語言(High-levelprogramming language)相對於機器語言(machine language,是一種指令集的體系。這種指令集,稱機器碼(machine code),是電腦的CPU可直接解讀的數據)而言。是高度封裝了的編程語言,與低級語言相對。它是以人類的日常語言為基礎的一種編程語言,使用一般人易於接受的文字來表示(例如漢字、不規則英文或其他外語),從而使程序編寫員編寫更容易,亦有較高的可讀性,以方便對電腦認知較淺的人亦可以大概明白其內容。由於早期電腦業的發展主要在美國,因此一般的高級語言都是以英語為藍本。在1980年代,當東亞地區開始使用電腦時,在日本、台灣及中國大陸都曾嘗試開發用各自地方語言編寫的高級語言,當中主要都是改編BASIC或專用於資料庫數據訪問的語言,但是隨著編程者的外語能力提升,現時的有關開發很少。
計算機語言具有高級語言和低級語言之分。而高級語言又主要是相對於匯編語言而言的,它是較接近自然語言和數學公式的編程,基本脫離了機器的硬體系統,用人們更易理解的方式編寫程序。編寫的程序稱之為源程序。

高級語言並不是特指的某一種具體的語言,而是包括很多編程語言,如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易語言,中文版的C語言習語言等等,這些語言的語法、命令格式都不相同。

高級語言
低級語言分機器語言(二進制語言)和匯編語言(符號語言),這兩種語言都是面向機器的語言,和具體機器的指令系統密切相關。機器語言用指令代碼編寫程序,而符號語言用指令助記符來編寫程序。

高級語言與計算機的硬體結構及指令系統無關,它有更強的表達能力,可方便地表示數據的運算和程序的控制結構,能更好的描述各種演算法,而且容易學習掌握。但高級語言編譯生成的程序代碼一般比用匯編程序語言設計的程序代碼要長,執行的速度也慢。所以匯編語言適合編寫一些對速度和代碼長度要求高的程序和直接控制硬體的程序。高級語言、匯編語言和機器語言都是用於編寫計算機程序的語言。

高級語言程序「看不見」機器的硬體結構,不能用於編寫直接訪問機器硬體資源的系統軟體或設備控制軟體。為此,一些高級語言提供了與匯編語言之間的調用介面。用匯編語言編寫的程序,可作為高級語言的一個外部過程或函數,利用堆棧來傳遞參數或參數的地址。

J. 不同語言的程序編譯之後一樣嗎

肯定不是一模一樣的
但是運行的結果是一樣的
只要你的高級語言的演算法和實現細節是一樣的
能反編譯,但只能到匯編語言,不可能到高級語言
因為機器碼和匯編是一一對應的
但是,不同的高級語言有可能對應相同的低級語言
所以不能翻譯成高級語言
所謂的0

1
其實是有電流,無電流的意思
因為電子計算機實際上是一個復雜的電路

熱點內容
微信娛樂源碼 發布:2025-02-06 21:34:53 瀏覽:529
編譯翻譯運行 發布:2025-02-06 21:05:20 瀏覽:200
安卓源碼版本 發布:2025-02-06 20:51:34 瀏覽:432
安卓系統網路播放器哪個好 發布:2025-02-06 20:42:02 瀏覽:818
頭條緩存的視頻格式 發布:2025-02-06 20:32:18 瀏覽:116
ftp不顯示文件夾 發布:2025-02-06 20:30:37 瀏覽:127
蘋果手機解壓怎麼打開 發布:2025-02-06 20:29:35 瀏覽:476
單片機程序存儲器 發布:2025-02-06 20:29:31 瀏覽:209
串的c語言 發布:2025-02-06 20:25:44 瀏覽:750
編程函數總結 發布:2025-02-06 20:09:11 瀏覽:317