編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機能夠直接以機器語言來運行此程序, 速度很快;
而解釋器則是隻在執行程序時,才一條一條的解釋成機器語言給計算機來執行,因此運行速度是不如編譯後的程序運行的快的. 這是由於計算機不能直接認識並執行咱們寫的語句,它只能認識機器語言(是二進制的形式)
解釋器(英語:Interpreter),又譯爲直譯器,是一種電腦程序,可以把高級編程語言一行一行直接轉譯運行。解釋器不會一次把整個程序轉譯出來,只像一位「中間人」,每次運行程序時都要先轉成另外一種語言再做運行,所以解釋器的程序運行速度比較緩慢。它每轉譯一行程序敘述就馬上運行,而後再轉譯下一行,再運行,如此不停地進行下去。
在解釋器上運行程序比直接運行編譯過的代碼來得慢,是由於解釋器每次都必須去分析並轉譯它所運行到的程序行,而編譯過的程序就只是直接運行。這個在運行時的分析被稱爲"直譯式的成本"。在解釋器中,變量的訪問也是比較慢的,由於每次要訪問變量的時候它都必須找出該變量實際存儲的位置,而不像編譯過的程序在編譯的時候就決定好了變量的位置了。編程
解釋器和編譯器的目標就是將使用高級語言編寫的源程序轉換成另外一種形式。
若是一個翻譯器將源程序翻譯成機器語言,那麼它就是一個編譯器。若是一個翻譯器直接處理並運行源程序,不先把源程序翻譯成機器語言,那麼它就是一個解釋器。直觀上它看起來會是這個樣子:
編程語言