物理学家肯尼思 · 威尔逊正在设计一种更好的计算机程序编写方法。他说目前的计算程序太难,不易阅读和修改。
由康奈尔大学的物理学家、计算机专家以及计算机管理人员组成的小组已开始了一个雄心勃勃的计划,该计划的目的在于使科学工作者在编计算机,程序时采用科学语言(the language of science)。康奈尔大学计算机专家爱伦 · 德莫斯说,该小组的最终目的是设计出一个很容易掌握的系统,从根本上使用户从FORTRAN语言中解脱出来。虽然这个系统还在设计的初步阶段,但是,康奈尔大学的研究者们已经找到一些使FORTRAN语言比现在更容易懂的途径。
· 这个称之为GIBBS的计划是由基本粒子物理学家肯尼思 · 威尔逊提出来的。他在研究过程中经常进行大量的计算机运算,几年来,威尔逊对科学家常用的标准计算机程序FORTRAN愈来愈关注。他指出:“FORTRAN的症结在于无法阅读,它并非人们交流的语言,逻辑性完全被搅乱,以致为了读懂一个程序而不得不有重点地前后翻阅六十页纸张。”例如,一个程序员可以写几段语句要计算机加一串数,倘若这就是此程序要做的一切,则指令先读入要加的数据,相加而后打印结果。但是,威尔逊说当程序愈来愈复杂时,程序不再在一个地方全部出现,程序员为一系列运算安排计算机读入数据,在程序的另一些部分程序员赋给计算机各种初值,而在程序的其他部分计算机将进行运算 · 威尔逊说:“你总这样设计程序结构——不是你要下一步解释什么,而是计算机下一步应该做什么。”
FORTRAN语言是难于掌握的,即便说有可能掌握它,而且FORTRAN程序也难于修改,这样科学家常常怀疑FORTRAN的效能。所以德莫斯说:“尽管科学家会编写宏大的模拟程序,并断言程序能完成特定的运算,但谁也不愿意去阅读这个程序。因为这是一件非常复杂而困难的事,更不用说从中查出错来。如那样做你反而会对结果的正确性产生怀疑。”
计算机专家声称他们已经研究出称之为“结构化”或“自顶向下”的程序编写方法,而这些方法可以减少FORTRAN的这类困难。但是威尔逊和其他学者表示异议,威尔逊说:“科学家本来就已经学会了两种不同的语言,一是科学语言,该语言是英语,或者其他本国语言和技术术语的组合;二是FORTRAN语言,但他们说:‘现在你又不得不学会第三门语言’,要知道这不是一件容易的事,这就好比要你马上去学法语一样。”因此威尔逊断定新的计算机语言仍然没有真正解决科学程序可读和易修改的问题。科学家和工程师的愿望是用自然语言来从事一切科学工程技术研究,他们对新学一门计算机语言的反应要比改编现有程序的反应消极得多。一种不自觉的要求和愿望使科学工作者的这种反应回归到科学语言上。
大约一年前,威尔逊就决定从事有关这个问题的研究并得到康奈尔大学计算机专家德莫斯和吉雷斯的合作,然而他感到要使专家们对FORTRAN语言的困难与他持同一观点并不那么容易。他说,当我们花了整整几个月的时间以后,我们才能对问题的所在相互进行讨论。最初我们的讨论完全是各持己见,直到我们同意提出一个研究计划以及我不得不举例子说服了他们时,我们的讨论才有了突破。
认识到这种新方法的可能性以后,计算机科学家被争取过来,并对下例中重写程序的方法感到惊奇。威尔逊说:“计算机科学家从未认识到科学方法和计算机程序方法之间的差别是多么明显”。
还在GIBBS研究的最初阶段,就鼓励科学家重写程序。这样一来,一个科学家就可能编一本教科书,指令以几个关键概念和方程开始,然后用逐级相加的方法将方程优化和变换,并在一个专门“章节”中记录每一变化。
德莫斯描述了GIBBS程序的发展过程后指出这个过程与物理学家给同行演示一种计算方法的过程有相似之处。“大量对话以注释方式进行,如‘噢,你想加下标,就迭代维数。’”最后,德莫斯声称像物理学家同行相互默契一样,康奈尔大学小组试图把科学家与计算机两者也类似地协调起来,不过现在,他们打算将这种相互默契过程以书面形式留下一个与假想的计算机系统对话的记录。德莫斯表示该工作最终结果是编写一个描述计算的文本使它比以前的都要好得多。
德莫斯说,当威尔逊首次提出用这种方法书写FORTRAN程序时,他本人持怀疑态度,但是现在他确认威尔逊‘显然是对的’。其他人也是如此。菲利普 · 英霣斯的计算机应用经理R-迈尔斯 · 沃打算派一个小组去康奈尔大学学习这种新方法,沃说GIBBS提供“一种将科学知识快速翻译成计算机语言的方法,第一次始终阐明了科学家的要求。”并认为GIBBS本身就是“第五代计算机的产物”。
威尔逊渴望其他学者专家从事类似的工作。他指出:“我们需要的许多东西之一,就是更多的GIBBS式的合作。”他说:“这项工作跟建立一种操作系统一样困难。我承认单靠GIBBS计划本身不可能解决这个计算机语言问题,不过,为了有更多的成功机会,我们需要更多的工作与GIBBS竞争。”
当肯尼思把上面的例子显示给计算机专家好,这些专家们很快理解了GIBBS程序的威力。
[Science,1984年4月]