脚本语言和其他语言有什么区别

时间:2010-06-15 07:55:55

标签: programming-languages scripting

  

可能重复:
  When is a language considered a scripting language?

我对不同类型的语言感到困惑。 任何人都可以指导什么是差异类型的语言或差异类别。

就像有人说python是脚本语言。这是什么意思。其他语言如php,asp,java不是脚本语言

6 个答案:

答案 0 :(得分:6)

“脚本语言”这一名称适用于一个非常具体的角色:您编写命令以发送到现有软件应用程序的语言。 (像传统的电视或电影“剧本”)

例如,曾几何时,HTML网页很无聊。它们总是静止的。然后有一天,Netscape想,“嘿,如果我们让浏览器阅读并对页面中的小命令采取行动怎么办?”就这样,Javascript就形成了。

一个简单的javascript命令是alert()命令,它指示/命令正在读取网页的浏览器(软件应用程序)显示警报。

现在,alert()以任何方式与C ++或浏览器实际使用显示警报的任何代码语言相关吗?当然不是。在.html页面上写“alert()”的人不了解浏览器实际显示警报的方式。他只是在写一个浏览器会解释的命令。

让我们看一下简单的javascript代码

<script>
var x = 4
alert(x)
</script>

这些是发送到浏览器的指令,供浏览器自行解释。浏览器通过实际将变量设置为4的编程语言,并将其置于警报中...它与javascript完全无关。

我们将最后一系列命令称为“脚本”(这就是为什么它包含在<script>标签中)。仅仅通过“脚本”的定义,在传统意义上:发送给演员的一系列指令和命令。例如,每个人都知道剧本(电影剧本)是一个剧本。

剧本(剧本)演员,相机或特效。剧本只是告诉他们该做什么。

现在,什么是脚本语言,究竟是什么?

有很多编程语言就像工具箱中的不同工具一样;某些语言设计为具体以用作脚本。

Javasript是一个明显的例子;很少有Javascript应用程序不属于脚本编写领域。

ActionScript(Flash动画的语言)及其派生词是脚本语言,因为它们只是向Flash播放器/解释器发出命令。当然,有一些抽象,比如面向对象的编程,但所有这些只是达到目的的一种手段:向flash播放器发送命令。

Python和Ruby通常也用作脚本语言。例如,我曾经为一家公司工作,该公司使用Ruby来编写脚本命令以发送到“浏览此站点,点击此链接......”的浏览器,以进行一些基本的自动化测试。在那份工作中,我无论如何都不是<软件开发人员“。我刚刚编写了脚本,将命令发送到计算机以向浏览器发送命令。

由于它们的性质,脚本语言很少被“编译” - 即翻译成机器代码,并由计算机直接读取。

即使是从Python和Ruby创建的GUI应用程序也是发送到用C ++或C编写的API的脚本。它告诉C应用程序该做什么。

当然,有一线模糊。为什么你不能说Machine Language / C是脚本语言,因为它们是计算机用来与基本主板/显卡/芯片连接的脚本?

我们可以通过一些方式来澄清:

  1. 当你可以编写脚本语言并在没有“编译”的情况下运行它时,它更像是一种直接脚本的东西。例如,您不需要对剧本做任何事情,以告诉演员如何处理它。它已经存在,按原样使用。出于这个原因,我们将排除编译语言被称为脚本语言,即使它们在某些情况下可用于编写脚本。

  2. 脚本语言意味着发送到复杂软件应用程序的命令;这就是我们首先编写脚本的全部原因 - 因此您无需了解软件如何向其发送命令的复杂性。因此,脚本语言往往是向复杂的软件应用程序发送(相对)简单命令的语言 ...在这种情况下,机器语言和汇编代码不会削减它。

答案 1 :(得分:0)

脚本语言通常被解释而不是编译。

答案 2 :(得分:0)

有许多taxonomies用于对编程语言进行分类 关于脚本,scripting language(python,ruby,php)是一种直接从源代码在解释器上运行的语言。
其他语言是已编译的语言(从二进制格式:c,c ++,pascal运行)中间,编译为中间形式并在内部运行虚拟机(java,c#)。

答案 3 :(得分:0)

  

脚本语言是一种专注于简化链接或操纵其他程序的语言

维基百科说:

  

When a language is used to give commands to a software application (such as a shell) it is called a scripting language

     

A scripting language, script language or extension language is a programming language that allows control of one or more software applications.

这是 正交 ,无论是解释还是其他 - 例如,Java最初被解释,但没有人称它为脚本语言。只是碰巧,如果你正在实现一种脚本语言,解释它是一种直截了当的方法。

许多脚本语言都是通过JIT编译成字节码或机器码。

答案 4 :(得分:0)

答案 5 :(得分:-1)

脚本语言和其他语言之间的区别主要在于解释的动态类型语言(例如PHP,VBScript,JScript和Javascript)和编译的静态类型语言(例如C#,VB.NET,Java,C ++和Delphi的)。

ASP不是一种语言,而是脚本语言平台(VBScript / JScript),而ASP.NET是编译语言的平台(主要是C#/ VB.NET)。