中間語言

中間語言  ， 在計算機科學中 ， 是指一種應用於抽象機器 （ abstract machine ） 的程式語言 ， 它設計的目的 ， 是用來幫助我們分析計算機程序 。 這個術語源自於編譯器 ， 在編譯器將原始碼編譯爲目的碼的過程中 ， 會先將原始碼轉換爲一個或多個的中間表述 ， 以方便編譯器進行最佳化 ， 併產生出目的機器的機器語言 。 通常 ， 中間語言的設計與一般的機器語言有三個不同之處 ： 每個指令代表僅有一個基本的操作 。 舉例來說 ， 在微處理器中出現的shift - add定址模式在中間語言不會出現 。 指令集內可能不會包含控制流程的資訊 。 暫存器可用的數量可能會很大 ， 甚至沒有限制 。 最常見的中間語言表述形式 ， 是三位址碼 （ Three address code ） 。 這個術語也同時用來代稱一些作爲中間層的語言 ， 有些高級語言不會輸出爲機器語言 ， 它們僅會輸出這種中間語言 ， 而這些中間語言則會像一般語言一樣 ， 提交給編譯器 ， 編譯爲機器語言 。 這通常被用於讓最佳化的過程更簡單 ， 也用於增進可移植性的能力 ， 改進移植的方式則是利用中間語言的編譯器 ， 可以編譯出許多中央處理器及操作系統可使用的機器碼 ， 例如C語言 。 中間語言的複雜度 ， 通常介於高階語言及 - { zh - cn: 低級語言; zh - tw: 低階語言 } - 之間 ， 例如 - { zh - cn: 彙編語言; zh - tw: 組合語言 } - 。