跳轉到內容

A-level 計算機/WJEC (Eduqas)/元件 1/程式構建

來自華夏公益教科書

翻譯錯誤

[編輯 | 編輯原始碼]

編譯過程

[編輯 | 編輯原始碼]

1. 預處理器

[編輯 | 編輯原始碼]
  • 預處理器獲取原始碼並執行諸如合併一個或多個檔案的內容以及將字串模式替換為另一個字串模式的任務。
  • 預處理器掃描程式碼以查詢預處理指令。

2. 詞法分析

[編輯 | 編輯原始碼]
  • 刪除註釋和不需要的空格。
  • 將原始碼轉換為令牌流 - 程式碼的數字表示並將其儲存在表格中。
  • 關鍵字、常量和識別符號被替換為“令牌”(通常是十六進位制數)。
  • 建立了兩個表格:
  1. 保留字表
  2. 識別符號表

詞法分析表的示例:

  • 保留字
  • 使用者識別符號

3. 語法分析

[編輯 | 編輯原始碼]
  • 檢查令牌以確保它們符合預期的拼寫和語法。這是透過解析每個令牌來完成的,以確定它是否使用了程式語言的正確語法。
  • 如果發現語法錯誤,則會生成錯誤訊息

4. 語義分析

[編輯 | 編輯原始碼]
  • 檢查變數以確保它們已正確宣告和使用。
  • 檢查變數以確保它們是正確的型別。
  • 檢查操作以確保它們對正在使用的變數型別是合法的。

5. 程式碼生成

[編輯 | 編輯原始碼]
  • 生成針對目標機器的特定程式碼。對於每個高階指令,往往會生成幾行機器程式碼。

6. 程式碼最佳化

[編輯 | 編輯原始碼]
  • 用程式碼替換高階通用程式設計結構。
  • 替換程式碼是高效的低階程式設計程式碼。

➡️ 考試問題 - 程式碼最佳化的目標是什麼?

  1. 實現程式所需的輸出。
  2. 提高程式的速度。
  3. 降低對資源的需求。
  4. 不延遲整體編譯過程。
華夏公益教科書