编程语言类型划分

(一)编译型和解释型

计算机不能直接理解高级语言,仅仅能直接理解机器语言,所以必需要把高级语言翻译成机器语言,计算机才干运行高级语言编写的程序。翻译的方式有两种,一个是编译,一个是解释。

编译型语言写的程序执行之前,已经程序编译好了,比方exe文件,以后要执行的话就不用又一次翻译了。直接使用编译的结果即可了(exe文件),由于翻译仅仅做了一次,执行时不须要翻译,所以编译型语言的程序执行效率高。

解释性语言的程序在执行程序的时候才翻译,边执行边翻译

这样解释性语言每执行一次就要翻译一次。效率比較低。

用一个样例类比下,比方一个人读一本外语书。他能够选择直接读别人翻译好的(编译型),或者让别人一句句读给他听(解释型)。翻译好的译文随时能够再读,请别人读每一个章节都须要又一次读一次。


(二)动态语言和静态语言

动态类型语言:在执行期间检查数据的类型的语言。

用这类语言编程,不会给变量指定类型,而是在附值时得到数据类型。

静态类型语言:相反静态类型语言是在执行前编译时检查类型。在写代码时。没声明一个变量必须指定类型。

动态类型语言如JS

function add(a,b){
return a+b;
}
add(1,2);
add('1',2);

静态类型语言如C、C++、Java、C#等

public int add(int a,int b){
return a+b;
}

(三)强类型定义语言和弱类型定义语言

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

也就是说,一旦一个变量被指定了某个数据类型,假设不经过强制转换。那么它就永远是这个数据类型了。举个样例:假设你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。

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

弱类型定义语言:数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不同数据类型的值。如JS。



原文地址:https://www.cnblogs.com/gccbuaa/p/6899256.html