何时将语言视为脚本语言?

时间:2008-09-19 10:51:27

标签: programming-languages scripting terminology semantics

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

另见:

40 个答案:

答案 0 :(得分:93)

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

答案 1 :(得分:52)

脚本语言是一种“脚本”其他东西来做事情的语言。主要关注点不是主要构建自己的应用程序,而是让现有的应用程序以您想要的方式运行,例如:适用于浏览器的JavaScript,适用于MS Office的VBA。

答案 2 :(得分:41)

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

在某些人看来,使用语言的方式使其成为一种脚本语言(例如,主要使用C ++开发的游戏开发人员脚本 Lua中的对象) 。同样,线条模糊 - 一种语言可以用于一个人的编程,同一种语言可以用于另一个人的脚本语言。

这是关于脚本语言的wikipedia文章:

  

脚本语言,脚本语言或扩展语言是一种允许控制一个或多个软件应用程序的编程语言。 “脚本”与应用程序的核心代码不同,因为它们通常以不同的语言编写,并且通常由最终用户创建或至少修改。脚本通常从源代码或字节码解释,而它们控制的应用程序传统上编译为本机机器代码。脚本语言几乎总是嵌入在他们控制的应用程序中。

您会注意到“通常”,“经常”,“传统”和“几乎总是”的使用 - 这些都告诉您有没有一组不同的属性来构成特定的语言一种“脚本语言”。

答案 3 :(得分:31)

  

“脚本是你给演员的东西。   你给的是一个程序   观众。“ - Larry Wall

我真的认为不再存在太大的差别了。所谓的“脚本”语言经常被编译 - 只是非常快,并且在运行时。一些“编程”语言也在运行时进一步编译(想想JIT),“编译”的第一阶段是语法检查和资源解析。

不要挂断它,这真的不重要。

答案 4 :(得分:25)

我的定义是一种通常作为源而不是二进制文件分发的语言。

答案 5 :(得分:16)

答案 6 :(得分:16)

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

A language which is described as a scripting language.
有点循环,不是吗? (顺便说一句,我不是在开玩笑。)

基本上,没有什么能使语言成为脚本语言,除非它被称为这样,特别是它的创建者。主要的现代脚本语言集是PHP,Perl,JavaScript,Python,Ruby和Lua。 Tcl是第一种主要的现代脚本语言(虽然它不是第一种脚本语言,我忘了它是什么,但我很惊讶地发现它早于Tcl)。

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

 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)

大多数是动态类型和解释的,并且大多数在其引用实现之外没有定义的语义。但是,即使它们的主要实现被编译或JITed,也不会改变语言的“本质”。

他们唯一的问题是如何判断一种新语言是否是一种脚本语言。好吧,如果它被称为脚本语言,它就是一个。所以Factor是一种脚本语言(或者至少是在编写时),但是,Java不是。

答案 7 :(得分:5)

“脚本语言”是那些可能意味着许多事情的模糊概念之一。通常它指的是存在一个从源代码到执行的一步过程。

例如在Perl中,你可以:perl my_source.pl

鉴于上述标准,PHP是一种脚本语言(即使您可以使用Zend Encoder来“保护”源代码,也可以进行“编译”过程。)

PS。通常(但不总是)脚本语言被解释。通常(但同样,并非总是)脚本语言是动态类型的。

答案 8 :(得分:5)

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

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

答案 9 :(得分:4)

一个部门是

  • scripting =动态解释
  • normal =已编译

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

我应该补充一点,正如Jörg所指出的那样,解释/编译的区别不是语言的一个特征,而是执行引擎的特征。

您可能也对Type system的这种解释感兴趣,这种解释与语言方面有关,而不是执行引擎。大多数脚本语言都是动态类型的,而“普通”语言大多是静态类型的。

一般而言,静态与动态类型语言的划分更好地定义,并且对语言的可用性有更多影响。

答案 10 :(得分:4)

我认为Roberto Ierusalimschy先生在“Lua编程”中有一个非常好的答案或问题:

  

然而,区别的特征   解释语言不是他们的   没有编译,但任何   编译器是语言的一部分   运行时,因此,它是   可以(并且很容易)执行代码   即时生成

答案 11 :(得分:3)

脚本语言通常是

  1. 动态输入
  2. 解释,很少强调性能,但良好的便携性
  3. 需要少得多boilerplate code,导致原型非常快
  4. 用于小任务,适合编写一个单独的文件来运行一些有用的“脚本”。
  5. 虽然非脚本语言通常是:  1.静态打字  2.编译,重点是性能  3.需要更多样板代码,导致原型设计速度变慢,但可读性和长期可维护性更高  4.用于大型项目,适应多种设计模式

    在我看来,现在更多的是历史差异。 Javascript和Perl是用小而简单的脚本编写的,而C ++是用复杂的应用程序编写的;但两者都可以使用。许多编程语言,无论是现代的还是旧的,无论如何都会模糊线条(首先它是模糊的!)。

    可悲的是,我认识一些开发人员,他们厌恶他们所谓的“脚本语言”,认为它们更简单而不强大。我的观点是陈旧的陈词滥调 - 使用正确的工具来完成工作。

答案 12 :(得分:3)

我认为脚本语言不需要明显的重量级“编译”步骤。程序员的主要特点是:您编辑代码并立即运行。

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

答案 13 :(得分:3)

我的朋友和我刚才有这样的论点:编程语言和脚本语言之间有什么区别。

一个流行的论点是编译语言被编译并且脚本语言被解释 - 但我相信这个论点完全错误......为什么?

  1. Chakra& V8(微软和谷歌的JavaScript引擎)在执行前编译代码
  2. QBasic被解释 - 这是否使Qbasic成为“脚本”语言?
  3. 在此基础上,这是我对编程语言和脚本语言之间差异的论证:

    编程语言在机器级别运行,可以访问机器本身(内存,图形,声音等)。

    脚本语言是沙盒,只能访问暴露在沙盒中的对象。它无法直接访问底层计算机。

答案 14 :(得分:3)

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

最值得注意的是,shell脚本自动化了OS内核中的进程(传统上,Mac上的AppleScript);这个角色越来越多地传递到Perl的手中,然后最终传递到Python中。我已经看过用于声明光线追踪场景的Scheme(特别是在其Guile实现中);最近,Lua作为脚本游戏的编程语言非常受欢迎 - 在许多新游戏中唯一硬编码的东西是图形/物理引擎,而整个游戏逻辑是用Lua编码的。同样,JavaScript被认为是编写Web浏览器行为的脚本。

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

然而,“脚本语言”绝对不是“解释语言”的同义词 - 例如,BASIC在其生命的大部分时间内被解释(即在它失去它的acronimicity并成为Visual Basic之前),但没有人真的认为它作为脚本。

更新:照常阅读材料at Wikipedia

答案 15 :(得分:3)

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

第二点,语言的实现者会告诉你它是否是一种脚本语言。

您的问题应该是“在什么实现中将编程语言视为脚本语言?”,而不是“脚本语言和编程语言之间有什么区别?”。之间没有。

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

答案 16 :(得分:2)

在我的意见中,我会说动态解释的语言,如PHP,Ruby等......仍然是“正常”的语言。我会说“脚本”语言的例子是像bash(或ksh或tcsh或其他)或sqlplus这样的东西。这些语言通常用于将系统上的现有程序串联成一系列连贯和相关的命令,例如:

  1. 将A.txt复制到/ tmp / work /
  2. 在数据库服务器上运行夜间清理过程
  3. 记录结果并将其发送到sysdamin
  4. 所以我会说(不管怎样,对我而言)更多的是你如何使用这种语言。像PHP,Perl,Ruby这样的语言可以用作“脚本语言”,但我通常认为它们被用作“普通语言”(除了Perl,它似乎都是双向的。

答案 17 :(得分:2)

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


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

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

答案 18 :(得分:2)

我可以建议脚本语言一直是许多人正在逐渐远离的术语。我要说它现在主要归结为编译语言和动态语言。

我的意思是你真的不能说像Python这样的东西,或者Ruby在这个时代就是“脚本”语言(你甚至有IronPython JIT-your-favorite-language < / em>,差异已经变得更加模糊了。)

老实说,我个人认为PHP不再是一种脚本语言了。我不希望人们喜欢将PHP与简历上的Java分开。

答案 19 :(得分:1)

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

  1. 脚本语言通常没有用户可见的编译步骤。通常,用户只需一个简单的命令即可运行程序。

  2. 脚本语言中的程序通常以源格式传递。

  3. 脚本语言通常具有大量系统上存在的运行时,并且可以在大多数系统上轻松安装运行时。

  4. 脚本语言往往是跨平台的,而不是特定于机器的。

  5. 脚本语言可以轻松调用其他程序并与操作系统进行交互。

  6. 脚本语言通常可以轻松嵌入到用更传统的编程语言编写的大型系统中。

  7. 脚本语言通常是为了便于编程而设计的,并且很少考虑执行速度。 (如果你想快速执行,通常的建议是用C语言编写耗时的部分,然后将语言嵌入C语言或从语言中调用C位。)

  8. 我上面列出的一些特性适用于实现,在这种情况下,我指的是更常见的实现。有C解释器,(AFAIK)没有明显的编译步骤,但大多数C实现都不是这样。您当然可以将Perl程序编译为本机代码,但这不是通常使用的方式。其他一些特征本质上是社会性的。上述标准中的一些有些重叠。正如我所说,定义是模糊的。

答案 20 :(得分:1)

一个重要的区别是strong typing(与weak typing相比)。 脚本语言通常是弱类型,因此可以更快地编写小程序。对于大型程序,这是一个缺点,因为它禁止编译器/解释器自动发现某些错误,使得重构代码变得非常困难。

答案 21 :(得分:1)

我更喜欢人们不使用术语“脚本语言”,因为我认为它会减少努力。使用像Perl这样的语言,通常称为“脚本语言”。

  • Perl是一种编程语言!
  • Perl的编译方式与Java和C ++类似。它的编译速度要快得多!
  • Perl具有对象,名称空间和闭包。
  • Perl有IDE,调试器和分析器。
  • Perl拥有培训,支持和社区。
  • Perl不仅仅是网络。 Perl不仅仅是系统管理员。 Perl不仅仅是互联网的胶带。

为什么我们甚至需要区分编译的Java语言和不编译的Ruby语言?标签的价值是什么?

有关详情,请参阅http://xoa.petdance.com/Stop_saying_script

答案 22 :(得分:1)

脚本语言是每次运行脚本时都会被解释的语言,它意味着拥有一个解释器并且大多数都是人类可读的,因此脚本语言易于学习和使用是有用的。

每个可编译的语言都可以制成脚本语言,反之亦然,这完全取决于实现一个解释器或编译器,作为一个例子,C ++有一个解释器,所以如果使用它可以被称为脚本语言(不太实用)一般来说,C ++是一种非常复杂的语言),目前最有用的脚本语言之一就是Python ......

所以要回答你的问题,定义是使用解释器来运行快速简单的脚本程序,解决简单的任务或原型应用程序,脚本语言最强大的用途是包括每次使用的可能性扩展已编译的应用程序。

答案 23 :(得分:1)

脚本语言是一种编程语言,其中程序通常以可读的文本形式提供给最终用户,并且有一个程序可以显然直接执行该程序。 (该程序可能在内部编译脚本;这在此处不相关,因为用户看不到它。)

脚本语言能够支持交互式会话相对常见,用户只需键入程序并立即执行即可。这是因为这是对第一段基本要求的微不足道的延伸;主要的额外要求是添加一种机制来确定输入的语句何时完成,以便将其发送到执行引擎。

答案 24 :(得分:1)

对于这个问题略有不同。 脚本语言是一种编程语言,但编程语言不一定是脚本语言。 脚本语言用于控制或编写系统脚本。 该系统可能是一个操作系统,其中脚本语言将是bash。 该系统可以是一个使用PHP脚本语言的Web服务器。 脚本语言旨在填补特定的利基;它们是特定领域的语言。 交互式系统已经解释了脚本语言,从而产生了解释脚本语言的概念;但是,这是系统的结果,而不是脚本语言本身。

答案 25 :(得分:1)

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

答案 26 :(得分:1)

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

答案 27 :(得分:0)

我所知道的关于该主题的最常见的文章被称为Ousterhout's dichotomy。它被高度批评为相当武断,经常被戏称作为奥斯特豪特的错误二分法。在关于这个主题的讨论中,这是值得引用的。

我个人认为这是一种错误的二分法,我不相信任何回答这个问题的人都会提出关于什么定义脚本语言的坚定属性。像“脚本语言必须动态输入”这样的评论是错误的,像“脚本语言必须被解释”这样的评论甚至没有意义,因为与流行的看法相反,编译与解释根本不是语言的属性。 / p>

上面提到的很多属性都是粗略匹配的脚本语言,幸好大多数属性正确地解释了这个术语没有严格的定义。所以我不会重复我对这里的看法。根据我的经验,人们认为语言是一种脚本语言,如果他们可以轻松地在其中编写一些快速一次性程序,而无需编写太多的锅炉。我主要是回答你给Ousterhout的引用,我在这里看不到。

答案 28 :(得分:0)

我一直把脚本语言看作是与某种应用程序或程序进行通信的一种手段。相反,编译的语言实际上创建了程序本身。

现在请记住,脚本语言通常会添加或修改最初使用编译语言创建的程序。因此,它肯定可以成为更大图片的一部分,但最初的二进制文件首先是使用编译的语言创建的。

所以我可以创建一种脚本语言,让用户可以执行各种操作或自定义我的程序。我的程序会解释脚本代码,然后调用某种函数。这只是一个基本的例子。它只是为您提供了一种在程序中动态调用例程的方法。

我的程序必须解析脚本代码(您可以将这些代码称为命令)并实时执行任何操作。

我看到这个问题已经回答了好几次,但我想我会加入自己的方式来看待事情。当然,有些人可能不同意这个答案,但这种思维方式一直对我有帮助。

答案 29 :(得分:0)

脚本语言是一种编程语言,用于操作,自定义和自动化现有系统的功能。在这样的系统中,通过用户界面已经可以获得有用的功能,并且脚本语言是用于将该功能暴露给程序控制的机制。以这种方式,据说现有系统提供对象和设施的主机环境,这完成了脚本语言的功能。脚本语言旨在供专业和非专业程序员使用。

参考

http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

答案 30 :(得分:0)

简而言之,脚本语言具有以下属性:

  1. 基于口译员。
  2. 简单的语法。与java相比,python中的目录访问文件非常简单。
  3. 通常用于编写较少的代码行。
  4. 便于编写自动化代码。
  5. 非常高级的语言。
  6. Eg.:Javascript,python,VBA。

答案 31 :(得分:0)

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

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

答案 32 :(得分:0)

对于breif

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

非常流行的编程语言(Java,C#)在“父”程序中运行 - 就像脚本语言一样。 今天的脚本语言用于构建复杂的软件。 如今计算机如此之快,脚本语言非常高效,对于大多数业务操作来说,使用编译的编程语言没有实际的速度优势(曾经有过)。

答案 33 :(得分:0)

Concepts of Programming Languages中解释Robert Sebesta:

  

通过将一个名为脚本的命令列表放在要执行的文件中来使用脚本语言。这些语言中的第一种,名为 sh (用于shell),起初是一小组命令,它们被解释为对执行实用程序功能的系统子程序的调用,例如文件管理和简单文件过滤。在此基础上增加了变量,控制流状态,函数和各种其他功能,结果是一种完整的编程语言。

然后你有一些例子,例如 AWK Tcl/Tk Perl (这说明最初是 sh AWK 之间的组合,但它变得如此强大,以至于他认为它是“奇怪但功能齐全的编程语言”)。其他示例包括CGI和JavaScript。

答案 34 :(得分:0)

另外,您可能需要查看this podcast on scripting languages

答案 35 :(得分:0)

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

一些编程语言的设计具有语言设计者和编程社区在编写相对较小的程序时认为有用的功能。这些编程语言称为脚本语言,例如PHP。

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

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

将单一语言功能视为决定语言是否最适合脚本编写或系统编程的“试金石”,这是值得怀疑的。例如,脚本可以编译为字节代码或机器代码,或者可以通过直接抽象语法树(AST)解释来执行

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

答案 36 :(得分:0)

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

没有理由比这更复杂吗?

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

然后,我还没有意识到这样的事情已经完成了,所以现在我仍然习惯于使用解释性语言编写脚本语言。

答案 37 :(得分:0)

你的标准听起来是正确的,但总是有点模糊。例如,Java既被编译(到字节码),然后被解释(由JVM)。但它通常不被归类为脚本语言。

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

答案 38 :(得分:0)

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

答案 39 :(得分:-1)

即使Java是“脚本语言”,因为它是用C“

实现的

虽然我在尝试改进mgb's近乎完美的答案时犹豫不决,但事实是没有什么比C更好的实现,但语言相当低级且接近硬件。纯粹的天才,当然,但是为了发展现代SW,我们想要一种更高层次的语言,可以这么说。

所以,你有Python,Ruby,Perl,甚至是Java,都是用C语言实现的。人们不会通过称之为脚本语言来侮辱Java,但事实如此。如果你想要一个强大的,现代的,动态的,反思的,等等等等的语言,你可能正在运行类似Ruby的东西,可以直接在C中解释,也可以编译成某些C程序解释/ JIT编译的东西。

人们的另一个区别是将动态类型语言称为“脚本语言”。