龙猫|由于不想付论文装订费,所以他抛却博士学位( 四 )


难得的是 , Meyer 对 Ritchie 解法的赞赏抵消了自己的失望情绪 , 他回忆道 , 「……Dennis 提出的轮回程序概念真是太美了 , 而且如斯重要 , 这是一个非常好的解释机制 , 也是一个阐明主题的智慧方法 , 我甚至都不关心他是否解决了题目 。 」
而 Ritchie 在这个暑期提出的轮回程序就是他 1968 年博士论文的核心 。 实在 , 轮回程序本质上是非常小、非常有限的计算机程序 , 在 BASIC 中用 FOR 命令编写过轮回程序的人应该都不会目生 。
在轮回程序中 , 你可以将一个变量设置为零 , 给一个变量加上 1 , 或者将一个变量的值移动到另一个变量 。 就是这样 。 在轮回程序中独一可用的控制是一种简朴轮回 , 指令序列在其中重复一定次数 。 重要的是 , 轮回可以「嵌套」 , 即轮回套轮回 。
Ritchie 在他的博士论文中表明 , 这些轮回函数恰是产生哥德尔原始递归函数所需要的 , 而且只需要这些函数;它们刚好能够反映 Grzegorczyk 提出的层次结构 。
哥德尔以为其递归函数具有很强的可计算性 , 而 Ritchie 则证实了轮回程序恰是完成这项工作的合适工具 。
Ritchie 的论文表明 , 轮回程序的嵌套程度是对其计算复杂性的一种度量 , 同时也是对它们所需计算时间的一种度量 。 此外 , 他还指出 , 通过轮回的深度来评估轮回程序与 Grzegorczyk 的层次结构完全相同 。 原始递归函数的增长速度确实与它们的计算复杂性有关 , 实际上 , 它们是相同的 。
Meyer 回忆道:
「轮回程序被做成了一个非常简单的模型 , 任何计算机科学家都可以当即理解 。 在解释原始递归层次的时候 , 传统公式用非常复杂的逻辑学符号来表示复杂的语法 , 普通人很难理解 。 但现在 , 你忽然发现了一个三四行就能把轮回程序描述清晰的计算机科学解释 。 」
Meyer 解释说:
「Dennis 是一个非常可爱、随和、谦逊的人 。 显然他很智慧 , 但也有些沉默寡言…… 我们一起讨论过我们合著的《The Complexity of Loop Programs》 , 他读了这篇论文并给出了自己的评价 , 并向我解释了轮回程序 。 」
1967 年 , 这篇论文被 ACM 发表 。 在 Meyer 的理论计算机科学生活生计中 , 这篇论文开启了一个多产的时代 , 而且是他职业生涯的重要一步 。 但对于他和 Ritchie 的合作来说 , 这却是终点 。
「真是令人失望 。 我很想和他合作 , 由于他看起来很智慧 , 很友好 , 和他一起工作很有趣 。 但是 , 你知道 , 他已经在做其他的事情了 。 他整晚都在玩《太空战役》!」Meyer 如斯回忆当时的情景 。
让我们回到文章开头提到的 Ritchie 的个人评价:「研究生阶段的经历让我清醒 , 自己的才智不足以让我成为算法理论方面的专家」 。
了解了这篇博士论文之后 , 我们发现 , 他似乎说谎了 。 或许 , 比起理论研究 , 实现对于 Ritchie 来说更有诱惑力 , 因此他才选择通过创建新系统、新语言来探索计算的边界、本质和可能性 。
参考链接:
https://computerhistory.org/blog/discovering-dennis-ritchies-lost-dissertation/
来源:机器之心
原文略有删改
原文标题:「率性」的C语言之父:因拒付论文装订费错失博士学位 , 论文52年后重见天日
编纂:fengyao


推荐阅读