三地址碼

三地址碼(英語:Three address code,經常被縮寫為TAC 或 3AC),一種中間語言編譯器使用它來改進代碼轉換效率。

基本介紹

  • 中文名:三地址碼
  • 外文名:Three address code
簡介,中間語言,編譯器,

簡介

每個三地址碼指令,都可以被分解為四個元組(4-tuple):(運算符,運算對象1,運算對象2,結果)。因為每個陳述都包含了三個變數,所以它被稱為三地址碼。

中間語言

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

編譯器

編譯器(compiler),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言)。
它主要的目的是將便於人編寫、閱讀、維護的高級計算機語言所寫作的原始碼程式,翻譯為計算機能解讀、運行的低階機器語言的程式,也就是執行檔。編譯器將原始程式(source program)作為輸入,翻譯產生使用目標語言(target language)的等價程式。原始碼一般為高級語言(High-level language),如Pascal、C、C++、C# 、Java等,而目標語言則是彙編語言或目標機器的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
一個現代編譯器的主要工作流程如下:
原始碼(source code)→預處理器(preprocessor)→編譯器(compiler)→彙編程式(assembler)→目標代碼(object code)→連結器(Linker)→執行檔(executables), 最後打包好的檔案就可以給計算機去判讀運行了。

相關詞條

熱門詞條

聯絡我們