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