在很多技能文档、官方先容,以及各种各样的编程书本中,都免不了对编程措辞做一些先容,先容措辞的背景、发展进程,设计理念等一大堆开篇立论,在这一大堆理论中,先容措辞类型时每每会有这么几个词显得有些很不一样,比如:动态类型、静态类型、强类型,弱类型、阐明型、编译型。

那么这几个类型是什么意思呢,现在市场优势行、曾经盛行的编程措辞又分别是哪个类型的呢,接下来就来逐一看看。

动态类型

动态类型措辞,是指在运行期间才做数据类型检讨的措辞。

php中之美编程说话之美在动静之态在强弱之间分化释编译之道 JavaScript

此类型的编程措辞,变量、属性、方法的参数的数据类型以及方法的返回值类型都可以不用指定,他们的数据类型会在首次赋值时被记录下来。
此类型的措辞有JavaScript、Perl、PHP、Ruby 、Python和VB等等。

静态类型

静态类型措辞,在编译阶段就做数据类型检讨的措辞,这点与动态类型措辞刚好相反;也便是说这种类型的措辞,声明变量时在就要明确指定变量的数据类型;如果没有明确指定,程序就无法通过编译,更加无法运行。

比如:C、C++、C#、Java以及运行JVM的其他措辞都是静态类型措辞的范例代表。

强类型

强类型措辞,也称为强类型定义措辞,是一种逼迫数据类型定义的措辞。
此类措辞的变量的数据类型一旦确定,除非发生类型逼迫转换,否则其数据类型永久不会发生改变。
以是,强类型定义措辞也是类型安全的措辞。

并且还哀求所有的变量、属性必须先声明并初始化后才能利用,而且变量、属性、方法的参数以及方法的返回值必须明确指天命据类型,而且即便不同类型的变量之间的类型转换也要严格按照转换规则来实行。
如Java、C# 和 Python、C、C++等都是强类型的措辞。

虽然强类型定义措辞运行速率上比起弱类型措辞稍稍逊色一些,但加以优化,也并非不能战胜;强类型定义措辞由于明确指天命据类型,所有会更加严谨,从而能避免很懂逻辑和语法上的缺点。

弱类型

弱类型措辞,数据类型可以被忽略的措辞,这点与强类型定义措辞相反;一个变量可以被赋不同数据类型的值。

在定义变量时可以只利用变量润色符标识其是一个变量即可,而不用考虑其时什么数据类型;同时,一个变量可以赋不同数据类型的值,且不须要明确的数据类型。
比如:变量a 首次赋值的数据类型是字符串类型,但在后期根据须要可以把数字类型的值赋给变量a。

弱类型措辞如VB 、PHP、JavaScript等。

编程措辞之美,在动、静之态,在强、弱之间,分解释、编译之道

阐明型

阐明型措辞的源代码会在实行到的那一刻才会被措辞阐明器转换为打算机可实行文件并实行,全体的运行过程会不断的阐明,实行;阐明,实行...... 即便新的一次运行到已经阐明过的程序,阐明器也依然还会再次阐明,并实行。

这个过程好比,你买了本纯英文的书,但你看不懂,然后去找了英文翻译来赞助你阅读,你想看哪行,他给你翻译哪行;如果你想转头去看之前的内容,他也依然会重新翻译一次,并给到你。

在阐明型程序中,程序总是以源代码的形式涌现;那么只要有阐明器,一个阐明型的程序就能很轻易的移植到另一个平台上。
还有程序的修正也很方便,由于其是实时阐明的,能够实时查看改动的效果。
但也会因程序的不断扩大,减慢程序阐明的相应速率,每每对打算机性能有一定的哀求。

比如:Java、JavaScript、VBScript、Perl、Python等都是阐明型措辞。
Java 因其JVM的跨平台特性,以是Java 也可算是阐明型措辞。

编译型

是指措辞的源码须要经由编译器编译,天生打算机(操作系统)的可实行文件,或者打算机指令,才能够被打算机识别,并实行。
完成的过程便是:程序员根据需求写出项目源代码,然后把源代码交由编译器将所有源码文件一次性编译,得到可实行文件,这时,就可以把可实行文件通过操作系统运行起来,就能看到实际的运行效果了。

如果用英文书的例子来解释,便是:英文翻译会将整本书翻译后给到你,那么即便想转头去看之前看过的内容,也只须要自行查阅就可以了。

由于程序要经由编译后才能运行,以是其运行速率会比阐明型措辞要快上不少;编译过程中会进行一些必要的检讨,因此也能避免不少缺点的发生;但也是由于其运行机制,小小的改动也要重新编译实行,必定会摧残浪费蹂躏一定的韶光。

比如:C、C++、Java,C#、Pascal/Object Pascal(Delphi)、VB等措辞都可视为编译型措辞。

编程措辞之美,在动、静之态,在强、弱之间,分解释、编译之道

一些常见的编程措辞的类型

无类型: 汇编

弱类型、静态类型 : C、C++

弱类型、动态类型检讨: Perl、PHP、JavaScript

强类型、静态类型检讨 :Java、C#

强类型、动态类型检讨 :Python, Scheme

静态显式类型 :Java、C

静态隐式类型 :Ocaml、Haskell

一些常见的编程措辞的类型

完结。
老夫虽不正经,但老夫一身的才华