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


当前回答

在脚本语言(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

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

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

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

src ECMA

要理解脚本语言和程序设计语言之间的区别,就必须理解脚本语言诞生的原因。

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

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

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

Although scripting languages may have less access and are slower, they can be very powerful tools. One factor attributing to a scripting languages success is the ease of updating. Do you remember the days of java applets on the web, this is an example of running a programming language (java) vs running a scripting language (javascript). At the time, computers were not as powerful and javascript wasn't as mature so Java applets dominated the scenes. But Java applets were annoying, they required the user to sort of load and compile the language. Fast forward to today, Java applets are almost extinct and Javascript dominates the scene. Javascript is extremely fast to load since most of the browser components have been installed already.

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

脚本语言是编程语言的一个子集。

脚本语言不会被用户编译成机器码(python、perl、shell等)。相反,另一个程序(称为解释器,运行程序并模拟其行为) 一些不是脚本的编程语言(C、c++、Haskell和其他“编译”语言)被编译成机器代码,然后运行。

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

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

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

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