一.编译型语言与解释型语言( 六 )


1.PHP
2.Ruby
3.
常见的静态类型语言则有:
1.C

一.编译型语言与解释型语言

文章插图
2.C++
3.JAVA
4.C#
链接:
三.强类型语言与弱类型语言 弱类型定义语言( type ,类型不安全的语言):
数据类型可以被忽略的语言 。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值 。举例:在中,可以将字符串 ‘12’ 和整数 3 进行连接得到字符串 ‘123’, 然后可以把它看成整数 123,而不需要显示转换
例如PHP/ASP/Ruby//Perl/ABAP/SQL//Unix Shell等注意:强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误 。
强类型定义语言( type ,强制数据类型定义语言,类型安全的语言):
一旦变量被指定某个数据类型,如果不经强制转换,即永远是此数据类型 。举例:若定义了一个整型变量a,若不进行显示转换,不能将a当作字符串类型处理
强类型语言是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行 。例如C/C++/Java/C#
优劣分析
对比起强类型,弱类型的缺点大概如下:
(1)弱类型不符合“所见即所得”,定义的变量类型是不可预见并且可以改变的 。
(2)为了兼容弱类型,语言执行引擎要做了大量的兼容工作,包括类型识别,内存管理,类型转换等,增加了语言内部处理的复杂度,会导致执行效率的降低 。
(3)变量的类型是不可控的,因此执行过程中拥有大量的变量类型“隐形转换”,在开发同学不清楚隐性转换规则的情况下,容易产生不可预知的结果 。这个特性也完全不符合所见即所得的简单性 。但是,它们之所以可以发展起来,脱颖而出,也是有原因的,存在就有它的道理 。
弱类型等语言特性,降低了程序员编写语言的门槛 。编程言语是人类和机器沟通的桥梁,终极追求其实是“降低人和机器的沟通成本”,追求“人人皆可编程”的境界 。
例如,从机器语言的0和1开始,后来变成汇编语言,汇编语言发展出来C,后来再有现在的脚本语言 。编程学习的门槛不断降低,程序员的数量也随着指数增长 。
而且,我相信未来还会继续发展出更低学习门槛的语言,促进程序员数量的再一次指数增长 。弱类型的语言也有优点:
(1)屏蔽了语言的复杂性和容易导致错误的地方,例如:内存管理、指针、变量的类型等 。虽然,它屏蔽了比较复杂的特性,但是,并不代表它们不存在,这样的做法是对人友好(编程更简单,考虑的东西更少),但是对机器不友好 。
(2)项目开发效率高 。
(3)学习门槛低 。
它虽然带有不少的问题,但是,也包含了很明显的优点 。
PHP比较大范围地用于Web开发,统治浏览器端的开发
原文链接:
原文链接:
全部内容的总结
有两幅图可以清晰的说明一些问题:
1.
2.
红色区域外:well(type )红色区域内:ill
如果所有程序都是灰的, typed
否则如果存在红色的程序, typed
编译时排除红色程序, typed
运行时排除红色程序, typed
所有程序都在黄框以外,type safe
【一.编译型语言与解释型语言】原文链接: