【问题标题】:SICP - Procedures versus Process [duplicate]SICP - 程序与过程 [重复]
【发布时间】:2016-09-04 20:01:55
【问题描述】:

过程和过程之间的概念区别是什么?

如果答案取决于语言,我在学习使用 lisp(方案)的 SICP 书时正在考虑这个问题。

【问题讨论】:

  • “procedure”和“process”都有很多种不同的定义,具体取决于使用它们的上下文。因此,请提供更多上下文。
  • 你读过第 1.2 章,“程序和它们产生的过程”吗?

标签: scheme lisp racket sicp


【解决方案1】:

程序是对如何计算某事的描述。如果您告诉操作系统运行一个程序,它会从磁盘读取一个程序(以可执行文件的形式)并启动一个 process 也就是一个计算,其中 cpu 遵循程序给出的计算步骤.如果您两次启动同一个程序,您将获得两个进程(如果您使用的是 GUI,您可能曾尝试不小心左键单击图标两次,从而出现两个窗口(这里每个窗口都属于一个进程)。

在 sicp 的上下文中,进程是正在运行的计算,而过程是对计算的描述,也就是程序(或程序的一部分)。

https://mitpress.mit.edu/sicp/full-text/book/book-Z-H-9.html#%_idx_114

【讨论】:

    【解决方案2】:

    在 SICP 的上下文中:

    • Procedure 是对过程的描述(如果需要,可以是配方)。
    • Process 是将过程应用于参数的结果(广义而言,不仅仅是返回值):所有设置的上下文、具有定义或设置值的变量、将发生的所有计算等. 这些都不会发生在程序本身。

    另一个类比:程序是蓝图,例如建筑物的示意图,过程是实际的建筑物建造。

    【讨论】:

      猜你喜欢
      • 2013-06-19
      • 1970-01-01
      • 2015-02-02
      • 2017-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 2016-02-24
      相关资源
      最近更新 更多