高級語言編譯機器程序
① 高級語言程序的兩種執行方式是什麼
高級語言的兩種執行方式
一、 解釋方式
所謂解釋方式就是從源程序的第一條語句開始,對每條語句禪扒都先解釋,然後馬上執行剛解釋出的這些指令,再對下一條語句做同樣的處理,直到所有語句都處理完。
解釋方式有一個特點,就是翻譯出來的計算機指令並不會存檔(不會生成目標代碼)。執行完這些二進制指令就丟失了。因此,解釋型語言沒執行一次都要重新翻譯斗襲核並執行。
二、 編譯方式
所謂編譯方空掘式,首先通過編譯程序把整個源程序中的所有語句翻譯為匯編語言源程序,然後再通過匯編程序把匯編語言源程序翻譯為機器語言的機器指令,形成.exe文件(可執行文件),.exe文件是可以直接運行的文件。
(1)高級語言編譯機器程序擴展閱讀
1、C、C++、Java、Python等高級語言就是為了克服匯編語言的可移植性差,擺脫硬體底層的設計,用人的思維來編寫程序而設計的。高級語言表達方式接近人類的語言,描述問題的能力強,通用性,可讀性都很高。
2、所有的計算機語言,要想在計算機上運行都需要轉變為機器語言(只有0和1組成的)才能被執行。高級語言通過編譯程序(編譯器)翻譯成機器語言,匯編語言通過匯編程序(匯編器)翻譯為機器語言。
② 用高級語言編寫的程序必須經過( )翻譯成機器語言程序,計算機才能執行。急急急急!
編譯程序。
編譯程序的最終跡嘩目標是將源程序編譯成目標程序。編譯程序是把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。
編譯程序屬於採用生成性實現途徑實現的翻譯程序,以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運姿枝行行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
(2)高級語言編譯機器程序擴展閱讀:
注意事項:
不要只為了解決問題而隨意把代碼都寫在Main()函數里。
一個函數應該只解決一個功能或問題。
單個函數的代碼行數最好不要超過20行。
要給每一個函數起一個好名稱,做到見名知義的程度方便對程序整體的快速理解。
要給函數作注意語句,寫代碼不只是給用戶看的,一個好的代碼也應該讓別人能容易理解。
③ 用高級語言編寫的源程序,經編譯後產生的是
目標程序。
目標程序,又稱為「目的程序」,為源程序經編譯可直接被計算機運行的機如岩伏器碼集合,在計算機文件上以.obj作擴展名----由語言處理程序(匯編程序,編譯程序,解釋程序)將源程序處理(匯編,編譯,解釋)成與之等價的由機器碼構成的,計算機能夠直接運行的程序,該程序叫目標程序。
目標代碼盡管已經是機渣攜器指令,但是還不能運行,因為目標程序還沒有解決函數調用問題,需要將各個目標程序與庫函數連接,才能形成完整的可執行程序。
(3)高級語言編譯機器程序擴展閱讀
計算機並不能直接地接受和執行用高級語言編寫的源程序,源程序在輸入計算機時,通過"翻譯程序"翻譯成機器語言形式的目標程序,計算機才能識別和執行。這種"翻譯"通常有兩種方式,即編譯方式和解釋方式。
編譯方式是指利用事先編好的一個稱為編譯程序的機器語言程序,作為系統軟體存放在計算機內,當用戶將高級語言編寫的源程序輸入計算機後,編譯程序便把源程序整個地翻譯成用機器棗扮語言表示的與之等價的目標程序。
然後計算機再執行該目標程序,以完成源程序要處理的運算並取得結果。解釋方式是指源程序進入計算機後,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯。
計算機一句句執行,並不產生目標程序。如PASCAL、FORTRAN、COBOL等高級語言執行編譯方式;BASIC語言則以執行解釋方式為主;而PASCAL、C語言是能書寫編譯程序的高級程序設計語言。
④ 計算機只懂機器語言,而現在人們一般用高級語言編寫程序,將高級語言變為機器語言序需經過( )。
【答案】:A
計算機只懂機器語言,而現罩判在人們一般用高級語言編寫程序,將高級語言變為機器語言程序需經過「編譯物衫改」和「解釋塌核」兩種方法。
⑤ 計算機程序中,用高級語言編寫的程序經編譯後產生的程序叫什麼
高級語言編寫的代碼經過編譯後就是可執行程序,高級語言到可執行文件主要有七個個過程。
高級語言編譯的七個過程:
預處理,詞法分析,語法分析,語義分析,中間代碼產生,代碼優化,目標代碼產生。
下面對這幾個過程詳細講解:
1、預處理:
對原文件進行預處理,比如頭文件,導入的模塊,宏定義等進行處理;
2、詞法分析:
詞法分析是第一階段,這個階段的任務是從左到右一個字元一個字元的讀入源程序,對構成源程序的字元流進行掃描和分解,從而識別出一個個單詞。
3、語法分析:
語法分析的任務是在詞法分析的基礎上將單詞程序分解成各位語法短語。
4、語義分析:
語義分析是審查源程序有無語義錯誤,為代碼生成階段收集類型信息。
5、中間代碼生成:
在進行了上述的語法分析階段等工作之後,有的編譯程序將源程序變成一種內部表示形式,這種內部表示形式叫做中間語言或中間代碼。中間代碼生成階段要在語法和語義分析的基礎上,將源程序進一步變為一種內部表示形式,它通常易於生成、易於翻譯成目標代碼,不過不是所有的語言都必須經過這一步。
6、代碼優化:
這一階段的任務是對前一階段產生的中間代碼進行變換或進行改造,目的是使生成的目標代碼更為高效。代碼優化階段,對前階段生成的中間代碼進行變換或改造,以便生成目標代碼時更加節省時間和空間,這一工作也不是必須的。
7、目標代碼生成:
這一階段的任務是吧中間代碼變換成特定機器上的絕對指令代碼或可重定位的指令代碼或匯編指令代碼。
⑥ 將高級語言程序翻譯為機器程序可以通過執行——來實現
通過編譯器實現。
編譯和解釋是將高級語言編寫的程序翻譯成機器語言程序的兩種方式。解釋方式是將源程序逐句解釋執行,即解釋一句執行一句,因此在解釋方式中不產生目標文件。
例如,早期的BASIC語言採用的就是「解釋」方式。編譯方式是將整個高級語言編寫的源程序先翻譯成機器語言程序,然後再生成可在操作系統下直接運行的執行程序,通常會產生目標程序。
(6)高級語言編譯機器程序擴展閱讀:
編譯器可以生成用來在與編譯器本身所在的計算機和操作系統(平台)相同的環境下運行的目標代碼,這種編譯器又叫做「本地」編譯器。另外,編譯器也可以生成用來在其它平台上運行的目標代碼,這種編譯器又叫做交叉編譯器。
交叉編譯器在生成新的硬體平台時非常有用。「源碼到源碼編譯器」是指用一種高級語言作為輸入,輸出也是高級語言的編譯器。
例如:自動知臘並行化編譯器經常採用一種高級語言作為輸入,轉換其中的代碼,並用並行代碼注釋對它進行注釋(如OpenMP)或者用語言構造進仔慎行注釋(如FORTRAN的DOALL指搭戚滑令)。
⑦ 怎樣區分高級語言編譯的程序與匯編語言編的程序哪個是系統軟體,怎樣區分
高級語言編譯的程序指的是用高級語言編寫的程序,它將源代碼翻譯成機器可以執行的目標代碼,這種程序屬於應用軟體。匯編語言編寫的程序指的是使用匯編語言編臘宏瞎寫的程序,它將匯編語言翻譯成機器可以執行輪空的機器語言代碼,這種程序屬於系統軟體。可以絕慶通過比較程序的功能來區分高級語言編譯的程序與匯編語言編的程序,匯編語言編的程序功能更加強大,能夠控制系統的功能,而高級語言編譯的程序只能用來實現一些特定的功能。
⑧ 將高級語言編寫的源程序翻譯成機器語言程序,採用的兩種方式是()。
【答案】:A
將高級語言編寫的程序翻譯成機器語言程序,採用的兩種翻譯方式是編顫哪譯和解釋。編譯方式是將整個高級語言編寫的源程序先翻譯成森襪機器語言程序,然後,再生成可在操作系統下直接運行的執行程序,通常會產生目標程序。解釋方式是將派程序逐句解釋執行,即解釋一句執行一句,因此,在解釋方式此洞激中不產生目標文件。
⑨ 計算機高級語言的編譯程序屬於什麼類的
計算機高級語言的編譯程序屬於系統軟體類。
編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
(9)高級語言編譯機器程序擴展閱讀:
編譯程序的功能
①語法檢查:檢查源程序是否合乎語法。如果不符合語法,編譯程序要指出語法錯誤的部位、性質和有關信息。編譯程序應使用戶一次上機,能夠盡可能多地查出錯誤。
②調試措施:檢查源程序是否合乎設計者的意圖。為此,要求編譯程序在編譯出的目標程序中安置一些輸出指令,以便在目標程序運行時能輸出程序動態執行情況的信息,如變數值的更改、程序執行時所經歷的線路等。這些信息有助於用戶核實和驗證源程序是否表達了演算法要求。
③修改手段:為用戶提供簡便的修改源程序的手段。編譯程序通常要提供批量修改手段(用於修改數量較大或臨時不易修改的錯誤)和現場修改手段(用於運行時修改數量較少、臨時易改的錯誤)。
④覆蓋處理:主要是為處理程序長、數據量大的大型問題程序而設置的。基本思想是讓一些程序段和數據公用某些存儲區,其中只存放當前要用的程序或數據;其餘暫時不用的程序和數據,先存放在磁碟等輔助存儲器中,待需要時動態地調入。
⑤目標程序優化:提高目標程序的質量,即佔用的存儲空間少,程序的運行時間短。依據優化目標的不同,編譯程序可選擇實現表達式優化、循環優化或程序全局優化。目標程序優化有的在源程序級上進行,有的在目標程序級上進行。
⑥不同語言合用:其功能有助於用戶利用多種程序設計語言編寫應用程序或套用已有的不同語言書寫的程序模塊。最為常見的是高級語言和匯編語言的合用。