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

标签 programming-languages scripting

Possible Duplicate:
When is a language considered a scripting language?




我真的对不同类型的语言感到困惑。
谁能指导什么是diff类型的语言或diff类别。

就像有人说python是脚本语言一样。这是什么意思。是否还有其他语言(例如php,asp,java)未编写脚本语言

最佳答案

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

例如,从前,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 Player发送命令。

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

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

甚至从Python和Ruby创建的GUI应用程序都是发送到用C ++或C编写的API的脚本。它告诉C应用程序该怎么做。

当然有一些模糊性。您为什么不能说机器语言/ C是脚本语言,因为它们是计算机用来与基本主板/图形卡/芯片接口的脚本?

我们可以画一些线来阐明:


当您可以编写脚本语言并在不进行“编译”的情况下运行它时,它更像是一种直接脚本式的事情。例如,您无需为剧本做任何事情即可告诉演员如何处理它。它已经存在,可以按原样使用。因此,即使某些情况下编译后的语言可用于脚本目的,我们也将其排除在脚本语言之外。
脚本语言意味着将命令发送到复杂的软件应用程序。这就是我们首先编写脚本的全部原因-因此您无需了解软件向其发送命令的工作方式的复杂性。因此,脚本语言倾向于是向相对复杂的软件应用程序发送(相对)简单命令的语言……在这种情况下,机器语言和汇编代码不会削减它。

关于programming-languages - 脚本语言和其他语言有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3043401/

相关文章:

linux - 用于查找文件中缺少哪个服务器的 Bash 脚本?

javascript - 有没有办法编写一个 greasemonkey 脚本来注册热键?

javascript - 如何将模块作为依赖注入(inject)添加到 AngularJS 中的其他抛出代码中?

linux - bash 脚本中的多任务处理

基于 Unicode 的编程语言

c++ - 与电子组件(步进电机等)交互的良好编程语言(或一组C++库)是什么?

arrays - 所有语言中的数组都是连续存储的吗?

functional-programming - 为什么在Scheme中cond是一种特殊形式,而不是函数?

function - 元表如何工作以及它们的用途是什么?

linux - 通过多个脚本向 Bash 数组添加数据