谁能解释一下脚本语言和编程语言之间的区别? 你也可以为每个人陈述一些例子。我用谷歌搜索了很多,但我总是从 Stack Overflow 中找到最好的答案。
脚本语言是不需要显式编译步骤的编程语言。
例如,在正常情况下,您必须先编译一个 C 程序,然后才能运行它。但在正常情况下,您不必在运行 JavaScript 程序之前对其进行编译。所以 JavaScript 有时被称为“脚本”语言。
这条线越来越模糊,因为现代硬件和现代编译技术的编译速度如此之快。例如,谷歌浏览器中的 JavaScript 引擎 V8 在浏览器之外也使用了很多,它实际上将 JavaScript 代码即时编译成机器代码,而不是解释它。(事实上,V8 是一个优化的两阶段编译器。)
另请注意,一种语言是否是“脚本”语言可能更多地与环境有关,而不是语言。您没有理由不能编写 C 解释器并将其用作脚本语言(人们已经这样做了)。您也没有理由不能将 JavaScript 编译为机器代码并将其存储在可执行文件中(人们已经这样做了)。Ruby 语言就是一个很好的例子:最初的实现是完全解释的(一种“脚本”语言),但现在有多个编译器。
“脚本”语言的一些示例(例如, 传统上 使用的没有显式编译步骤的语言):
还有一小部分 传统上 与显式编译步骤一起使用的代码:
…然后你在两个阵营中都有像 Python 这样的东西:Python 在没有编译步骤的情况下被广泛使用,但主要实现 (CPython) 通过即时编译为字节码然后在VM,它 可以 将该字节码写入文件(.pyc, .pyo)以供使用而无需重新编译。
.pyc
.pyo
这只是 极 少数,如果你做一些研究,你会发现更多。