无极荣耀主管51076
现代硬件和现代编译技术下,编译已经变得越来越快导致脚本语言和传统的编程语言之间的界限不在那么明显.例如,V8作为Google Chrome浏览器的引擎,并且在浏览器之外使用了很多,实际上将JavaScript代码编译成机器代码,而不是去解释他们.(V8事实上是一个优化了的两个阶段的编译器)
需要注意的是,一个语言是不是"脚本"我们不应该只是从语言角度去看待,应该要存运行所在的环境去区别.你完全可以写一个C语言的解释器,并且将它作为脚本语言来运行.同样也可以将JavaScript编译成机器代码并且存放在可执行文件中.Ruby就是一个很好的例子,它以一个解释器(脚本语言)出现,但现在已经有多个编译器可以编译它了.
一些"脚本"语言例子(传统的角度)
Lua
JavaScript
VBScript and VBA
Perl
一些传统中需要使用显示的编译:
C
C++
D
Java(需要注意,Java被编译成字节码(bytecode),这些字节码会在运行的时候解释,重编译)
Pascal
Python有两种情况:Python在广泛的使用中不需要编译,但是主要的实现(CPython)需要编译成字节码并且运行字节码在虚拟机中,它可以把字节码写入到文件(.pyc, .pyo)中,使用时,不需要重新编译
原文地址:http://blog.51cto.com/14205662/2351249
时间: 2024-10-20 09:07:24