【问题标题】:Are all scripting languages interpreted?所有脚本语言都被解释了吗?
【发布时间】:2023-03-17 01:34:01
【问题描述】:

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

例如 JavaScript、python、perl

反过来呢?

【问题讨论】:

    标签: scripting scripting-language interpreted-language


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 2010-09-08
      • 2011-01-27
      • 2011-10-06
      • 1970-01-01
      相关资源
      最近更新 更多