什么时候将一种语言视为脚本语言?

时间:2020-03-06 14:25:28  来源:igfitidea点击:

是什么使语言成为脚本语言?我听说有人说"当它被解释而不是编译时"。这将使PHP(例如)成为脚本语言。那是唯一的标准吗?还是有其他标准?

也可以看看:

  • 脚本和应用程序之间有什么区别?

解决方案

脚本语言倾向于在脚本引擎内运行,脚本引擎是大型应用程序的一部分。例如,JavaScript在浏览器脚本引擎中运行。

我会说脚本语言是它本身并没有定义的大量操作实体。例如,JavaScript操纵浏览器提供的DOM对象,PHP操纵着巨大的基于C函数的库,依此类推。当然不是一个精确的定义,更多的是考虑的方式。

"脚本语言"是可能意味着很多事情的模糊概念之一。通常,它指的是存在一个将我们从源代码带到执行的一步过程的事实。

例如,在Perl中,我们可以执行:perl my_source.pl

根据上述条件,PHP是一种脚本语言(即使例如在使用Zend编码器"保护"源代码时,我们可以进行"编译"过程)。

PS。通常(但并非总是)脚本语言会被解释。还经常(但并非总是如此)动态地编写脚本语言。

脚本语言是一种"脚本化"其他事情以完成工作的语言。主要重点不是主要构建自己的应用程序,而是使现有应用程序按照我们想要的方式运行,例如适用于浏览器的JavaScript,适用于MS Office的VBA。

标准听起来不错,但总是有些模糊。例如,Java既被编译(编译为字节码),又被编译(由JVM解释)。但是,通常不会将其归类为脚本语言。

这可能是因为Java是静态类型的。而JavaScript,Ruby,Python,Perl等不是(所有这些通常都称为脚本语言)。

我的定义是一种通常以源代码而不是二进制代码分发的语言。

我是否可以建议脚本语言已成为许多人逐渐远离的术语。我要说的是,如今主要归结为编译语言和动态语言。

我的意思是,在当今这个时代,我们不能真正说出类似Python或者Ruby的"脚本"语言(我们甚至拥有IronPython和我们喜欢的JIT语言之类的东西,两者之间的差异更加模糊了)。

老实说,我个人认为PHP不再是一种脚本语言。我不希望人们喜欢在简历上对PHP进行分类,而不是对Java进行分类。

简单的。当我使用它时,它是一种现代的动态语言,当我们使用它时,它只是一种脚本语言!

脚本语言是每次脚本运行时都会进行解释的语言,这意味着具有解释器,并且大多数语言都易于阅读,因此有用的脚本语言易于学习和使用。

每种可编译语言都可以转换成脚本语言,反之亦然,这都取决于实现解释器或者编译器,例如C ++具有解释器,因此如果可以使用,可以将其称为脚本语言(一般来说,C ++不太实用是一种非常复杂的语言),目前最有用的脚本语言之一是Python ...

因此,要回答问题,定义是使用解释程序来运行快速且容易编写脚本的程序,以解决简单任务或者原型应用程序时,脚本语言最强大的用途就是包括每次使用都可能扩展一个语言。编译的应用程序。

我更希望人们不要使用"脚本语言"一词,因为我认为这样可以减少工作量。像Perl这样的语言,通常称为"脚本语言"。

  • Perl是一种编程语言!
  • Perl像Java和C ++一样进行编译。它的编译速度更快!
  • Perl具有对象,名称空间和闭包。
  • Perl具有IDE以及调试器和分析器。
  • Perl具有培训,支持和社区。
  • Perl不只是网络。 Perl不仅是sysadmin。 Perl不仅是Internet的胶带。

为什么我们甚至需要区分一种语言,例如已编译的Java和未编译的Ruby?标签有什么价值?

有关更多信息,请参见http://xoa.petdance.com/Stop_saying_script。

我认为Roberto Ierusalimschy先生在" Lua编程"中有一个很好的答案或者问题:

However, the distinguishing feature of
  interpreted languages is not that they
  are not compiled, but that any
  compiler is part of the language
  runtime and that, therefore, it is
  possible (and easy) to execute code
  generated on the fly

如果它不/不会在CPU上运行,那对我来说是个脚本。
如果解释器需要在程序下方的CPU上运行,则它是一种脚本和一种脚本语言。

没有理由比这更复杂吗?

当然,在大多数情况下(99%),很明显一种语言是否为脚本语言。
但是请考虑,例如,VM可以模拟x86指令集。在VM上运行时,这是否会使x86字节码成为脚本语言?
如果有人要编写将perl代码变成本机可执行文件的编译器怎么办?在这种情况下,我将不再知道该语言本身的名称。重要的是输出,而不是语言。

再说一次,我不知道已经完成了什么事情,所以现在我仍然很愿意调用解释型语言的脚本语言。

脚本是一个相对较小的程序。系统是一个相对较大的程序,或者是相对较大的程序的集合。

设计某些编程语言时,语言设计人员和编程社区认为这些功能在编写相对较小的程序时会很有用。这些编程语言被称为脚本语言,例如PHP。

同样,其他编程语言也具有一些功能,语言设计者和编程社区认为这些功能在编写相对较大的程序时会很有用。这些编程语言被称为系统语言,例如。 Java。

现在,无论大小程序都可以用任何语言编写。一个小的Java程序是一个脚本。例如,Java" Hello World"程序是脚本,而不是系统。用PHP编写的大型程序或者程序集合是一个系统。例如,用PHP编写的Facebook是系统,而不是脚本。

将单一语言功能视为"石蕊测试"来确定该语言最适合脚本编写还是系统编程是值得商question的。例如,脚本可以编译为字节码或者机器码,或者可以通过直接抽象语法树(AST)解释执行。

因此,如果一种语言通常用于编写脚本,则它是一种脚本语言。脚本语言可能用于编写系统,但此类应用程序可能被认为是可疑的。

我认为脚本语言是不需要任何明显的"编译"步骤的脚本语言。从程序员的角度来看,主要功能是:我们可以编辑代码并立即运行它。

因此,我将JavaScript和PHP视为脚本语言,而ActionScript 3 / Flex并不是真正的脚本语言。

另外,我们可能想查看有关脚本语言的播客。

用编程语言的概念来解释罗伯特·塞贝斯塔:

A scripting language is used by putting a list of commands, called a script, in a file to be executed. The first of these languages, named sh (for shell), began as a small collection of commands that were interpreted as calls to system sub-programs that performed utility funcions, such as file management and simple file filtering. To this basis were added variables, control flow statemens, functions, and various other capabilities, and the result is a complete programming language.

然后有AWK,Tcl / Tk,Perl之类的示例(它说最初是sh和AWK的组合,但是它变得如此强大,以至于他认为它是"古怪但成熟的编程语言")。其他示例包括CGI和JavaScript。

就像色情片一样,看到它就知道。脚本语言的唯一可能定义是:

A language which is described as a scripting language.

有点循环,不是吗? (顺便说一句,我不是在开玩笑)。

基本上,没有什么可以使一种语言成为脚本语言,除非它被称为脚本语言,尤其是被其创建者所称呼。现代脚本语言的主要集合是PHP,Perl,JavaScript,Python,Ruby和Lua。 Tcl是第一种主要的现代脚本语言(尽管它不是第一种脚本语言,但我忘了它是什么,但是我很惊讶地发现它早于Tcl)。

我在论文中描述了主要脚本语言的功能:

A Practical Solution for Scripting Language Compilers
 Paul Biggar, Edsko de Vries and David Gregg
 SAC '09: ACM Symposium on Applied Computing (2009), (March 2009)

大多数都是动态键入和解释的,并且大多数没有在参考实现之外定义的语义。但是,即使它们的主要实现已被编译或者JIT化,也不会改变语言的"性质"。

他们唯一剩下的问题是如何分辨新语言是否是脚本语言。好吧,如果它被称为脚本语言,那就是一种。因此,Factor是一种脚本语言(或者至少是在编写脚本时),但是,Java不是。

一个重要的区别是强类型(相对于弱类型)。脚本语言通常类型较弱,从而可以更快地编写小型程序。对于大型程序,这是一个缺点,因为它会禁止编译器/解释器自动查找某些错误,从而使代码重构非常困难。

甚至Java也是"一种脚本语言",因为它是用C语言实现的"

尽管我犹豫要尝试改进mgb的接近完美的答案,但事实是,没有什么比C更好的实现了,但是该语言是相当底层的并且与硬件接近。可以肯定的是,纯粹的天才,但是要开发现代的软件,我们需要一种可以站在C肩上的高级语言。

因此,我们拥有Python,Ruby,Perl,是的,甚至Java,都以C语言实现。人们不会通过将Java称为脚本语言来侮辱Java。如果我们想要一种功能强大,现代,动态,反射式等等的语言,则可能正在运行像Ruby之类的东西,这些东西可以直接用C解释,也可以编译成由某些C程序解释/编译的JIT。

人们做出的另一个区分是将动态类型化的语言称为"脚本语言"。

传统上,当谈论脚本与编程的区别时,将解释脚本并编译程序。语言可以以不同的方式解释或者编译(以字节码或者机器码的形式)执行。这不会使一种或者另一种语言成为可能。

在某些人眼中,语言的使用方式使其成为脚本语言(例如,主要使用C ++开发的游戏开发人员将使用Lua编写对象脚本)。同样,这些行是模糊的,一种语言可以被一个人用于编程,而另一种语言可以被用于脚本语言。

这是来自维基百科有关脚本语言的文章:

A scripting language, script language or extension language is a programming language that allows control of one or more software applications. "Scripts" are distinct from the core code of the application, as they are usually written in a different language and are often created or at least modified by the end-user.  Scripts are often interpreted from source code or bytecode, whereas the applications they control are traditionally compiled  to native machine code. Scripting languages are nearly always embedded in the applications they control.

我们会注意到使用"通常","经常","传统"和"几乎总是"这些都告诉我们,没有一组不同的属性使特定语言成为"脚本语言"。

一个师是

  • 脚本=动态解释
  • 正常=已编译

动态解释的语言在运行时被解释,而编译的语言在执行之前被编译。

我还要补充一点,正如J?rg所指出的那样,解释/编译的区别不是语言的功能,而是执行引擎的功能。

我们可能还对Type系统的这种解释感兴趣,该解释是相关的,并且更多地侧重于语言方面,而不是执行引擎。大多数脚本语言是动态类型的,而"普通"语言大多数是静态类型的。

通常,可以更好地定义静态类型的语言与动态类型的语言的区分,并且对语言的可用性具有更大的影响。

"A script is what you give the actors.
  A program is what you give the
  audience." -- Larry Wall

我真的认为不再有太大的区别了。所谓的"脚本"语言通常会非常快速地在运行时进行编译。并且某些"编程"语言也将在运行时进行进一步编译(考虑到JIT),"编译"的第一阶段是语法检查和资源解析。

不要挂在上面,这并不重要。

我认为,动态解释的语言(例如PHP,Ruby等)仍然是"普通"语言。我会说"脚本"语言的例子是bash(或者ksh或者tcsh或者其他)或者sqlplus之类的东西。这些语言通常用于将系统上的现有程序链接到一系列连贯且相关的命令中,例如:

  • 将A.txt复制到/ tmp / work /
  • 在数据库服务器上运行每晚的清理过程
  • 记录结果并将其发送到sysdamin

因此,我想说的是(无论如何对我而言)区别在于我们如何使用该语言。诸如PHP,Perl,Ruby之类的语言可以用作"脚本语言",但我通常会看到它们被用作"常规语言"(Perl除外,这似乎是双向的)。

脚本语言通常为:

  • 动态类型
  • 解释,很少强调性能,但具有良好的可移植性
  • 所需的样板代码少得多,从而可以快速进行原型制作
  • 用于小型任务,适合编写一个文件以运行一些有用的"脚本"。

非脚本语言通常是:
1.静态类型
2.编译,注重性能
3.需要更多样板代码,导致原型制作速度较慢,但​​可读性和长期可维护性更高
4.用于大型项目,适应多种设计模式

我认为,如今这更多的是历史差异。写Javascript和Perl时要考虑小的简单脚本,而写C ++时要考虑复杂的应用程序。但是两者都可以使用。无论如何,无论是现代的还是古老的,许多编程语言仍然模糊了这条线(首先是模糊的!)。

可悲的是,我认识了一些开发人员,他们讨厌他们认为的"脚本语言",认为它们更简单而不是功能强大。我认为旧的陈词滥调使用正确的工具来完成这项工作。

所有脚本语言都是编程语言。因此严格来说,没有区别。

该术语不指该语言的任何基本属性,而是指该语言的典型用法。如果通常的用途是编写主要对预先存在的代码进行调用的简短程序,并对结果进行一些简单的处理(即,如果典型的用途是编写脚本),那么它就是一种脚本语言。

脚本语言最初被认为是用硬编程语言编写的应用程序的控制机制。编译后的程序无法在运行时进行修改,因此脚本编写可以给人们带来灵活性。

最值得注意的是,shell脚本使OS内核中的进程自动化(传统上是Mac上的AppleScript)。这个角色越来越多地传递到Perl的手中,然后又逐渐移交给Python。我已经看到Scheme(特别是在其Guile实现中)用于声明光线跟踪场景。最近,Lua作为编写游戏脚本的编程语言非常流行,以至于在许多新游戏中,唯一的硬编码就是图形/物理引擎,而整个游戏逻辑都是用Lua编码的。同样,人们认为JavaScript可以编写Web浏览器行为的脚本。

语言解放了;现在没有人认为操作系统是一个应用程序(或者根本不考虑它),许多以前的脚本语言开始被用来编写自己的完整应用程序。该名称本身变得毫无意义,并传播到当今使用的许多解释语言,无论它们是否旨在从另一个系统内部进行解释。

但是,"脚本语言"绝对不是"解释语言"的同义词,例如,BASIC在其一生的大部分时间里都被解释过(即,在失去其通用性并成为Visual Basic之前),但没有人真正将其视为脚本。

更新:像往常一样阅读Wikipedia上的资料。

脚本语言是编程语言,通常将程序以可读的文本形式交付给最终用户,并且存在可以直接执行该程序的程序。 (该程序可以很好地在内部编译脚本;此处不相关,因为它对用户不可见。)

脚本语言能够支持交互式会话是相对常见的,在该会话中,用户只需键入他们的程序并立即执行它即可。这是因为这是对第一段基本要求的简单扩展。主要的额外要求是增加了一种机制,用于确定键入的语句何时完成,以便可以将其发送到执行引擎。

只是为了布雷夫

脚本语言在另一个程序中运行。
脚本语言未编译。
脚本语言易于使用和编写。

非常流行的编程语言(Java,C#)在诸如脚本语言之类的父程序中运行。
今天,脚本语言用于构建复杂的软件。
如今的计算机如此之快,脚本语言是如此高效,以至于对于大多数业务运营而言,编译后的编程语言并没有实际的速度优势(曾经有过)。

对于这个问题稍有不同。
脚本语言是一种编程语言,但是编程语言不一定是一种脚本语言。
脚本语言用于控制或者编写系统脚本。
该系统可以是脚本语言为bash的操作系统。
该系统可以是具有PHP脚本语言的Web服务器。
脚本语言旨在填充特定的细分市场;它们是特定领域的语言。
交互式系统已经解释了脚本语言,从而产生了解释脚本语言的概念。但是,这是系统的结果,而不是脚本语言本身。

正如其他人指出的那样,没有编译或者解释的语言,因为任何语言都可以被编译或者解释。但是,传统上解释而不是编译的语言(Python,Perl,Ruby,PHP,JavaScript,Lua)也被人们称为脚本语言。因此,可以说脚本语言是一种通常被解释而不是编译的语言,这是相对合理的。脚本语言共有的其他特征与它们被解释的事实有关。

脚本语言实际上是编程语言的子集。我认为大多数人都不会声称我前面提到的任何语言都不是编程语言。

首先,编程语言不是"脚本语言"或者其他东西。它可以是"脚本语言"或者其他。

第二点,该语言的实现者会告诉我们它是否是脚本语言。

问题应为"在哪种实现中将编程语言视为脚本语言?",而不是"脚本语言与编程语言之间有什么区别?"。两者之间没有。

但是,如果将一种语言用于提供某种类型的中间件,那么我会将其视为一种脚本语言。例如,我会将JavaScript的大多数实现视为脚本语言。如果JavaScript是在操作系统而不是浏览器中运行的,那么它将不是脚本语言。如果PHP在Apache内部运行,则它是一种脚本语言。如果从命令行运行,则不是。

脚本语言是配置或者扩展现有程序的语言。
脚本语言是一种编程语言。

有很多可能的答案。

首先:脚本语言和编程语言之间的区别并不是一个真正的问题,因为脚本语言是一种编程语言。问题更多的是什么特性使某种编程语言成为一种脚本语言,而另一种编程语言不是一种脚本语言。

其次:很难说XYZ语言是什么,无论XYZ是"脚本","函数式编程","面向对象的编程"还是我们拥有什么。 "功能编程"的定义非常清楚,但是没有人知道"功能编程语言"是什么。

函数式编程或者面向对象的编程是编程风格。我们几乎可以使用任何一种语言来编写功能样式或者面向对象样式。例如,尽管使用C语言编写,Linux虚拟文件系统切换器和Linux驱动程序模型还是高度面向对象的,而我们在Web上看到的许多Java或者Ccode都是非常过程化的,并且根本不是面向对象的。 OTOH,我已经看到了一些功能强大的Java代码。

因此,如果函数式编程和面向对象的编程仅仅是可以用任何一种语言完成的样式,那么如何定义"面向对象的编程语言"呢?我们可以说一种面向对象的编程语言是一种允许进行面向对象的编程的语言。但这还不算什么定义:所有语言都允许面向对象的编程,因此所有语言都是面向对象的吗?因此,我们说,如果一种语言迫使我们以一种面向对象的风格进行编程,那么它就是面向对象的。但这也不是什么定义:所有语言都允许进行功能编程,因此没有一种语言是面向对象的吗?

因此,对我来说,我找到了以下定义:

A language is a scripting language (object-oriented language / functional language) if it both
  
  
  facilitates scripting (object-oriented programming / functional programming), i.e. it not only allows it but makes it easy and natural and contains features that help with it, AND
  encourages and guides you towards scripting (object-oriented programming / functional programming).

因此,在五个段落之后,我得出:"脚本语言是脚本语言。"多么好的定义。不是。

显然,我们现在需要查看"脚本"的定义。

这就是第三个问题的出处:"函数式编程"一词定义明确,只有术语"函数式编程语言"有问题,不幸的是在脚本编写中,术语"脚本"和"脚本语言" "定义不明确。

好吧,首先脚本是编程。这只是一种特殊的编程。 IOW:每个脚本都是一个程序,但不是每个程序都是一个脚本;所有脚本集是所有程序集的适当子集。

我个人认为,使脚本编写脚本与其他程序设计区别开来的是,

Scripts largely manipulate objects that
  
  
  were not created by the script,
  have a lifetime independent of the script and
  live outside the domain of the script.
  
  
  Also, the datatypes and algorithms used are generally not defined by the script but by the outside environment.

考虑一下shell脚本:shell脚本通常操纵文件,目录和进程。系统上的大多数文件,目录和进程可能不是由当前运行的脚本创建的。它们在脚本退出时不会消失:它们的生存期完全独立于脚本。而且它们也不是脚本的真正组成部分,它们是系统的一部分。我们不是通过编写FileDirectory类来启动脚本的,这些数据类型都不在乎我们:我们只是假设它们在那里,甚至都不知道(也不需要知道)它们的方式。工作。而且我们也不会实现自己的算法,例如对于目录遍历,我们只需使用find而不是实现自己的广度优先搜索。

简而言之:脚本将自己添加到一个独立于脚本而存在的较大系统,操纵系统的一小部分然后退出。

如果使用Shell脚本,则较大的系统可以是操作系统;如果使用浏览器脚本,则可以是浏览器DOM;游戏(例如,使用Lua的《魔兽世界》或者使用Linden脚本语言的《第二人生》),应用程序(例如,AutoLisp) AutoCAD或者Excel / Word / Office宏的语言),Web服务器,一堆机械手或者其他任何东西。

请注意,脚本编写方面与编程语言的所有其他方面完全正交:脚本编写语言可以是强类型或者弱类型,严格或者松散类型,静态或者动态类型,名义上,结构上或者鸭式类型,甚至可以取消类型。它可以是命令性的或者功能性的,面向对象的,过程性的或者功能性的,严格的或者惰性的。它的实现可以被解释,编译或者混合。

例如,Mondrian是具有编译实现的严格强静态类型的惰性函数脚本语言。

但是,所有这些都是没有意义的,因为术语脚本语言在现实世界中的实际使用方式与上述任何方式都没有关系。它最常被用作侮辱,其定义相当简单,甚至过于简单:

real programming language: my programming language
  scripting language: your programming language

这似乎是该术语最常用的方式。

"脚本语言"的定义非常模糊。我将基于以下考虑因素:

  • 脚本语言通常没有用户可见的编译步骤。通常,用户只需用一个简单的命令即可运行程序。
  • 脚本语言的程序通常以源代码形式传递。
  • 脚本语言通常具有大量系统上存在的运行时,并且这些运行时可以轻松安装在大多数系统上。
  • 脚本语言往往是跨平台的,而不是特定于机器的。
  • 脚本语言使调用其他程序和与操作系统的接口变得容易。
  • 脚本语言通常很容易嵌入到以更常规的编程语言编写的大型系统中。
  • 脚本语言通常是为简化编程而设计的,并且很少考虑执行速度。 (如果要快速执行,通常的建议是用C之类的代码编写耗时的部分,然后将语言嵌入C或者从该语言调用C位。)

我上面列出的某些特征对于实现来说是正确的,在这种情况下,我指的是更常见的实现。已经有了C解释器,其中(AFAIK)没有明显的编译步骤,但是对于大多数C实现而言,情况并非如此。我们当然可以将Perl程序编译为本机代码,但这不是通常使用的方式。其他一些特征是社会性质的。上述某些准则有些重叠。正如我所说,定义是模糊的。

我将继续并从重复的问题中迁移我的答案

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

例如,从前,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是脚本语言,因为它们是计算机用来与基本主板/图形卡/芯片接口的脚本?

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

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