【问题标题】:Scripting vs. Coding脚本与编码
【发布时间】:2014-01-16 17:57:47
【问题描述】:

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

【问题讨论】:

    标签: assembly scripting compilation interpreter low-level


    【解决方案1】:

    您可能是对的,“脚本”的定义很模糊。我认为最初的术语源于一个不同的时代,当时软件总是用 C 或 Pascal 等编译语言编写,然后可能用高级语言(“脚本语言”,如 VBA)进行定制或自动化。

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

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

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

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

    在《编程大师》一书中,当被要求描述语言时,Roberto Ierusalimschy 写道:

    Lua 是一种脚本语言的表达本义。 一种控制其他组件的语言,通常用另一种语言编写。

    我真的很喜欢这个定义。

    【讨论】:

      【解决方案2】:

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

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

      2. 解释

      3. 非常高的水平

      4. 动态

      请注意,有时特定语言在被推广之前就是这样开始的。因此,某些脚本语言仅出于历史原因才被称为。 “非常高级”和“动态”部分是我听到人们在提到类似于脚本语言的东西时最常使用的标准,所以我猜这是最可靠的指标。

      【讨论】:

        【解决方案3】:

        关于游戏:

        编码 - 编译时生成。要求游戏开发环境在编码器机器上可用。

        脚本 - 运行时解释。只需要游戏在 thw scripters 机器上可用。

        如果脚本需要一个游戏编辑器来创建和处理脚本,即使这个定义也可能有点模糊。

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

        【讨论】:

          猜你喜欢
          • 2015-01-26
          • 2012-08-19
          • 2021-11-13
          • 2012-08-30
          • 2013-01-29
          • 1970-01-01
          • 2023-01-05
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多