编程语言

编译语言主要从以下几个角度进行分类,编译型和解释型语言、静态类型语言和动态类型语言、强类型定义语言和弱类型定义语言。

编译型与解释型

编译型:将写好的源文件,编译成一个可执行文件,我们就可以直接运行。(C/C++、Pascal/Delphi、VB)对于一个大的程序编译各个文件会生成目标文件,一般对于一个源文件都会对应一个目标文件。这些目标文件里的内容基本已经是可执行代码了,但是由于只是整个项目的一部分,所以还不能直接运行。当所有的源文件编译都大功告成,就可以把这些半成品的目标打包成一个可执行文件,这个工作由另一个程序负责完成,由于此过程好像把包含可执行代码的目标文件连接起来,所以又称为链接(link)而负责链接的程序就叫做链接程序(linker),链接程序除了链接目标文件外,可能还有各种资源。

解释型:程序运行前一刻,还只是源程序而没有可执行程序;而程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转化成二进制代码以供执行。解释语言更适合做移植。

编译型与解释型,各有利弊。由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时采用编译型语言。而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释型语言如Java、JavaScript、VBScript、Perl、Python等等。

动态语言和静态语言

动态语言:动态类型语言是指在运行期间才去做数据类型的检查的语言。也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量是,在内部将数据类型记录下来。Python和Ruby既是一种典型的动态型语言,其它的各种脚本语言如VBScript也多少属于动态类型语言。

静态语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译期间检查,也就是说写程序是要声明所有变量的数据类型,C/C++是静态语言的代表,其他静态语言有C#、Java等。

强类型语言与弱类型语言

强类型语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定某个数据类型,如果不经过强制转换,它永远就是这个数据类型。

弱类型语言:数据类型可以被忽略的语言。它与强制型定义语言相反,一个变量可以赋不同数据类型。

posted @ 2018-05-03 21:43  谵语芥末  阅读(124)  评论(0)    收藏  举报