用BloggerAds不怕沒菜錢 用BloggerAds不怕沒菜錢

編譯器Compiler

編譯器,是將便於人編寫,閱讀,維護的高階電腦語言翻譯為電腦能解讀、執行的低階機器語言的程式。編譯器將原始程式(Source program)作為輸入,翻譯產生使用目的語言(Target language)的等價程式。原始碼一般為高階語言 (High-level language), PascalC++Java 等,而目的語言則是組合語言或目的機器的目的碼(Object code),有時也稱作機械碼(Machine code)。

 

一個現代編譯器的主要工作流程如下:

原始碼 (source code)

預處理器 (preprocessor)

編譯器 (compiler)

組譯器 (assembler)

目的碼 (object code)

聯結器 (Linker)

可執行程式 (executables)

 

編譯式語言(:CFortran..)

用編譯器將程式碼轉換成目標平台專用的執行檔

l   優點

n   執行速度快,可與硬體結合。

n   可寫較大的程式。

l   缺點

n   執行檔可攜性不高。

直譯式語言(BasicdBase..)

用解譯器對原始程式碼一邊讀程式碼一邊執行。

l   優點

n   程式可攜性高。

l   缺點

n   執行速度慢。

n   原始碼必須公開。

 

Virtual Machine(Java)

是一個虛構出來的電腦,通過在實際的電腦上模擬模擬各種電腦功能來實現的。Java虛擬機有自己完善的硬體架構,如處理器、堆疊、暫存器等,還具有相應的指令系統。JVM屏蔽了與具體作業系統平臺相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(位元組碼),就可以在多種平臺上不加修改地運行。

l   優點

n   可以用重新編譯即可在各個不同平台執行

l   缺點

n   執行效率不比編譯是語言來的佳,可是比直譯式語言來的快。

n   須要先安裝Virtual Machine才可執行

Posted by Aminzai at 痞客邦 PIXNET 留言(2) 引用(0) 人氣()


open trackbacks list Trackbacks (0)

留言列表 (2)

Post Comment
  • mitnick
  • 你的觀念有誤.
    第一個, 所謂的 compiler 跟 interpreter 的定義並不都是針對原始碼. 正確的說法是. compiler 並不需要 run time parsing. 而 interpreter 要.
    另外一點, JVM 的本身就是 interpreter. 只是他所直譯的 input 是 java byte code. java 的架構是上述兩種機制都有用到. .java -- javac --> .class (compiler), .class --> jvm (interpreter). 而不是一個前所未見的技術.
  • 訪客
  • compiler generates native code and them depends on machine , but interpreter execute those codes in run time. native codes is 010101... , they are machine code. its speed is faster.

You haven’t logged in yet, please use guest status to leave message. You can also log in with above service account and leave message

other options