小编典典

脚本语言与编程语言

all

谁能解释一下脚本语言和编程语言之间的区别?
你也可以为每个人陈述一些例子。我用谷歌搜索了很多,但我总是从 Stack Overflow 中找到最好的答案。


阅读 84

收藏
2022-03-28

共1个答案

小编典典

脚本语言是不需要显式编译步骤的编程语言。

例如,在正常情况下,您必须先编译一个 C 程序,然后才能运行它。但在正常情况下,您不必在运行 JavaScript 程序之前对其进行编译。所以
JavaScript 有时被称为“脚本”语言。

这条线越来越模糊,因为现代硬件和现代编译技术的编译速度如此之快。例如,谷歌浏览器中的 JavaScript 引擎 V8 在浏览器之外也使用了很多,它实际上将
JavaScript 代码即时编译成机器代码,而不是解释它。(事实上​​,V8 是一个优化的两阶段编译器。)

另请注意,一种语言是否是“脚本”语言可能更多地与环境有关,而不是语言。您没有理由不能编写 C
解释器并将其用作脚本语言(人们已经这样做了)。您也没有理由不能将 JavaScript 编译为机器代码并将其存储在可执行文件中(人们已经这样做了)。Ruby
语言就是一个很好的例子:最初的实现是完全解释的(一种“脚本”语言),但现在有多个编译器。

“脚本”语言的一些示例(例如, 传统上 使用的没有显式编译步骤的语言):

  • 卢阿
  • JavaScript
  • VBScript 和 VBA
  • Perl

还有一小部分 传统上 与显式编译步骤一起使用的代码:

  • C
  • C++
  • D
  • Java (但请注意,Java 被编译为字节码,然后在运行时被解释和/或重新编译)
  • 帕斯卡

…然后你在两个阵营中都有像 Python 这样的东西:Python 在没有编译步骤的情况下被广泛使用,但主要实现 (CPython)
通过即时编译为字节码然后在VM,它 可以 将该字节码写入文件(.pyc, .pyo)以供使用而无需重新编译。

这只是 少数,如果你做一些研究,你会发现更多。

2022-03-28