脚本与编码

时间:2013-12-29 20:05:05

标签: assembly scripting low-level

脚本和编码有什么区别?我已经完成了两个,我可以认识到这两个,但实际上,这些定义似乎是粗略的。首先,我正确地假设你是“编码”,你的“代码”必须(能够)编译成某个系统的机器或组件,无论是x86组件,windows组件(如MASM),微控制器组件等等?我是否也正确地认为脚本编写不会编译,它的文本只是通过像“Microsoft Windows Based Script Host”(VB-Script解析器)这样的处理程序运行?我得到了脚本和代码的一些特性,但在最低级别,我对它们的编译感到困惑。此外,我假设如果一个脚本变成某种形式的二进制文件,但是没有被操作系统或计算机(或微型计算机)本身处理,它仍然是一个脚本。我对吗?我知道代码可以“编译”到不可运行的“库”中,一些脚本语言可以运行其他脚本文件。

3 个答案:

答案 0 :(得分:2)

你可能是正确的,因为'脚本'的定义含糊不清。我认为最初的术语源于一个不同的时代,当时软件总是用C或Pascal等编译语言编写,然后可能用高级语言定制或自动化('脚本语言',如VBA)。

然而,今天,整个系统可以编写非编译语言。实际上,这至少可以追溯到1987年,HyperCard允许应用程序开发人员用脚本语言创建整个商业桌面应用程序,在以后的版本中,部分脚本可以编译成机器代码。

相反,现在某些应用程序可以使用编译语言进行自定义或自动化。例如,考虑可以在.NET中自动化的MS office应用程序(VB / C#是编译语言)。

此外,通常不再解释非编译语言,而是解释JITed。这意味着非编译语言和编译语言之间的区别很模糊。

因此,简而言之,我认为定义取决于背景。在我使用该术语的大多数情况下,我将“脚本”称为自动化或自定义(在代码中)由其他人创建的应用程序而不修改所述应用程序。

在Masterminds of Programming中,Roberto Ierusalimschy在被要求描述语言时写下以下内容:

  

Lua是表达式原始含义中的脚本语言。   控制其他组件的语言,通常用其他语言编写。

我非常喜欢这个定义。

答案 1 :(得分:0)

根据维基百科http://en.wikipedia.org/wiki/Scripting_language,脚本语言的主要特征似乎是:

  1. 在运行时环境中使用,它可以控制/自动化

  2. 解释

  3. 非常高的水平

  4. 动态

  5. 注意到有时这是特定语言的开始,在它被推广之前。因此,某些脚本语言仅因历史原因而被调用。 “非常高级别”和“动态”部分是我听到人们在提到脚本语言时最常使用的标准,所以我猜这是最可靠的指标。

答案 2 :(得分:0)

关于游戏:

编码 - 生成编译时间。需要游戏开发环境才能在编码器上使用。

脚本 - 运行时解释。只需要在脚本编写器上提供游戏。

如果脚本需要游戏编辑器来创建和处理脚本,那么即使该定义也有点灰色。

哲学上不同的是,脚本编写者只是通过文本文件中的代码自动化游戏,这些文本文件是游戏数据的一部分,因此可以在游戏发布后添加为mods或dlc。现在环境变得更加复杂,编写脚本的术语可以与编码人员互换。