簡介
問題一目標代碼生成是編譯的最後一個階段。目標代碼生成器把語法分析後或最佳化後的中間代碼變換成目標代碼。目標代碼有三種形式:
① 可以立即執行的機器語言代碼,所有地址都重定位;
② 待裝配的機器語言模組,當需要執行時,由連線裝入程式把它們和某些運行程式連線起來,轉換成能執行的機器語言代碼;
③ 彙編語言代碼,須經過彙編程式彙編後,成為可執行的機器語言代碼。
目標代碼生成階段應考慮直接影響到目標代碼速度的三個問題:一是如何生成較短的目標代碼;二是如何充分利用計算機中的暫存器,減少目標代碼訪問存儲單元的次數;三是如何充分利用計算機指令系統的特點,以提高目標代碼的質量。
延伸
如果編譯過程中發現源程式有錯誤,編譯程式應報告錯誤的性質和錯誤的發生的地點,並且將錯誤所造成的影響限制在儘可能小的範圍內,使得源程式的其餘部分能繼續被編譯下去,有些編譯程式還能自動糾正錯誤,這些工作由錯誤處理程式完成。