回覆列表
  • 1 # 使用者3548840545485175

    1、詞法分析 詞法分析的任務是對由字元組成的單詞進行處理,從左至右逐個字元地對源程式進行掃描,產生一個個的單詞符號,把作為字串的源程式改造成為單詞符號串的中間程式。執行詞法分析的程式稱為詞法分析程式或掃描器。

    2、語法分析 編譯程式的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表示式、賦值、迴圈等,最後看是否構成一個符合要求的程式,按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程式是最終的一個語法單位。

    3、中間程式碼生成 中間程式碼是源程式的一種內部表示,或稱中間語言。中間程式碼的作用是可使編譯程式的結構在邏輯上更為簡單明確,特別是可使目的碼的最佳化比較容易實現。中間程式碼即為中間語言程式,中間語言的複雜性介於源程式語言和機器語言之間。

    4、程式碼最佳化 程式碼最佳化是指對程式進行多種等價變換,使得從變換後的程式出發,能生成更有效的目的碼。所謂等價,是指不改變程式的執行結果。所謂有效,主要指目的碼執行時間較短,以及佔用的儲存空間較小。這種變換稱為最佳化。

    5、目的碼生成 目的碼生成是編譯的最後一個階段。目的碼生成器把語法分析後或最佳化後的中間程式碼變換成目的碼。

  • 2 # 使用者2946310896628672

    1、以GCC編譯器為例,可以分為四步。

    第一步是預處理,包括語法檢查等工作。

    gcc -P abc.c

    第二步由源程式生產組合語言程式碼。

    gcc -S abc.c

    會生成abc.s檔案,這個檔案裡就是彙編程式碼。

    第三步編譯器生成目的碼,一個原始檔生成一個目的碼。

    gcc -c abc.c

    會生成abc.o

    第四步聯結器從目的碼生成可執行檔案。

    gcc abc.o

    2、目的碼包括機器碼和符號表(函式及變數名)。聯結器的主要作用是透過符號表在庫檔案和其他模組中找到在目的碼中引入或未定義的符號(函式及變數名),將幾個目的碼合成可執行檔案。

  • 中秋節和大豐收的關聯?
  • 什麼是載人航天技術?