计算过程是存在于计算机里的一类抽象事物,在其演化过程中,这些过程会去操作一些被称为数据的抽象事物。人们创建出一些称为程序的规则模式,以指导这类过程的进行。
一个强有力的程序设计语言,不仅是一种指挥计算机执行任务的方式,它还应该成为一种框架,使我们能够在其中组织自己有关计算过程的思想。
函数与过程之间的矛盾,不过是在描述一件事件的特征,与描述如何去做这件事情之间的普遍性差异的一个具体反映,人们有时也称它为说明性的知识与行动性的知识之间的差异。在数学里,人们通常关心的是说明性描述(是什么);而在计算机科学里,人们通常关心行动性的描述(怎么做)。
能够看清所考虑的动作的后果的能力,对成为程序设计专家至关重要。对结果的了解,才能反推出所需的过程。我们需要对计算过程中各种动作的进行情况作出规划,用一个程序去控制这一过程的进展。要学会去看清各种不同种类的过程会产生什么样的计算过程,只要在掌握了这种技能之后,我们才能学会如何去构造出可靠的程序,使之能够表现出所需要的行为。
]]>——Alan J. Perlis (April 1, 1922-February 7, 1990)
译文:我认为,在计算机科学中保持计算中的趣味性是特别重要的事情。这一学科在起步时饱含着趣味性。当然,那些付钱的客户们时常觉得受了骗。一段时间之后,我们开始严肃地看待他们的抱怨。我们开始感觉到,自己真得像是要负起成功地、无差错地、完美地使用这些机器的责任。我不认为我们可以做到这些。我认为我们的责任是去拓展这一领域,将其发展到新的方向,并在自己的家里保持趣味性。我希望计算机科学的领域绝不要丧失其趣味意识。最重要的是,我希望我们不要成为传道士,不要认为你是兜售圣经的人,世界上这种人已经太多了。你所知道的有关计算的东西,其他人也都能学到。绝不要认为似乎成功计算的钥匙就掌握在你的手里。你所掌握的,也是我认为并希望的,也就是智慧:那种看到这一机器比你第一次站在它面前时能做得更多的能力,这样你才能将它向前推进。
]]>