首先,编程语言的发展过程:机器语言-->汇编语言-->高级语言。(C,Python同属于高级语言)
机算机不能理解高级语言,只能理解机器语言,所以必须把高级语言翻译成机器语言,才能由计算机执行。
翻译有两种方式:一种是编译;一种是解释。二者翻译时机不同。
编译性语言:将源代码编译成机器语言文件,也即可执行程序。
解释性语言:程序执行时将源代码翻译成机器语言,然后再由计算机执行。(也即将编译、执行合二为一)
两种翻译方式的比较:
1、编译性语言最终的可执行文件由于是机器语言文件,执行速度要快些,尤其是大型应用程序。
2、解释性语言可移植性较高。(个人经验,Python比C可移植性高的多,Python横行于Windows、Linux、UNIX、AIX)
到底先有解释性语言还是先有编译性语言呢?没有找到权威资料,不敢瞎说,但我猜测是先有编译性语言。
解释性语言孰优孰劣呢?不敢瞎说,只能说各有各的优缺点,合适就是最优的。
常见编译性语言:C/C++、Pascal
常见解释性语言:Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB、Shell
注:java很特殊,java程序也需要编译,但是没有直接编译称为机器语言,而是编译称为字节码,然后用解释方式执行字节码,因为最终执行还需要再解释一遍,所以归类于解释性语言。