《计算机程序的构造和解释》读书笔记之 substitution model

《SICP》对着中文译书慢慢啃到过程应用中的第一个最简单、不完整的模型: substitution model,中文书译为:“代换模型”、“替换模型”。

substitution model:复合过程中的参数(argument)一一对应替换过程体的形式参数(formal parameter)来求值。

argument 本书中译为:实参、实际参数。在维科英汉词典中:被应用到程序以及程序结果的可变物(计算机用语)。在台湾被译为:引数。在内陆被译为:参数。

parameter 本书中词组 formal parameter 译为:形参、形式参数。在维科英汉词典中:传递到功能或程序并影响其操作的值(计算机用语)。

argument 与 parameter

argument

有下面几种:

在函数调用中的表达式,它是以圆括号为界限、逗号分隔的列表;

在宏调用中的一串或多串预处理符号,它是以圆括号为界限、逗号分隔的列表;

在 throw 语句或表达式的运算对象、类型、或在模板实例中模板名,它是以尖括号为界限、逗号分隔的列表。

argument 也称为:实际参数。

parameter

有下面几种:

在函数声明或定义中声明的对象或引用(或在异常处理中的 catch 子句);

在宏定义中标识符,它是逗号分隔的列表、以圆括号为界限,直接跟宏名;

或模板参数。

parameter 也称为:形式参数。

argument 与 parameter 源自:《ANSI/ISO C++ Professional Programmer's Handbook

在这小节中有个“reduces ... to ...”英文词组,中文书译为:“归约为”,也可译为:“简化为”、“降减为”。

模型(model)是给在自然科学和工程中的现象做模(造型),substitution model 是简单的模型(别去看注解15,呵呵)。

normal order 是:先完全展开后简化;applicative order 是:先算参数值后应用。

1.1.6 小节中的 predicate 译为:“谓语”。见常用英语语法术语表。与“X词”相区分开。

练习 1.5 题在网上有Ken Dyck的答案:applicative order 求值的话,算得的结果是无法完成而失败。normal order 求值的话,算得的结果是0。

在桌面 IronScheme 解释器试了,程序运行的结果是不能合法的执行。

看着javaeye上的程序员们讨论这道题,感觉程序员这群人的表达能力让身为技术人员的我真是头大,一百个人说这一道题能有一百种的解释。

posted on 2009-09-27 15:31  豆豆の爸爸  阅读(1360)  评论(1编辑  收藏  举报