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


当前回答

这些差异正变得越来越不重要。传统上,脚本语言扩展了现有的程序……我认为这就是“脚本”的主要定义,它指的是为现有实体编写一组执行指令。然而,脚本语言起源于专有的和口语化的语法,现在流行的大多数脚本语言都与C有某种关系。

I think the "interpreted vs compiled" distinction is really a symptom of extending an existing program (with a built in interpreter), rather than an intrinsic difference. What programmers and laymen are more concerned about is, "what is the programmer doing?" The fact that one program is interpreted and another is compiled means very little in determining the difference in activity by the creator. You don't judge a playwright on whether his plays are more commonly read aloud or performed on stage, do you?

其他回答

脚本语言

脚本语言是在另一个程序中解释的。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中执行系统级任务,则相反。

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

在脚本语言(JavaScript和旧的PHP版本)中,我们使用现有的基本函数和方法来执行我们的工作。 让我们以JavaScript为例,我们可以使用ajax或web-sockets,只有当它们被浏览器支持或方法存在或它们在浏览器中。但在C或c++、Java等语言中,我们可以从头开始编写该功能,即使该功能的任何库都不可用,但在JavaScript中我们不能这样做。

你能在ie8或之前版本的浏览器中使用JavaScript支持web-socket吗 但是你可以用C或c++或Java编写一个插件,它可以为Internet Explorer 8添加web-socket的功能。

基本上,在脚本语言中,我们按顺序编写代码,以执行现有的方法来完成我们的工作。在数字计算器中输入数字和公式来进行运算也是脚本语言的一个很好的例子。我们应该注意到,每种脚本语言的编译器/运行时环境总是用编程语言编写的,我们可以在编程语言中添加更多的特性和方法,并可以编写新的库。

PHP 这是一种有点b/w编程和脚本的语言。我们可以通过添加用另一种高级语言编写的编译扩展来添加新方法。我们不能直接在PHP中添加网络的高级特性或创建图像处理库。

附:我真的很抱歉把我的答案围绕PHP JavaScript,但我使用这两个,因为我在这两个方面有相当丰富的经验。

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

谢谢 Nitish K. Jha

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

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

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

我还要补充说:

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

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

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

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

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

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

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

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