编译型语言在执行之前要先经过编译过程,编译成为一个可执行的机器语言的文件,比如exe。因为翻译只做一遍,以后都不需要翻译,所以执行效率高。
优点:编译器一般会有预编译的过程对代码进行优化,因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行
缺点:编译之后如果需要修改就需要整个模块重新编译。编译时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件
代表语言:C,C艹,Pascal,Object-C,swift等
解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。执行时才翻译执行。程序每执行一次就要翻译一遍。
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护
缺点:每次运行都要解释一遍,性能上不如编译型语言
代表语言:javaScript,Python,Erlang,PHP,Perl,Ruby
1、静态语言(强类型语言)
是在编译时确定变量的数据类型,运行期间不可以改变其结构,即运行前可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。 例如:C++、Java、Delphi、C#等。
2、动态语言(弱类型语言)
动态语言是在运行时确定数据类型与结构的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。 例如PHP/Ruby/Python/Perl/SQL/JavaScript/Unix Shell等等。
3、静态语言的优缺点
优点:
1.避免程序运行时发生变量类型相关的错误
2.先前明确了变量的类型,编译器可以针对这些信息对程序做出一些优化,从而提高程序执行的速度
缺点:
1.撸码的时候,需要格外注意变量的类型
2.过多的类型声明会增加更多的代码
4、动态类型语言的优缺点
优点:给实际的编码带来了很大的灵活性,我们只关注对象的行为,而不关注对象本身
缺点:代码运行期间有可能会发生与类型相关的错误