跳到主要內容
:::

教育百科logo

::: 編譯器 - 教育百科
ˋ
ˋ
biān yì qì
教育部重編國語辭典修訂本
注音:
漢語拼音: biān yì qì
解釋:
一個自動加碼的系統,能將程式師所寫的指令與庫存程式組合起來,轉換成機器能接受的語言。
資料來源: 教育部重編國語辭典修訂本_編譯器
授權資訊: 資料採「 創用CC-姓名標示- 禁止改作 臺灣3.0版授權條款 」釋出
國家教育研究院辭書
基本資料
英文: Compiler
作者: 莊志洋
日期: 2000年12月
出處: 教育大辭書
辭書內容
名詞解釋:
  「編譯器」是一種系統軟體,其功能是將以高階語言(如C, COBOL, FORTRAN等)寫成的程式翻譯成低階的機器語言程式,以方便機器執行。由於處理器只能執行數位化的機器語言,而使用者又不太可能用機器語言去撰寫大型程式;因此,電腦工程師設計出接近人類語言的高階程式語言,用來撰寫電腦程式,故需要編譯器這種軟體將高階的程式語言轉成低階的機器語言。
  幾乎所有的編譯器都是文法導向的(syntax-directed),也就是說根據原始程式的文法結構來導引整個編譯的過程,而這個過程可粗分為兩個階段:第一個階段是原始程式的文法結構分析(Lexical analysis),這部分的作業由編譯器中的標記掃描器(token scanner)與剖析器(parser)來處理;第二階段則是機器語言程式的合成,從分析文法結構的結果,來辨認其語意,進而產生相對應的機器碼,這些工作由編譯器中的語意程序(semantic routine)、最佳化處理器(optimizer)、機器碼產生器(code generator)來執行。
  一般的編譯器都是由掃描器、剖析器、語意程序、最佳化處理器、機器碼產生器等所組成的。
  標記掃描器的工作是將原始程式以一個字母接著一個字母的方式讀入,然後將這些個別的字母組成標記(tokens),然後將這些標記傳送到剖析器。標記掃描器的工作是編譯過程的第一個步驟,其分析出的標記是構成文法結構的符號(symbols),像是明認字(identifiers)、常數(constants)、以及保留字(reserved words)等。一般常用正規語法(regular expression)的規則來建出標記。
  剖析器接著根據所讀到的標記,循文法規範中的句型產生規則(construct production rule),以剖析原始程式的文法結構。常用來描述現代程式語言的文法規則是一種與上下文無關的文法(context-free grammar)。一旦文法結構被辨識出來,剖析器就直接呼叫語意程序,或者是建立一個代表整個程式文法結構的剖析樹,然後再交給語意程序,以驅動語意的處理。
  語意程序實現兩項功能:首先會檢查句型的靜態語意是否合法且有意義;例如,檢查參考到的變數是否曾宣告,資料型別是否相容等。如果句型的語意是正確的,語意程序將句型轉換成相對應的中間碼(intermediate representation)而不是機器碼。不直接翻譯成機器碼的原因有幾項:第一,模組化及移植性的考慮,可以使得此編譯器很容易翻譯出不同的機器碼,因為只需要修改將中間碼翻成機器碼的機器碼產生器就可以。第二,比較容易針對中間碼作最佳化的處理。
  最佳化處理器,其任務是改進語意程序產生的中間碼,改進後的中間碼執行結果是相同的,但依照它所翻譯出的機器碼,其執行速度或程式大小會比原來的好。這個處理器是編譯器中最複雜且最花時間的部分,一般如果不是有特別的需求,通常是不會作最佳化的處理。
  機器碼產生器就是將中間碼翻譯成機器碼,在翻譯過程中通常會做一些機器相關的最佳化處理,以期產生的程式可充分利用中央處理單元的功能,而使得執行的效能更好。
資料來源: 國家教育研究院_編譯器
授權資訊: 資料採「 創用CC-姓名標示- 禁止改作 臺灣3.0版授權條款」釋出
基本資料
英文: Compiler
作者: 陳妙智
日期: 1995年12月
出處: 圖書館學與資訊科學大辭典
辭書內容
名詞解釋:
  編譯器又稱編譯程式,是將一個程式語言寫成的電腦程式翻譯成機器語言的軟體。它使電腦能了解程式並且執行程式中的指令。原來的程式是用一種程式語言如COBOL所寫成的,稱為原始程式(Source Program)。此程式經編譯器轉換為目的碼(Object Code),目的碼將程式以電腦能了解的形式表示出來。這將原始碼轉譯為目的碼的過程稱為程式語言編譯(Compilation)。編譯器除了作語言轉換外,也執行許多對程式員有用的功能,尤其在程式偵錯方面。那些功能包括診斷、偵錯、資料對映、原始碼表及其他功能。
  編譯器可分成7個重要部分:
  (一)掃描程式(Scanner):找出原始程式的基本語法解析單元,並去除不具意義的空白字元和註解。
  (二)語法解析程式(Parser):分析使用者所寫的程式是否合乎程式語言的語法。
  (三)中間碼產生程式(Internediate Code Generator):根據語法解析程式輸出的資料產生類似於組合語言的中間碼。
  (四)語意處理程式:檢查程式是否合乎語意(Semantic)上的限制。
  (五)最佳化程式(Optimizer):盡量修改程式的執行時間和記憶體空間使能最有效率地運用。
  (六)數碼產生程式(Code Generator):產生目標程式即組合語言或機器語言數碼。
  (七)對照表:以上幾個部分在執行時所需要用到或增加的資料均存放在對照表內。
資料來源: 國家教育研究院_編譯器
授權資訊: 資料採「 創用CC-姓名標示- 禁止改作 臺灣3.0版授權條款」釋出