返回 导航

其他

hangge.com

编程语言的分类与介绍(动态、静态、强类型、弱类型、编译型、解释型)

作者:hangge | 2020-12-22 08:10
    计算机语言的种类非常多,有静态类型与动态类型之分,又有强类型和弱类型之分,还有编译型和解释型之分。本文对这些类型做个对比总结,方便大家理清他们的关系。

1,动态类型语言 VS 静态类型语言

(1)动态类型语言指是在运行期间才检查数据的类型的语言。使用这类语言编程时,不用给任何变量指定数据类型。该语言会在第一次赋值给变量时,在内部将数据类型记录下来。
常见的动态类型语言有PythonRubyErlandJSSwiftPHPPerl

(2)静态类型语言是会在编译期间做检查数据类型的语言,即写程序时要声明所有变量的数据类型,是固定的。使用数据之前,必须先声明数据类型(intfloatdouble 等)。相当于使用之前,首先要为它们分配好内存空间。
常见的静态类型语言有CC++JAVAObject-C

2,动态语言 VS 静态语言(动态编程语言 VS 静态编程语言)

(1)动态语言(动态编程语言)是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。大部分动态语言都是动态类型语言,但也有些不是。
常见的动态语言有C#PythonObject-CPHPErlangJS

(2)静态语言(静态编程语言)则在运行时不可以改变其结构的语言。
常见的静态语言有CC++Java

3,强类型语言 VS 弱类型语言

(1)强类型定义语言就是强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。
常见的强类型语言有JavaC#PythonObject-CRuby

(2)弱类型语言对于变量类型的检查比较宽松,容忍隐式类型转换这种事情的发生。比如:一个 int 类型的数据与一个 float 类型的数据相加,最终的结果是一个 float 类型的数据,这个过程就发生了隐式类型转换,int 类型数据首先被转成 float 类型,然后与另一个 float 进行操作。
常见的弱类型语言有JSPHPCC++

4,编译型语言 VS 解释型语言

(1)编译型语言是指程序在执行之前需要一个专门的编译过程,把程序源文件编译为机器语言的文件,运行时不需要重新编译,执行效率高。但缺点是编译型语言依赖编译器,跨平台性差。
常见的编译型语言有CC++PascalObject-CSwift

(2)解释型语言是指源代码不需要预先进行编译,在运行时,要先进行解释再运行(每执行一次都要翻译一次)。解释型语言执行效率低,但跨平台性好。脚本语言都是解释型语言,此外 JavaC# 等也是解释型语言。
常见的解释性语言有PythonJSErlangPHPPerlRubyJavaC#
  • Java C# 是一种比较奇葩的存在,它们也可以说是半编译半解释型的语言,源代码需要先转换成一种中间文件(字节码文件),然后再将中间文件拿到虚拟机中执行。Java 引领了这种风潮,它的初衷是在跨平台的同时兼顾执行效率;C# 是后来的跟随者,但是 C# 一直止步于 Windows 平台,在其它平台鲜有作为)
评论

全部评论(0)

回到顶部