33
|
Jon Ericson Homunculus Reticulli · 技术社区 · 16 年前 |
![]() |
1
46
传统上,程序是编译的,脚本是解释的,但这已经不再重要了。如果你真的想要,你可以生成大多数脚本的编译版本,而其他像Java这样的“编译”语言实际上是被解释的(在字节码级别上)。 一个更现代的定义可能是一个程序被客户使用(可能是一个内部的程序),因此应该包括文档和支持,而一个脚本主要用于作者。 Web是一个有趣的反例。我们都喜欢用谷歌搜索引擎查找东西。用于创建IT引用的“数据库”的大部分代码仅由其作者和维护人员使用。这就是剧本吗? |
![]() |
2
41
我想说的是,一个应用程序倾向于以交互方式使用,其中脚本将运行其过程,适合于批处理工作。我不认为这是一个具体的区别。 |
![]() |
3
30
通常,它是“脚本”与“程序”。 我同意你的观点,这种区别主要是“汇编语言的势利”,或者引用拉里·沃尔的话,并采取另一种立场,“剧本是演员的,节目是给观众的”。 |
![]() |
4
8
这是一个有趣的主题,我认为没有很好的指南来区分“脚本”和“应用程序”。 让我们看一看维基百科的一些文章,以了解它们的区别。 Script (维基百科->脚本语言):
Application (维基百科-应用软件-术语)
阅读上述条目似乎表明,区别在于脚本由另一个软件“托管”,而应用程序则不是。我认为这是有争议的,比如控制shell行为的shell脚本,以及控制解释器行为以执行所需操作的Perl脚本。(我觉得这可能有点夸张,所以我可能不完全同意。) 归根结底,我认为可以用 规模 程序的。与应用程序相比,脚本的规模通常较小。 此外,就目的而言,脚本通常 执行任务 例如,这需要注意构建为某个软件生成多个版本的脚本。另一方面,应用程序面向 提供功能 它更为精致,面向最终用户。例如,记事本或火狐。 |
![]() |
5
8
John Ousterhout(TCL的发明者)在 http://www.tcl.tk/doc/scripting.html 在这里,他提出了系统编程语言(用于实现构建块、强调正确性、类型安全)与脚本语言(用于组合构建块、强调对不断变化的环境和需求的响应、易于在文本表示中转换和从文本表示中转换)之间的区别。如果你使用这个分类系统,那么99%的程序员所做的工作比系统编程语言更适合于脚本语言。 |
![]() |
6
4
脚本往往是一系列启动、运行和终止的命令。它通常需要很少的人与人之间的互动。应用程序是一个“程序”…它往往需要人类的互动,它往往更大。 |
![]() |
7
3
脚本对我来说意味着代码的逐行解释。您可以打开脚本并查看其程序员可读的内容。应用程序意味着独立编译的可执行文件。 |
![]() |
8
3
它通常只是一个语义参数,甚至是一种否定某些编程语言的方法。就我而言,“脚本”是一种程序类型,确切的定义有点模糊,并随上下文变化。 我可能会用“脚本”这个词来表示一个主要是线性执行的程序,而不是用大量的顺序逻辑或子例程,就像好莱坞的“脚本”是一个演员执行的线性指令序列。我可以用它来表示一个程序,它是用一种嵌入在一个更大的程序中的语言编写的,目的是驱动那个程序。例如,使用AppleScript在旧的Mac操作系统下自动执行任务,或者使用嵌入式TCL界面驱动以某种方式公开自己的程序。 但在所有这些情况下,脚本是一种程序类型。 “脚本语言”一词已被用于动态解释(有时是编译的)语言,通常这些语言具有许多共同的特征,如非常高级的指令、内置的哈希和任意长度的列表以及其他高级数据结构等,但这些语言能够非常大、复杂、模块化、很好地定义签名程序,所以如果你把“脚本”看作是程序以外的东西,这个术语可能会让你困惑。 也见 Is it a Perl program or a Perl script? 在PelLFQ1中。 |
![]() |
9
2
脚本通常作为脚本引擎中较大应用程序的一部分运行 例如,javascript->浏览器 这与传统的静态类型编译语言和动态语言形成了对比,动态语言的代码是用来构成应用程序的主要部分的。 |
![]() |
10
2
应用程序是面向一组常见问题的脚本集合。 脚本是执行一个相当特定的任务的代码。 在我看来,这种差异与使用的语言无关。用BASH编写复杂的应用程序是可能的,用C++编写一个简单的脚本是可能的。 |
![]() |
11
2
首先,我想清楚地表明 脚本是程序 . 换句话说,脚本是一组指令。 程序: 将要编译的一组指令称为程序。 脚本: 要解释的一组指令称为脚本。 |
![]() |
12
1
以Perl为例,您可以编写Perl脚本或Perl应用程序。 脚本意味着单个文件或单个命名空间。(例如updatefile.pl)。 应用程序是由一组文件或名称空间/类组成的(例如,一个由OO设计的带有许多.pm模块文件的Perl应用程序)。 |
![]() |
13
1
就个人而言,我认为这种分离是实际实现的倒退。 据我估计, 应用 计划好了。它有多个目标,有多个可交付成果。在编码之前,有一些任务是在设计时预留的,应用程序必须满足这些任务。 然而,一个脚本只是作为合适的东西放在一起,很少涉及计划。 然而,缺乏适当的计划并不会将您降级为脚本。可能,它使应用程序成为计划不周的脚本的组织不好的集合。 此外,应用程序还可以包含聚合后构成整体的脚本。但脚本只能引用应用程序。 |
![]() |
14
1
一个应用程序很大,将被人们反复使用,并可能出售给客户。 一个脚本开始时很小,如果幸运的话保持较小,很少卖给客户,可能会自动运行或废弃。 |
![]() |
15
1
如何: 脚本:
应用:
因此,理论上,用脚本语言编写的基于脚本的程序可以在执行脚本时修改其文本语句(当然风险很大)。编译程序的类似情况是翻转内存中的位。 有接受者吗?:) |
![]() |
16
0
@杰夫的回答很好。我最喜欢的解释是
引用自 here . |
![]() |
17
0
我认为不管代码是编译的还是解释的,都没有关系。 真正的区别在于代码的核心逻辑:
|
![]() |
18
-1
实际上,脚本(或脚本语言)和应用程序之间的区别在于脚本不需要编译成机器语言。使用解释器运行脚本的源代码。应用程序将源代码编译为机器代码,以便您可以将其作为独立应用程序运行。 |
![]() |
19
-1
我想说剧本通常是 用纯文本编写的一组命令或指令 那是 由宿主应用程序执行 (浏览器、命令解释器或shell…)。
但这并不意味着它不是Powerfull,或者在实际执行时不以某种方式编译。但是一个脚本本身不能做任何事情,它只是纯文本。
|
![]() |
20
-2
脚本语言没有标准库或平台(或者没有标准库或平台)。它又小又轻,被设计成嵌入一个更大的应用程序。bash和javascript是脚本语言的好例子,因为它们的功能完全依赖于其他程序。 使用这个定义,脚本是为驱动更大的应用程序(套件)而设计的代码。javascript可能会调用firefox来打开窗口或操作dom。bash脚本执行现有程序或其他脚本,并用管道将它们连接在一起。 您还会问为什么不编写脚本语言,因此: 有没有脚本语言的单元测试工具?对于完全缺失的“真实”应用程序来说,这似乎是一个非常重要的工具。而且很少有真正的脚本语言库绑定。 大多数时候,脚本都可以被一种真实的、轻量级的语言(比如python或ruby)所取代。 |
|
Jooseppi Luna · 在有条件的情况下,你把做作业叫做什么? 7 年前 |
![]() |
konchy · 为什么我们称CNN中的完全连接层为“顶层”? 7 年前 |
![]() |
Michal Charemza · 始终为真的if条件的术语 7 年前 |
![]() |
user3478869 · “实时软件开发”一词指的是什么? 9 年前 |
![]() |
Sumit Gera · C++中的辅助函数是什么? 11 年前 |
![]() |
Tarik · 如何理解“合同”的含义 11 年前 |