脚本和程序之间的区别?[关闭]


76

脚本和程序有什么区别?大多数时候,我听说脚本正在运行,这不是程序吗?我有点困惑,有人可以详细说明吗?

Answers:


44

我有不同的看法。

“脚本”是以外部或独立方式作用于某些系统的代码,可以在不禁用系统本身的情况下将其删除或禁用。

“程序”是构成系统的代码。程序的代码可以以模块化的方式编写,并具有良好的关注点分离,但是代码基本上是系统自身的内部组件,并且是系统自身的依赖项。

脚本经常被解释,但并非总是如此。程序经常被编译,但并非总是如此。


3
什么是系统方法?
探险家

@explorer-这是本段第一部分中提到的系统。

1
:-) 好的!本段第一部分提到的系统是什么?它是应用程序,操作系统,包含许多整体/单个部分的应用程序,还是其他任何东西?
探险家

没关系!我明白了!我没有正确解释较早的构成
探险家

我的疑问已经澄清!谢谢!
探险家

44

对我而言,主要区别在于脚本是执行程序的 同时进行解释的(即首先对源代码进行编译,并且预期编译结果)


维基百科似乎同意我的观点:

剧本

“脚本”与应用程序的核心代码不同,后者通常以不同的语言编写,并且经常由最终用户创建或至少由其修改。
脚本通常是从源代码或字节码解释的,而它们所控制的应用程序通常是编译为本机代码。

程序

该程序具有可执行形式,计算机可以直接使用可执行形式来执行指令。
以其人类可读的源代码形式的相同程序,从中得出(例如,编译)可执行程序


6
-1,因为维基百科当然总是正确的。编译和解释之间的区别与讨论无关。
尼克·巴斯汀

3
您说:“(即先编译源,然后再预期编译结果)”。您的意思是“执行编译”吗?
2015年

11

通常,脚本是一种轻量级,快速构建的,可能是一次性使用的工具。它通常是解释的,而不是编译的。 Pythonbash是用于生成脚本的语言的示例。

程序是使用C或C ++之类的编译语言构造的,因此通常比脚本运行速度更快。较大的工具通常是作为“程序”而不是脚本编写的-较小的工具更容易作为脚本开发,但是脚本变得越来越笨拙。应用程序和系统语言(用于构建程序/应用程序的语言)具有使这种增长更易于管理的工具。

通常,您可以在文本编辑器中查看脚本以查看其功能。您无法使用可执行程序来执行此操作-可执行程序的指令已被编译为字节码或机器语言,这使得人们在没有专用工具的情况下很难理解。

请注意上面的“常”和“通常”的数量-术语模糊不清,有时会交叉。


11

看到:

程序和脚本之间的区别

脚本也是程序,但是没有一个不透明的层隐藏(源代码),而程序是一个有衣服的程序,除非它是可反编译的,否则您将看不到它的源代码。

脚本需要其他程序来执行它们,而程序则不需要。


8
现在此链接为404s。
妮诺·沃克

2
现在该链接为200s。
马克·费舍尔'18

“此链接”比“此答案”提供了更好的解释。 编译代码的目的不是要“隐藏”或“修饰”任何东西……我很惊讶这个答案获得了如此多的选票(来自如此高的知名度用户),因为它除了使newb停止询问外没有什么用处。一个普遍的问题,就是过度简化和传播薄弱环节的错误信息。
ashleedawg

7

通常,“程序”是指编写的指令序列,以便计算机可以执行某些任务

“脚本”是用脚本语言编写的代码。脚本语言不过是一种编程语言,我们可以在其中编写代码来控制另一个软件应用程序

实际上,编程语言有两种类型:

一种。脚本语言

b。编译语言

请阅读以下内容: 脚本和编译语言


3

脚本通常(由另一个可执行文件)解释。

程序通常本身就是一个独立的编译可执行文件(尽管它可能具有库依赖性),它由机器代码或字节代码组成(对于即时编译的程序)


2

根据我的观点,脚本和程序之间的主要区别是:

脚本可以与其他技术一起使用。示例:PHP脚本,Javascript等可以在HTML中使用。

程序是独立的代码块,永远无法嵌入其他技术中。

如果我在任何地方都做错了,请纠正我。


python脚本呢?同样,可以与HTML一起使用的确认Php代码是错误的。您只有php代码。文件扩展名是.php。在程序内部,您可以打印html代码。您可以对python,java,C#,C等执行相同的操作。所有这些(如果是Web程序)都将产生html代码。
DonJoe

2

脚本与程序现实之间确实存在两个维度:

  1. 该语言是否足够强大(特别是在使用字符串操作时),可以与诸如posix shell以及bash之类的宏处理器竞争?如果运行某项功能并不比bash好,那么使用它就没有多大意义了。

  2. 语言方便快捷吗?Java,Scala,JRuby,Closure和Groovy都是强大的语言,但是Java需要大量样板文件,而它们都需要很长时间才能启动的JVM。

OTOH,Perl,PythonRuby都可以快速启动,并且具有强大的字符串处理(以及几乎所有其他处理功能)操作,因此它们往往会占用有时被贬低但不容易受到“脚本”侵害的地方世界。事实证明,它们在运行整个传统程序方面也表现出色。

像Javascript这样的语言一直处于困境,这些语言不用于脚本编写,但有可能被使用。更新:自从编写以来,node.js已在多个平台上发布。在其他新闻中,该问题已经结束。“那好吧。”


0

框架或其他类似架构将运行/解释脚本以执行任务。程序由机器编译并运行以执行任务


0

IMO脚本-是程序应运行的指令程序-是硬件应运行的指令

虽然我猜.NET / JAVA字节码是按此定义编写的脚本


0

脚本:它包含一组“脚本语言”指令,这些指令控制,运行其他系统程序,应用程序,也可以对其进行计划。

程序:它包含一组指令,这些指令在使用编译器编译程序时执行某些任务。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.