是否解释了所有脚本语言?

时间:2015-05-09 11:14:40

标签: scripting scripting-language interpreted-language

是否解释了所有脚本语言?我还没有遇到过编译+脚本语言。以下语言都是解释语言和脚本语言。解释语言和脚本语言之间的联系是什么。

  

例如JavaScript,python,perl

反过来怎么样?

1 个答案:

答案 0 :(得分:3)

根据定义,脚本语言的作用是没有单独的编译阶段。脚本语言总是需要其解释器的副本才能运行,而编译语言不需要编译器来执行生成的二进制文件。例如,在C中,我们首先编译为本机可执行文件然后运行该可执行文件。在脚本语言中,我们将脚本作为文本文件提供,并立即执行。

如何实现这是另一个问题。大多数脚本语言都是以纯粹解释的实现开始的。不可避免地,有用的都获得了利用Just In Time(JIT)编译速度的实现。不同之处在于此JIT在脚本运行期间完成,并且从不生成单独的输出。脚本仍然是人类可读的文本文件,需要一些解释器才能运行。

在边境上有一些有趣的语言例子。 Haskell通常被编译成独立的二进制文件,但也可以作为脚本运行(至少GHC实现可以这样做。)Java编译为二进制文件,但不编译为独立的可执行文件。必须存在Java运行时才能运行Java文件。