【編程語言】編譯性語言和解釋性語言

要給新來的同事介紹Python語言,以前講過C語言,我想在宏觀上講一下兩種語言(或兩類語言)的差異。java

 

首先,編程語言的發展過程:機器語言-->彙編語言-->高級語言。(C,Python同屬於高級語言)編程

機算機不能理解高級語言,只能理解機器語言,因此必須把高級語言翻譯成機器語言,才能由計算機執行。編程語言

翻譯有兩種方式:一種是編譯;一種是解釋。兩者翻譯時機不一樣。spa

編譯性語言:將源代碼編譯成機器語言文件,也便可執行程序。翻譯

解釋性語言:程序執行時將源代碼翻譯成機器語言,而後再由計算機執行。(也即將編譯、執行合二爲一)ip

 

兩種翻譯方式的比較:編譯

一、編譯性語言最終的可執行文件因爲是機器語言文件,執行速度要快些,尤爲是大型應用程序。gc

二、解釋性語言可移植性較高。(我的經驗,Python比C可移植性高的多,Python橫行於Windows、Linux、UNIX、AIX)程序

 

到底先有解釋性語言仍是先有編譯性語言呢?沒有找到權威資料,不敢瞎說,但我猜想是先有編譯性語言。經驗

解釋性語言孰優孰劣呢?不敢瞎說,只能說各有各的優缺點,合適就是最優的。

常見編譯性語言:C/C++、Pascal

常看法釋性語言:Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB、Shell

注:java很特殊,java程序也須要編譯,可是沒有直接編譯稱爲機器語言,而是編譯稱爲字節碼,而後用解釋方式執行字節碼,由於最終執行還須要再解釋一遍,因此歸類於解釋性語言。


2011-12-27 任洪彩 qdurenhongcai@163.com

相關文章
相關標籤/搜索