脚本语言不需要显式的进行编译的一门语言。
例如,在编写C语言程序时候,在运行之前需要经过编译和链接的过程。但对于一些脚本语言,例如javascript,你不用编译一个JavaScript程序,比如shell脚本,也不要编译,直接通过解析器进行解析执行即可。
在现代硬件和编译技术下,编译的效率更高,花费时间更短。从而导致脚本语言和传统的编程语言之间的界限不再那么明显
需要注意的是,一个语言是不是"脚本"不应该只从语言角度去看待,应该从运行所在的环境去区别。你完全可以写一个C语言的解释器,把C语言作为输入让解释器来帮你完成执行。同样也可以将JavaScript编译成机器代码并且存放在可执行文件中.Ruby就是一个很好的例子,它以一个解释器(脚本语言)出现,但现在已经有多个编译器可以编译它了.
"脚本"语言例子(传统的角度)
- Lua
- JavaScript
- VBScript and VBA
- Perl
传统需要编译的例子:
- C
- C++
- D
- Java(需要注意,Java被编译成字节码(bytecode),这些字节码会在运行的时候解释)
Python有两种情况:Python在广泛的使用中不需要编译,但是主要的实现(CPython)需要编译成字节码并且运行字节码在虚拟机中,它可以把字节码写入到文件(.pyc
, .pyo
)中,使用时,不需要重新编译
当然这里只是冰山一角,更多的内容有待探索.