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

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

常见的动态类型语言有:Python、Ruby、Erland、JS、Swift、PHP、Perl

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

常见的静态类型语言有:C、C++、JAVA、Object-C

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

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

常见的动态语言有:C#、Python、Object-C、PHP、Erlang、JS

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

常见的静态语言有:C、C++、Java

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

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

常见的强类型语言有:Java、C#、Python、Object-C、Ruby

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

常见的弱类型语言有:JS、PHP、C、C++

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

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

常见的编译型语言有:C、C++、Pascal、Object-C、Swift

(2)解释型语言是指源代码不需要预先进行编译,在运行时,要先进行解释再运行(每执行一次都要翻译一次)。解释型语言执行效率低,但跨平台性好。脚本语言都是解释型语言,此外 Java、C# 等也是解释型语言。

常见的解释性语言有:Python、JS、Erlang、PHP、Perl、Ruby、Java、C#
(Java 和 C# 是一种比较奇葩的存在,它们也可以说是半编译半解释型的语言,源代码需要先转换成一种中间文件(字节码文件),然后再将中间文件拿到虚拟机中执行。Java 引领了这种风潮,它的初衷是在跨平台的同时兼顾执行效率;C# 是后来的跟随者,但是 C# 一直止步于 Windows 平台,在其它平台鲜有作为)

更多推荐

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