解釋 組 譯 器 、 編譯器 和 直譯 器 的差異

9
解解 解解解 解解解解 解解解解解解 解解 4992c097 解解解

Upload: shandi

Post on 13-Jan-2016

113 views

Category:

Documents


1 download

DESCRIPTION

控晶一乙 4992c097 黃嘉蔚. 解釋 組 譯 器 、 編譯器 和 直譯 器 的差異. 直譯器 組譯器 編譯器 來源參考. 目錄. 直譯器 ( Interpreter )是一種把高階 程式語言 直接執行的轉譯 程式 。直譯器不會一次把整個程式轉譯出來。它每轉譯一行程式敘述就立刻執行,然後再轉譯下一行,再執行,如此不停的進行下去。 解釋器 或 直譯器 (Interpreter) 是一種供執行其他 程式 的電腦程式,解釋器只像一位「中間人」,每次執行程式時都要先轉成另一種語言再作執行,因此解釋器的程式運行速度比較緩慢。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

解釋 組譯器、編譯器和 直譯器的差異

控晶一乙 4992c097 黃嘉蔚

Page 2: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

目錄

直譯器

組譯器

編譯器

來源參考

Page 3: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

直譯器

直譯器( Interpreter )是一種把高階程式語言直接執行的轉譯程式。直譯器不會一次把整個程式轉譯出來。它每轉譯一行程式敘述就立刻執行,然後再轉譯下一行,再執行,如此不停的進行下去。

解釋器或直譯器 (Interpreter) 是一種供執行其他程式的電腦程式,解釋器只像一位「中間人」,每次執行程式時都要先轉成另一種語言再作執行,因此解釋器的程式運行速度比較緩慢。

相對地,編譯器並不執行程式或原程式碼,而是一次過將其翻譯成另一種語言,如機械碼,以供多次執行而無需再經編譯。其製成品無需依賴編譯器而執行,程式運行速度比較快。

Page 4: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

直譯器執行程式的方法有: 直接執行高階程式語言 (如 Shell 內建的直譯器) 轉換高階程式語言碼到一些有效率的中間代表碼

(Bytecode) ,並執行這些 Bytecode 以直譯器包含的編譯器對高階語言編譯,並指示處理器執行

編譯後的程式 ( 例如 : JIT) 在轉譯的過程中,這組高階語言所寫成的程式仍然維持在原

始碼的格式(或某種中繼語言的格式),而程式本身所指涉的動作或行為則由直譯器來表現。直譯器的好處是它消除了編譯整個程式的負擔,但也會讓執行時的效率打了折扣。

直譯器 Interpreter是另一種翻譯器,特性在於翻譯一段程式碼後立即執行。

Page 5: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

組譯器

典型的現代組譯器( Assembler )建造目的碼,由解譯組語指令集的易記碼( mnemonics )到操作碼( OpCode ),並解析符號名稱( symbolic names )成為記憶體位址以及其它的實體。使用符號參考是組譯器的一個重要特徵,它可以節省修改程式後人工轉址的乏味耗時計算。基本就是把機器碼變成一些字母而已,編譯的時候再把輸入的指令字母替換成為晦澀難懂機器碼。

  組譯器 (assemblers) 是一種將助憶碼 (mnemonics) 與識

別字 (identifier) 轉換成機器語言的程式。

Page 6: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

編譯器

編譯器( Compiler ),是一種電腦程式,它會將用某種程式語言寫成的原始碼(原始語言),轉換成另一種程式語言(目標語言)。

它主要的目的是將便於人編寫,閱讀,維護的高階電腦語言所寫作的原始碼程式,翻譯為電腦能解讀、執行的低階機器語言的程式,也就是執行檔。編譯器將原始程式( Source program )作為輸入,翻譯產生使用標的語言( Target language )的等價程式。原始碼一般為高階語言 (High-level language)

Page 7: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

如 Pascal 、 C 、 C++ 、 C# 、 Java 等,而標的語言則是組合語言或標的機器的目的碼( Object code ),有時也稱作機器碼( Machine code )。 一個現代編譯器的主要工作流程如下: 原始碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 組譯程式 (assembler) → 目的碼 (object code) → 鏈結器 (Linker) → 可執行程式 (executables)

編譯器 (compiler) 是一種翻譯器,特性在於一次將所有程式法轉換成機器語言,再執行。

Page 8: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

  組譯器 Assembler 將組合語言程式翻譯為目的程式,再經過連結程式,

連結為執行檔 *.com( 檔案大小小於 64K) 直譯器 Interpreter 將原始程式逐行翻譯為機器語言。程式每次執行,皆

必須經過翻譯的手續。亦稱為解譯器 編譯器 Compiler 將原始程式一次翻譯為目的程式後,再聯結函式庫或

是其他目的程式為執行檔 *.exe( 檔案大小大於 64K)

Page 9: 解釋  組 譯 器 、 編譯器 和 直譯 器 的差異

參考來源 1. http://zh.wikipedia.org/zh-hant/%E7%9B

%B4%E8%AD%AF%E5%99%A8 2.

http://zh.wikipedia.org/zh-hant/%E6%B1%87%E7%BC%96%E8%AF%AD%E8%A8%80

3. http://zh.wikipedia.org/zh-tw/%E7%B7%A8%E8%AD%AF%E5%99%A8

4. http://sun.cis.scu.edu.tw/~bccb/94bcc/Ch6/6-1.htm