编程语言类型

Posted AllenZhang_(*^▽^*)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程语言类型相关的知识,希望对你有一定的参考价值。

编译型和解释型

编译型:编译器一次把所有的代码编译成机器语言,然后写成可执行文件;

解释型:程序运行中,由解释器不断地把源码解释,执行,并不断地解释,执行;

优缺点:

    编译型执行速度较快(C/C++、VB)更适合开发操作系统、大型应用程序、数据库系统等;

    解释型对不同系统平台间的兼容性较高(Java、javascript、Python)更适合做一些网页脚本、服务器脚本及辅助开发接口。

       既然编译型与解释型各有优缺点又相互对立,所以一批新兴的语言都有把两者折中起来的趋势。例如Java语言虽然比较接近解释型语言的特征,但在执行之前已经预先进行了一次预编译,生成的代码是介于机器码和Java源代码之间的中介代码,运行的时候有JVM解释执行。它既保留了源码的高抽象、可移植的特点,又已经完成了对源码的大部分预编译工作,所以执行起来比“纯解释型”程序 要快许多,C#也类似。随着设计技术与硬件的不断发展,编译型与解释型两种方式的界限正在不断变得模糊。

 

动态语言和静态语言

动态语言:指在运行期间才去做数据类型检查的语言(所以永远不用给任何变量指定数据类型,Python、Ruby)

静态语言:数据类型是在编译期间检查的(所以写程序时要声明所有变量的数据类型,C/C++、C#、Java)

 

强类型语言和弱类型语言

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

弱类型语言:数据类型可以被忽略的语言,一个变量可以赋不同数据类型的值,速度略快于强类型语言。

个人理解:弱类型语言应该都有“===”符号(像php,JavaScript),而且它们允许字符串跟数字相加,可见它们定义的变量的数据类型不固定。

以上是关于编程语言类型的主要内容,如果未能解决你的问题,请参考以下文章

Java语言基础---变量与数据类型

定义类+类实例化+属性+构造函数+匿名类型var+堆与栈+GC回收机制+值类型与引用类型

类 C 语言中的返回类型多态性

阶段1 语言基础+高级_1-3-Java语言高级_03-常用API第二部分_第6节 基本类型包装类_4_包装类_基本类型与字符串类型之间

Graphql Php:类类型定义与模式语言

函数式编程:容器类型值类型