有人能解释一下脚本语言和程序设计语言的区别吗? 你也可以举一些例子。我谷歌了很多,但我总是从Stack Overflow找到最好的答案。


当前回答

脚本语言是人们认为是脚本语言的编程语言。 这是一个没有明确边界的人为类别,而且每条提议的规则都有例外。

经典的规则用来说一种语言是一种脚本语言是表征,而不是定义。如果一种语言满足许多规则,那么它很有可能被认为是一种脚本语言。如果不是,很有可能不是。规则通常包括:

它适用于小型“脚本”,而不是大型程序。 它被嵌入到另一个应用程序中,用于该应用程序的小修改。 它是解释的,而不是编译的。 它是为新手程序员设计的,而不是专业人员。 它的名字以“script”结尾。

我还要补充说:

脚本语言是一种几乎所有错误都在运行时被检测到的编程语言。

也就是说,它可以是一种解释语言。

如果一种编程语言具有显著的“编译时”行为,即在不运行程序的情况下分析代码并报告错误,例如来自C、Java或c#的类型错误,那么它很可能不被认为是一种脚本语言。

传统上,很多脚本语言都是直接从源代码解释的,但更流行的脚本语言都有更高性能的实现,可以预编译代码,比如Python的.pyc文件,或者优化JavaScript引擎,在运行之前将其编译为本机代码。

如果该语言可以由解释器实现,解释器在运行时只查看源代码,那么它很可能被认为是脚本语言。它是否真的以这种方式实现并不重要,但如果可以,那么它也不需要对代码进行广泛的编译时错误检查。

如果该语言提供了一种有用的静态语义,可以帮助检测错误(除了语法错误),而不需要运行程序,那么它可能不是一种脚本语言。

总会有例外,通常是基于一种语言的传统,而不是任何实际的规则。 BASIC通常不被认为是一种“脚本语言”,尽管它几乎满足了任何人曾经使用过的作为脚本语言的所有标准。这就是为什么Visual Basic Script必须在名称中添加“脚本”,以区别于Visual Basic,后者是一种“真正的”用于大型程序的编程语言。

BASIC也是一种古老的编程语言,就像COBOL和Fortran一样,在人们期望从语言中获得静态分析之前,基本上在“脚本语言”出现之前。

其他回答

除了脚本语言是解释性的,而编程语言是编译性的,还有一个不同之处,如下所示,我想这一点已经被忽略了。

脚本语言是一种编程语言,用于操作、定制和自动化现有系统的设施。在这样的系统中,通过用户界面已经可以获得有用的功能,而脚本语言是一种将该功能暴露给程序控制的机制。

而编程语言通常用于从头开始编写系统代码。

src ECMA

我认为你所说的“差异”实际上是真实差异的结果。

实际的区别在于所编写代码的目标。谁来运行这段代码。

脚本语言用于编写针对软件系统的代码。它将对软件系统进行自动化操作。脚本将是目标软件系统的指令序列。

编程语言的目标是计算系统,可以是真实的也可以是虚拟机。指令是由机器执行的。

当然,真正的机器只理解二进制代码,因此您需要编译编程语言的代码。但这是针对机器而不是程序的结果。

另一方面,脚本的目标软件系统可以编译代码或解释它。由软件系统决定。

如果我们说真正的区别是它是否被编译,那么我们就有一个问题,因为Javascript在V8中运行时是编译的,而在Rhino中运行时不是。

由于脚本语言已经进化得非常强大,所以它变得更加令人困惑。因此,它们不局限于创建小脚本来自动化另一个软件系统上的操作,您可以使用它们创建任何丰富的应用程序。

Python代码以解释器为目标,因此我们可以说它“脚本化”了解释器上的操作。但是,当你编写Python代码时,你不会将其视为编写解释器脚本,而是将其视为创建应用程序。解释器只是用于在更高级别上编写代码。所以对我来说,Python更像是一种编程语言,而不是脚本语言。

如果我们从逻辑上看编程语言和脚本语言,这是99.09%相同的。因为我们使用相同的概念,如循环、控制条件、变量等等,所以我们可以说两者都是相同的,但它们之间只有一件事是不同的,那就是在C/ c++和其他编程语言中,我们在执行前编译代码。但在PHP, JavaScript和其他脚本语言中,我们不需要编译,我们直接在浏览器中执行。

谢谢 Nitish K. Jha

脚本语言

脚本语言是在另一个程序中解释的。JavaScript被嵌入到浏览器中,并由该浏览器进行解释。

脚本语言示例

JavaScript Perl Python

脚本语言的优点:

简单——脚本语言比编程更容易编写 语言。 更少的代码行数

编程语言

像Java这样的编程语言是由另一个应用程序以同样的方式编译和解释的。

编程语言示例

C c++和 Java

更多的细节

http://www.yorku.ca/nmw/facs1939f13/javascript_all/js_scriptingVSprogramming.html http://www.killersites.com/blog/2005/scripting-vs-programming-is-there-a-difference/

我不同意使用解释器的语言是脚本语言,而被编译的是编程语言。我们可以为任何语言开发解释器或编译器。解释环境更适合web脚本编写,使它更容易,这就是为什么我们有它。

嗯,我觉得脚本语言和编程语言之间没有任何区别。一切都是为了完成工作。当涉及到与web相关的任务时,我们把它们称为web脚本,考虑到小任务,这样我们也可以把与系统相关的任务称为系统或操作系统级脚本,我们用来完成这些任务的编程语言称为系统脚本语言。

同样,这并不是说不能用Python编写系统级代码,不能用C语言编写Web脚本(如果我们能够建立所需的平台和环境,当然可以这样做)。但它所需要的是太多的努力,这可能会影响快速开发的时间限制,而减少的一点点延迟对我们的web脚本没有多大好处。但如果我们在Python中执行系统级任务,则相反。

底线:语言选择取决于要执行的任务的性质,将一种语言区分为脚本语言是一个神话。