美文网首页
动态语言、静态语言、动态类型语言、静态类型语言、编译型语言、解释

动态语言、静态语言、动态类型语言、静态类型语言、编译型语言、解释

作者: JakeyChen | 来源:发表于2019-03-12 11:04 被阅读0次

    动态语言

    一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或者其他结构上的变化。

    在运行时代码可以根据某些条件改变自身结构。

    如Objective-C、C#、JavaScript、PHP、Python。

    静态语言

    与动态语言相对应的,运行时结构不可变的语言。

    如Java、C、C++。

    编译型:

    负责翻译的程序对源代码进行转换,生成相对应的可执行代码。这个过程是编译,这个程序是编译器

    如果所有代码都包含在一个源文件,通常编译之后就会直接生成一个可执行文件。

    如果很多源文件,编译各个文件时就会生成目标文件。这些目标文件里的内容基本是可执行代码了。

    然后由链接器把目标文件和各种图片、音视频等资源链接起来,还会去除目标文件之间的冗余重复代码。

    最后生成可执行文件。

    如C、C++、Objective-C、Swift。

    解释型

    程序运行的前一刻,还只有源程序而没有可执行程序。程序每执行到源程序的某一条指令,解释器将源代码转换成二进制以供执行。

    不断的解释、执行、解释、执行。

    移植性好,运行速度慢。

    Java也进行了预编译,生成介于机器码和Java源码之间的中介代码。

    如JavaScript、Python、PHP、Ruby。

    动态类型语言

    运行期间才去做数据类型检查的语言。永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。

    如Python、Ruby、JavaScript、Swift、PHP。

    静态类型语言

    在写程序时要声明所有变量的数据类型,数据类型在编译期间检查。

    如C、C++、C#、Java、Objective-C。

    强类型定义语言

    强制数据类型定义的语言。

    一旦一个变量被指定了某个数据类型,如果不经过强制类型转换,它就永远是这个数据类型。

    强类型定义语言是类型安全的语言。

    如Java、C#、Python、Objective-C、Ruby.

    弱类型定义语言

    一个变量可以赋不同数据类型的值或者可以容易隐式类型转换。

    如JavaScript、PHP、C、C++

    duck typing

    是动态语言的一种,只关心有没有实现属性和方法,不管真正类型。

    normal typing

    规定了类型,方法和属性也就确定了。

    相关文章

      网友评论

          本文标题:动态语言、静态语言、动态类型语言、静态类型语言、编译型语言、解释

          本文链接:https://www.haomeiwen.com/subject/uzjkpqtx.html