脚本语言:脚本语言与编程语言(scripting languages list)

任何人都可以解释脚本语言和编程语言之间的区别吗?
你也可以为每个陈述一些例子。我已经用 Google 搜索了很多,但我总是从 Stack Overflow 找到最好的答案。

518

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

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

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

还要注意,一种语言是否是一种“脚本”语言,可能与环境有关,而不是与语言有关。您没有理由不能编写 C 解释器并将其用作脚本语言(人们有)。您也没有理由不能将 JavaScript 编译为机器代码并将其存储在可执行文件中(人们有)。语言 Ruby 就是一个很好的例子:原始实现完全被解释(现在有“脚本”语言)。

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

Lua

JavaScript语言

VBScript 和 VBA

Perl

和一小部分传统与显式编译步骤一起使用:

C

C++

D

Java(但请注意,Java 被编译为字节码,然后在运行时进行解释和 / 或重新编译)

帕斯卡

...然后你有像 Pytn 这样的东西坐在两个阵营:Pytn 被广泛使用,没有编译步骤,但主要实现(CPytn)通过编译为字节码,然后在 VM 中运行字节码来做到这一点,它可以将字节码写入文件(.pyc.pyo),以便在不重新编译的情况下使用。

这只是一个很少,如果你做一些研究,你可以找到更多。

113

要了解脚本语言和编程语言之间的区别,必须了解脚本语言诞生的原因。

最初,有一些编程语言是用来构建 excel,word,浏览器,游戏等程序的。这些程序是用 c 和 java 等语言构建的。随着时间的推移,这些程序需要一种用户创建新功能的方式,因此他们必须为他们的字节码提供一个接口,因此脚本语言诞生了。

脚本语言通常不是编译的,所以只要你写了一些有意义的东西就可以运行。因此,excel 可以使用 C++ 构建,但它公开了一种名为 VBA 的脚本语言,供用户定义功能。同样,浏览器可以使用 C++ / Java 构建,但它们公开了一种名为 javascript 的脚本语言 (与 Java 没有任何关系)。

脚本语言通常位于某些编程语言之后。脚本语言通常对计算机本机功能的访问较少,因为它们运行在原始编程语言的子集上。这里的一个例子是 Javascript 将无法访问您的文件系统。脚本语言通常比编程语言慢。

尽管脚本语言可能具有较少的访问权限并且速度较慢,但它们可能是非常强大的工具。脚本语言成功的一个因素是易于更新。您还记得在网络上使用 java 小程序的日子吗,这是运行编程语言(java)与运行脚本语言(javascript)的示例。当时,计算机的功能不如 Java 强大,并且 javascript 的加载速度不如 Java 小程序的成熟,因此它们在当今的场景中占主导地位

最后,脚本语言也被认为是编程语言(尽管有些人拒绝接受这一点)-我们应该在这里使用的术语是脚本语言与编译语言。

68

所有脚本语言都是编程语言。

语言不被归类为脚本或不-它完全取决于执行环境。

如果环境是一个被解释的环境,这通常被称为脚本环境。

20

差异变得越来越不重要。传统上,脚本语言扩展现有程序...我认为这是“脚本”的主要定义,它是指为现有实体编写一组指令来执行。但是,在脚本语言以专有和口语语法开始的地方,如今大多数流行的脚本语言都与 C 有关。

我认为“解释与编译”的区别实际上是扩展现有程序(带有内置解释器)的症状,而不是内在的差异。程序员和外行更关心的是,“程序员在做什么?”一个程序被解释而另一个程序被编译的事实在确定创作者的活动差异方面意义不大。您不会根据剧作家的戏剧是在舞台上更经常朗读还是在舞台上表演来判断他的戏剧,对吗?

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(493)
硬件描述语言程序:硬件描述语言中的泛型(hardware description languages)
上一篇
事业单位c类网课:.NET单位类 英寸到毫米(inches to ml conversion)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(21条)