彙編程序與編譯器
一般來說,編譯器是一種計算機程序,它讀取用一種語言編寫的程序(稱為源語言),並將其翻譯成另一種語言(即目標語言)。傳統的源語言是C++等高級語言,目標語言是彙編語言等低級語言。然而,有些編譯器可以將用匯編語言編寫的源程序轉換為機器代碼或目標代碼。彙編程序就是這樣的工具。因此,彙編程序和編譯器最終都會生成可以在機器上直接執行的代碼。
什麼是編譯器?
編譯器是一種計算機程序,它讀取用一種語言編寫的程序(稱為源語言),並將其翻譯成另一種語言,即目標語言。通常,源語言是高級語言,目標語言是低級語言。因此,一般來說,編譯器可以看作是從一種語言翻譯到另一種語言的翻譯人員。此外,編譯器對代碼執行一些優化。典型的編譯器由幾個主要組件組成。第一個組件是掃描器(也稱為詞法分析器)。Scanner讀取程序並將其轉換為一系列標記。第二個組件是解析器。它將中的標記字符串轉換為解析樹(或抽象語法樹),解析樹捕獲程序的語法結構。下一個組成部分是解釋句法結構語義的語義例程。代碼優化和最終代碼生成都遵循這一點。
什麼是彙編程序?
彙編程序是將彙編語言翻譯成機器代碼的軟件或工具。所以,彙編程序是一種編譯器,源代碼是用匯編語言編寫的。彙編是一種人類可讀的語言,但它通常與對應的機器代碼有一對一的關係。因此,彙編程序被稱為執行同構(一對一映射)轉換。高級彙編程序提供支持程序開發和調試過程的附加功能。例如,稱為宏彙編程序的彙編程序類型提供了宏工具。
彙編程序和編譯器的區別是什麼?