首頁  >  文章  >  能將高階語言編寫的原始程式轉換為目標程式的是什麼?

能將高階語言編寫的原始程式轉換為目標程式的是什麼?

青灯夜游
青灯夜游原創
2020-11-03 17:02:4156302瀏覽

將高階語言編寫的原始程式轉換為目標程式的是「編譯程式」。編譯程式是指把用高級程式設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序;編譯程序以高級程序設計語言書寫的源程序作為輸入,而以彙編語言或機器語言表示的目標程式作為輸出。

能將高階語言編寫的原始程式轉換為目標程式的是什麼?

將高階語言編寫的原始程式轉換為目標程式的是「編譯程式」。由高級語言編寫的程式稱為“原始程式”,由二進位程式碼表示的程式稱為“目標程式”,而將原始程式轉換成機器能夠識別的目標程式是由“編譯程式”完成的。

編譯程序(Compiler,compiling program),也稱為編譯器,是指把用高級程式設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程式屬於採用生成性實現途徑實現的翻譯程式。

編譯程式以高階程式設計語言書寫的原始程式作為輸入,而以組合語言或機器語言表示的目標程式作為輸出。編譯出的目標程式通常還要經歷運行階段,以便在執行程式的支援下運行,加工初始數據,算出所需的計算結果。

特點

編譯程式必須分析原始程序,然後綜合成目標程式。首先,檢查原始程式的正確性,並把它分解成若干基本成分;其次,再根據這些基本成分建立相應等價的目標程序部分。為了完成這些工作,編譯程式要在分析階段建立一些表格,改造原始程式為中間語言形式,以便在分析和綜合時易於引用和加工。

資料結構分析和綜合時所使用的主要資料結構,包括符號表、常數表和中間語言程式。符號表由原始程式中所使用的標識符連同它們的屬性組成,其中屬性包括種類(如變數、陣列、結構、函數、過程等)、類型(如整數、實型、字串、複型、標號等),以及目標程序所需的其他資訊。常數表由原始程式中用的常數組成,其中包括常數的機內表示,以及分配給它們的目標程式位址。中間語言程式是將原始程式翻譯為目標程式前引入的一種中間形式的程序,其表示形式的選擇取決於編譯程式以後如何使用和加工它。常用的中間語言形式有波蘭表示、三元組、四元組、間接三元組等。

分析部分原始程式的分析是經過詞法分析、語法分析和語意分析三個步驟實現的。詞法分析由詞法分析程序(又稱掃描程序)完成,其任務是識別單字(即標識符、常數、保留字,以及各種運算符、標點符號等)、造符號表和常數表,以及將原始程式換碼為編譯程式易於分析和加工的內部形式。語法分析程式是編譯程式的核心部分,其主要任務是根據語言的語法規則,檢查原始程式是否合乎語法。如不合乎語法,則輸出語法出錯訊息;如合乎語法,則分解原始程式的語法結構,建構中間語言形式的內部程式。文法分析的目的在於掌握單字是怎麼組成語句的,以及語句又是如何組成程式的。語意分析程序是進一步檢查合法程序結構的語意正確性,其目的是確保標識符和常數的正確使用,把必要的資訊收集和保存到符號表或中間語言程式中,並進行對應的語意處理。

以上是能將高階語言編寫的原始程式轉換為目標程式的是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn