當前位置:首頁 » 編程軟體 » 高級程序語言編譯時轉化成什麼

高級程序語言編譯時轉化成什麼

發布時間: 2022-04-29 13:01:59

1. 把高級語言編寫的源程序轉換為可執行程序的過程叫什麼

高級語言轉換為可執行程序的過程叫編譯,主要有以下幾個過程:
1、預編譯,處理頭文件及查錯(語法錯誤);
2、編譯,把預處理過的文件編譯成目標代碼;
3、鏈接,把所有的目標代碼鏈接成可執行文件。

2. 能將高級語言源程序轉換成目標程序的是( )。

熱心網友
B)解釋程序 C)編譯程序
這兩個都是正確的,以下出自 唐朔飛 老師的書,計算機組成原理第2版 的內容,
第4頁上方:
通常由用戶用高級語言編寫程序(稱為源程序),然後將它和數據一起送入計算機內,再由計算機將其翻譯成機器能識別的機器語言程序(稱為目標程序),機器自動運行該機器語言程序,並....
第4頁中部:
機器語言(用0、1代碼表示的語言),用戶必須用二進制代碼(0、1)來編寫程序(即機器語言程序)
第5頁的下面:
通常,將高級語言程序翻譯成機器語言程序的軟體稱為翻譯程序。翻譯程序有兩種:一種是編譯程序,另一種是解釋程序。
編譯程序是將用戶編寫的高級語言程序(源程序)的全部語句一次全部翻譯成機器語言程序,而後再執行機器語言程序。因此只要源程序不變,就無須再次進行翻譯。
解釋程序是將源程序的一條語句翻譯成對應於機器語言的一條語句,並且立即執行這條語句,接著翻譯源程序的下一條語句,並執行這條語句,如此重復直至完成源程序的全部翻譯任務。它的特點是翻譯一次執行一次,即使下一次重復執行該語句時,也必須重新翻譯。

你的問題是,能將高級語言編寫的源程序轉換為目標程序的是什麼?
我自己的總結:
編譯程序 和 解釋程序 雖然做事方式上有很大差別,但是做的事都是將源程序轉換成目標程序,只不過編譯是編譯一次,只要源程序無變化,就無須再次編譯,編譯得到內容永遠留下來了。解釋雖然內容不會留下來,但是每次執行都進行翻譯,所以根據你的題意,轉換為目標程序的 兩者都是。

至於 編輯程序,那太多了,什麼 視頻編輯程序、圖片編輯程序、音樂編輯程序、記事本也算,文本編輯器什麼的,總之就是做東西的,這個編輯程序不算什麼名詞,也沒有什麼概念,意義也不嚴格。
還有 鏈接程序,我不知道這個是什麼,這個不出名,可能是因為我不會C,和C有關么?我想這個也沒什麼意義吧。

3. 高級編程語言也要編譯成匯編語言,不同的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對應的匯編碼及含義

4. 計算機程序中,用高級語言編寫的程序經編譯後產生的程序叫什麼

高級語言編寫的代碼經過編譯後就是可執行程序,高級語言到可執行文件主要有七個個過程。
高級語言編譯的七個過程:
預處理,詞法分析,語法分析,語義分析,中間代碼產生,代碼優化,目標代碼產生。
下面對這幾個過程詳細講解:
1、預處理:
對原文件進行預處理,比如頭文件,導入的模塊,宏定義等進行處理;
2、詞法分析:
詞法分析是第一階段,這個階段的任務是從左到右一個字元一個字元的讀入源程序,對構成源程序的字元流進行掃描和分解,從而識別出一個個單詞。
3、語法分析:
語法分析的任務是在詞法分析的基礎上將單詞程序分解成各位語法短語。
4、語義分析:
語義分析是審查源程序有無語義錯誤,為代碼生成階段收集類型信息。
5、中間代碼生成:
在進行了上述的語法分析階段等工作之後,有的編譯程序將源程序變成一種內部表示形式,這種內部表示形式叫做中間語言或中間代碼。中間代碼生成階段要在語法和語義分析的基礎上,將源程序進一步變為一種內部表示形式,它通常易於生成、易於翻譯成目標代碼,不過不是所有的語言都必須經過這一步。
6、代碼優化:
這一階段的任務是對前一階段產生的中間代碼進行變換或進行改造,目的是使生成的目標代碼更為高效。代碼優化階段,對前階段生成的中間代碼進行變換或改造,以便生成目標代碼時更加節省時間和空間,這一工作也不是必須的。
7、目標代碼生成:
這一階段的任務是吧中間代碼變換成特定機器上的絕對指令代碼或可重定位的指令代碼或匯編指令代碼。

5. 用高級語言編寫的源程序,經編譯後產生的是

目標程序。

目標程序,又稱為「目的程序」,為源程序經編譯可直接被計算機運行的機器碼集合,在計算機文件上以.obj作擴展名----由語言處理程序(匯編程序,編譯程序,解釋程序)將源程序處理(匯編,編譯,解釋)成與之等價的由機器碼構成的,計算機能夠直接運行的程序,該程序叫目標程序。

目標代碼盡管已經是機器指令,但是還不能運行,因為目標程序還沒有解決函數調用問題,需要將各個目標程序與庫函數連接,才能形成完整的可執行程序。

(5)高級程序語言編譯時轉化成什麼擴展閱讀

計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過"翻譯程序"翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。

編譯方式是指利用事先編好的一個稱為編譯程序的機器語言程序,作為系統軟體存放在計算機內,當用戶將高級語言編寫的源程序輸入計算機後,編譯程序便把源程序整個地翻譯成用機器語言表示的與之等價的目標程序。

然後計算機再執行該目標程序,以完成源程序要處理的運算並取得結果。解釋方式是指源程序進入計算機後,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯。

計算機一句句執行,並不產生目標程序。如PASCAL、FORTRAN、COBOL等高級語言執行編譯方式;BASIC語言則以執行解釋方式為主;而PASCAL、C語言是能書寫編譯程序的高級程序設計語言。

6. 將用高級語言編寫的源程序轉換成等價的目標程序的過程,稱為

(總體上說)稱為編譯。

高級語言如果指的是C的話:

C語言詳細編譯過程分成四個步驟:

1. 預處理(preprocessor):將存儲在不同文件的源程序(.c文件)聚合在一起,將語言中的宏進行替換,比如預處理指令#include,讓編譯器打開包含的文件,將其程序與其他程序呆在一起.生成.i文件。

2.編譯:預處理源程序(.i文件)變為匯編程序(.s文件)

3.匯編(assember):將匯編程序轉換為可重定位(relocatable: 就是說文件裡面的代碼段和數據的地址還沒有最終確定)的機器代碼,這一步產生目標文件(.obj或.o文件)。

4.鏈接(linker)/載入(loader): 鏈接就是把目標文件和其他分別進行編譯生成的程序模塊(如果有的話)及系統提供的標准庫函數連接在一起,生成可運行的可執行文件的過程,載入時將各代碼與數據定位到內存合適的位置,這一步產生最終的可執行文件。

7. 能將高級語言編寫的源程序轉換為目標程序的是什麼

把源程序轉換為目標程序的過程叫編譯
所以能將高級語言編寫的源程序轉換為目標程序的是相應的高級語言編譯程序
故答案為C—編譯程序
拓展資料:
編譯程序也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
參考資料:
編譯程序_網路

8. 用高級程序語言編寫的程序要轉化成等價的可執行程序

能將高級語言編寫的源程序轉換為目標程序的是--相應的高級語言編譯程序。
編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。

9. 用高級程序設計語言編寫的程序,要轉換成等價的可執行程序,必須經過____。

用高級程序設計語言編寫的程序,要轉換成等價的可執行程序,必須經過編譯和連接。在WINDOWS系統中的執行文件一般都是.EXE文件。在windows中,用戶在命令提示符輸入不帶 .exe 擴展名的文件名後按 Enter 鍵或者點雙擊就能運行可執行程序。

linux不像MS-DOS/windows一樣靠文件後綴名來判斷是否可執行,而是靠文件屬性來判斷。每個文件專門有個屬性來表示文件是否可執行,對於腳本之類的程序,文件第一行指明執行本腳本的程序位置。

(9)高級程序語言編譯時轉化成什麼擴展閱讀

通過在文件頭添加ASCII字元串「LX」來標識。運行在OS/2 2.0以及更高版本中,也可用於某些DOS擴展。

32位X86可執行文件這是最復雜也最流行的可執行文件格式,通過在文件頭添加ASCII字元串「PE」來標識。它主要運行於Windows 95和Windows NT以及更高版本的Windows中,也可在BeOS R3中運行。

64位X86-64可執行文件與前一種類似,但使用支持64位的X86cpu(64根地址匯流排)。因此它僅能在64位的Windows系統中運行,譬如Windows 7 64位和 Windows10 X64。

熱點內容
阿里雲上傳慢 發布:2025-04-23 01:04:10 瀏覽:584
我爸電腦配置給別人看沒什麼事吧 發布:2025-04-23 00:58:54 瀏覽:721
大學編程課程 發布:2025-04-23 00:48:55 瀏覽:469
伺服器的內網ip有什麼用 發布:2025-04-23 00:46:40 瀏覽:958
誅仙3需要什麼配置 發布:2025-04-23 00:29:49 瀏覽:665
什麼是編譯錯誤參數不可選 發布:2025-04-23 00:23:06 瀏覽:520
libx264編譯 發布:2025-04-23 00:13:37 瀏覽:222
access的web資料庫 發布:2025-04-23 00:08:29 瀏覽:46
安卓上面的谷歌搜索框怎麼去除 發布:2025-04-23 00:07:27 瀏覽:171
c判斷文件夾是否存在 發布:2025-04-22 23:56:36 瀏覽:943