高級語言編譯
Ⅰ 計算機高級語言的編譯程序屬於什麼類的
計算機高級語言的編譯程序屬於系統軟體類。
編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
(1)高級語言編譯擴展閱讀:
編譯程序的功能
①語法檢查:檢查源程序是否合乎語法。如果不符合語法,編譯程序要指出語法錯誤的部位、性質和有關信息。編譯程序應使用戶一次上機,能夠盡可能多地查出錯誤。
②調試措施:檢查源程序是否合乎設計者的意圖。為此,要求編譯程序在編譯出的目標程序中安置一些輸出指令,以便在目標程序運行時能輸出程序動態執行情況的信息,如變數值的更改、程序執行時所經歷的線路等。這些信息有助於用戶核實和驗證源程序是否表達了演算法要求。
③修改手段:為用戶提供簡便的修改源程序的手段。編譯程序通常要提供批量修改手段(用於修改數量較大或臨時不易修改的錯誤)和現場修改手段(用於運行時修改數量較少、臨時易改的錯誤)。
④覆蓋處理:主要是為處理程序長、數據量大的大型問題程序而設置的。基本思想是讓一些程序段和數據公用某些存儲區,其中只存放當前要用的程序或數據;其餘暫時不用的程序和數據,先存放在磁碟等輔助存儲器中,待需要時動態地調入。
⑤目標程序優化:提高目標程序的質量,即佔用的存儲空間少,程序的運行時間短。依據優化目標的不同,編譯程序可選擇實現表達式優化、循環優化或程序全局優化。目標程序優化有的在源程序級上進行,有的在目標程序級上進行。
⑥不同語言合用:其功能有助於用戶利用多種程序設計語言編寫應用程序或套用已有的不同語言書寫的程序模塊。最為常見的是高級語言和匯編語言的合用。
Ⅱ 高級語言的編譯系統是什麼
編譯器是一種計算機程序,其功能是將一種計算機語言翻譯成另一種計算機語言。這種程序的輸入被稱為源代碼,而輸出則是目標代碼。通常情況下,編譯器生成的目標代碼可以被其他程序處理,例如鏈接器。然而,也有某些編譯器能夠生成可讀的文本文件作為輸出。
將源代碼翻譯成可執行程序是編譯器的基本任務。早期的編譯器主要用於將高級語言代碼翻譯成較低級的語言,如匯編語言或機器碼。與此相反,將低級語言代碼翻譯回高級語言的程序則被稱為反編譯器。
一個高效的編譯器通常會經歷一系列復雜的過程,包括詞法分析、預處理、解析、文法分析、代碼生成以及代碼優化。這些步驟共同作用,使得編譯器能夠高效准確地完成任務。
在詞法分析階段,編譯器將源代碼分解成一個個基本的元素,即詞法單元。接著,預處理階段會對這些詞法單元進行一些必要的修改,如宏定義替換。隨後,編譯器會進行解析和文法分析,以確保源代碼符合特定的語法規范。在這一階段,編譯器會構建抽象語法樹來表示源代碼的結構。
代碼生成是編譯器的另一個關鍵步驟,它將抽象語法樹轉換為目標代碼。這個過程需要考慮目標機器的特性和指令集架構,確保生成的代碼能夠高效執行。最後,代碼優化階段會對生成的代碼進行一系列改進,以提高其性能和效率。
通過這些復雜的步驟,編譯器能夠將高級語言代碼翻譯成高效且可執行的目標代碼,為計算機程序的開發和運行提供了強有力的支持。
Ⅲ 任何高級語言都是編譯成匯編代碼然後運行的嗎
編譯器,是將便於人編寫,閱讀,維護的高級計算機語言翻譯為計算機能識別,運行的低級機器語言的程序。編譯器將源程序(Source program)作為輸入,翻譯產生使用目標語言(Target language)的等價程序。源程序一般為高級語言(High-level language),如Pascal,C++等,而目標語言則是匯編語言或目標機器的目標代碼(Object code),有時也稱作機器代碼(Machine code)。一個現代編譯器的主要工作流程如下:
源程序(source code)→預處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標程序(object code)→連接器(鏈接器,Linker)→可執行程序(executables])工作原理
翻譯是從源代碼(通常為高級語言)到能直接被計算機或虛擬機執行的目標代碼(通常為低級語言或機器言)。然而,也存在從低級語言到高級語言的編譯器,這類編譯器中用來從由高級語言生成的低級語言代碼重新生成高級語言代碼的又被叫做反編譯器。也有從一種高級語言生成另一種高級語言的編譯器,或者生成一種需要進一步處理的的中間代碼的編譯器(又叫級聯)。典型的編譯器輸出是由包含入口點的名字和地址以及外部調用(到不在這個目標文件中的函數調用)的機器代碼所組成的目標文件。一組目標文件,不必是同一編譯器產生,但使用的編譯器必需採用同樣的輸出格式,可以鏈接在一起並生成可以由用戶直接執行的可執行程序。
肯定是要先編譯成機器碼,計算機才能識別。
Ⅳ 為什麼高級語言中存在編譯和解釋兩種編譯方式
翻譯方式在編程中通常分為兩種:編譯和解釋。編譯方式的特點是,先由編譯程序將高級語言編寫的源程序一次性轉換成機器語言的目標程序,這個編譯程序本身是預先存放在計算機中的機器語言程序。
相比之下,解釋方式則不同。在解釋方式中,計算機中也會存放一個解釋程序,這個程序能夠逐句解釋高級語言編寫的源程序,並立即執行每一條指令。換句話說,解釋方式是逐句進行翻譯和執行,而不是一次性全部翻譯完畢。
從這個角度來看,編譯的結果可以被視為一種完全轉換後的機器語言,而解釋過程則更像是一個中間步驟,直接在執行前翻譯每一條指令。
編譯和解釋兩種方式各有優勢。編譯方式通常能夠提供更快的執行速度,因為目標程序已經直接編譯成了機器代碼,無需再進行翻譯過程。而解釋方式則更加靈活,因為它可以實時地進行錯誤檢查和調試,有助於開發者更快地發現和修正錯誤。
兩種方式的選擇通常取決於具體的應用場景。例如,系統軟體和大型應用程序更傾向於使用編譯方式,因為它可以提高執行效率;而一些腳本語言和小型程序則更適合使用解釋方式,因為它們需要快速迭代和調試。
總而言之,編譯和解釋是兩種不同的程序翻譯策略,各有特點和應用場景,理解它們之間的區別有助於開發者根據需要選擇合適的方式。