SICP术语:程序和操作之间的区别

时间:2014-08-19 17:38:09

标签: scheme lisp terminology sicp

术语"程序"术语"操作"的同义词在SICP或不? (例如,在下面的章节中。)如果它们不相同,有什么区别和原因?

更具体地说,"复合操作"之间的区别是什么?和"复合程序" ?有没有 ?

SICP Chapter 1.1.4 Compound Procedures

以下是本书的其他相关章节:

SICP Chapter 1.2 Procedures and the Processes They Generate

在我看来,在这些情况下,术语"操作"在SICP中指的是算术运算(因为到目前为止,没有其他类型的操作 - 无论它们通常是什么 - 都用在了例子中。)

2 个答案:

答案 0 :(得分:5)

一个“操作”,无论是原始的还是复合的,都是一些像加法的实际计算,比如在编译程序的汇编代码中,就像一个数字是一个实际的计算对象,一个计算机存储器中的实体。

“过程”是编程语言的一部分,它表达/描述操作。编程语言允许我们定义表达一些基本操作的过程,并通过组合它们来实现一些更复杂的操作:

(define (sum x y) (+ x y))   ; a procedure expressing  primitive operation

(define (sum-squares x y)    ; a procedure describing a more complex operation
    (+ (* x x) (* y y)))     ;  defined by means of combining the operations

答案 1 :(得分:1)

  

数字算术运算原始数据程序

我如何阅读这是NUM映射到原始数据和算术操作映射到过程。因此,操作就是程序。

(* 2 3)之类的组合中,*称为运算符,而23称为操作数(参数)。操作员是一个程序。

稍后他们会介绍条件(condif)但从不称它们为操作。