编程语言——分类

编译型 VS 解释型

编译型语言 ,如:C、C++、Fortran、Pascal、Ada。 由编译型语言编写的程序,需要经过 编译 , 汇编 链接 才能输出目标代码,然后由机器执行目标代码。

解释型语言需要一个专门的解释器来执行该程序,每条语句只有在执行是才能被翻译,这种解释型语言每执行一次就翻译一次,因而效率较低。

java很特殊,java是需要编译的,但是没有直接编译成机器语言,而是编译成字节码,然后在Java虚拟机上用解释的方式执行字节码。Python也使用了类似的方式,先将python编译成python字节码,然后由一个专门的python 字节码解释器负责解释执行字节码。


强制式 VS 声明式

- 命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。
- 声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。

声明式语言:包括数据库查询语言(SQL,XQuery),正则表达式,逻辑编程,函数式编程和组态管理系统;声明式编程通过函数,推论规则或项重写规则,来描述变量之间的关系;声明式编程问题通过用作解决人工智能和约束满足问题。

当写业务逻辑时,通常必须要写命令式代码,没有可能在我们的专项业务里也存在一个可以归纳抽离的实现。

静态 VS 动态

动态 类型语言,指在运行期间检查数据的类型的语言,变量的类型往往不是事先指定,而是在运行时根据实际值进行推导来得出!比如,python,ruby,javascript等等都是动态语言!

静态 类型语言,是在运行前编译时就进行类型的检查,每个变量都有其指定的类型,比如java,c,c++,c#等。

动态 编程语言,指在程序运行过程中可以改变数据类型的结构,对象的函数,变量可以被修改或删除;javascript,python,ruby都是动态编程语言;java,c++等是静态编程语言!

强类型 vs 弱类型

强类型strongly typed: 如果一种语言的所有程序都是well behaved——即不可能出现forbidden behaviors,则该语言为strongly typed。
弱类型weakly typed: 否则为weakly typed。比如C语言的缓冲区溢出,属于trapped errors,即属于forbidden behaviors..故C是弱类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值