语言类型
解释型语言
解释型语言的典型:python、JavaScript、Ruby等。
解释型语言的特点,我理解的就是解释一句跑一句子,如果下边语句有错误,并不会影响上边语句的执行。要想写小的程序,基本上可以忽略执行效率的基础上,还想让程序能成功跑下去,解释型语言还是很香的。
编译型语言
编译型语言的典型:C和C++等
汇编型语言的特点,我理解的就是把所有语句都从头理一遍,如果其中出现一句语句有错误,整个程序都无法运行。所以要想提高程序的执行效率,要想写大工程文件,还是要转换成编译型语言的。
编译型—解释型语言
典型代表:Java
严格地说,Java其实就是解释型语言,其所谓的编译过程只是将.java文件编程成.class文件,并不是向C一样编译成可执行的机器语言,在此请读者注意Java中所谓的“编译”和传统的“编译”的区别;然后生成的.class文件再逐句进行解释,在Java的虚拟机JVM中运行。在现实中,java开发工具JDK提供了两个很重要的命令来完成上面的编译和解释(翻译)过程:javac.exe是将.java文件编译成.class文件,而java.exe是将.class文件解释执行吧
总结
解释器与编译器两者各有优势:当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译的时间,立即执行。在程序运行后,随着时间的推移,编译器逐渐发挥作用,把越来越多的代码编译成本地代码之后,可以获取更高的执行效率。 当程序运行环境中内存资源限制较大(如部分嵌入式系统中),可以使用解释执行节约内存,反之可以使用编译执行来提升效率。
但随着硬件的升级和设计思想的变革,编译型和解释型语言越来越笼统,主要体现在一些新兴的高级语言上,而解释型语言的自身特点也使得编译器厂商愿意花费更多成本来优化解释器,解释型语言性能超过编译型语言也是必然的。