##解释型/编译型
解释型相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如Python/JavaScript / Perl /Shell等都是解释型语言。
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。
传统来讲效率低于编译型语言,但随着解释器的优化,非必然。
编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件)
【应用】
编译型:操作系统、大型应用程序、数据库系统;
解释型:网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言;
##面向对象
##动态数据类型
特点:
静态类型语言中,变量具有类型,而且在编译期确定,具有某一类型的变量只能持有相同类型的数据。例如,C是静态类型语言,一个int型变量只能作为int来处理。
动态类型语言中,变量没有类型,只有数据有类型,变量可以持有任意类型的数据。Python是动态语言,变量可以持有整数、字符串、列表、闭包等任何数据。
/aquastone/p/static_vs_dynamic_typed.html
【静态数据类型】
在编译时就知道变量的类型
知道变量中有哪些属性和方法
在编译的时候就可以访问这些属性和方法
通过静态数据类型定义变量,如果访问了不属于静态数据类型的属性和方法,那么编译器就会报错
【动态数据类型】
在编译的时候编译器不知道数据的真实类型,只有在运行的时候才知道数据的真实类型
如果通过动态数据类型定义的变量,如果访问了不属于动态数据类型的属性和方法,编译器不会报错
动态语言弊端:由于动态数据类型可以调用任一方法,所以有可能调用到不属于自己的方法,又不会报错,会导致运行时的错误
/qq_38265784/article/details/79232209