**
编程语言的区别(静态VS动态)||(编译型VS解释型)
**
静态 VS 动态
Static typing when possible, dynamic typing when needed。
1.静态语言定义:数据类型需要在编译其间检查的语言,即写程序时要声明变量的数据类型,常见静态语言:C,C++,C#,JAVA
2.动态语言定义:在运行期进行数据类型检查的语言,即在编写代码的时候可以不指定变量的数据类型,“现用现给”,常见动态语言:Python,Ruby,JS ,PHP
区别
(1)静态语言使用变量需要提前声明好数据类型,不同数据类型的变量不允许直接赋值,它的数据类型是编译期间进行检查的;动态语言不需要提前声明,它的数据类型是在运行期间进行检查的。
(2)静态语言功能更加强大,但灵活性比较差,相对难学习;动态语言更加快速灵活,但在代码运行前很难找到bug,虽然提升了开发速度,但失去程序的健壮性。
编译型 VS 解释型
计算机是不能理解高级语言的,更不能直接执行高级语言,它只能直接理解机器语言,所以使用任何高级语言编写的程序若想被计算机运行,都必须将其转换成计算机语言,也就是机器码。而这种转换的方式有两种:
1.编译
2.解释
1.编译型语言
高级语言一次性编译为机器码程序,存储在计算机内,需要运行时直接运行机器码指令即可,不需要再对源程序进行编译,执行效率比较高,常见编译型语言:C,C++
2.解释型语言
程序编写完后,待需要时解释后直接运行,比较方便移植其他平台,常见解释型语言:Python
区别:
1.编译型效率更高,解释型运行时需要先解释后运行,效率较低
2.编译型语言一般无法移植其他平台;而解释型语言有对应的解释器则可轻松移植其他平台,移植性较好
参考博客:
[1]https://blog.csdn.net/gengyiping18/article/details/28269401?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.no_search_link
[2]: https://mxlei.blog.csdn.net/article/details/81348780?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link