文 / 苏椰
Alan Perlis
当我们提起高级语言的先驱,首先想到的总是Dennis Ritchie、Bjarne Stroustrup这些主流语言的设计者,似乎很少会提到Alan Perlis这个名字。但Alan Perlis主持设计的ALGOL,趋势C/C++等语言的鼻祖。
Alan Perlis 1922年出生于美国匹兹堡犹太家庭。21岁时,他获得了卡内基理工学院的化学学士学位,这个学院后来发展为现在美国计算机专业排名第一的卡内基梅隆大学。时逢二战,他弃笔从戎。服役期间,他突然对数学产生了强烈兴趣,并在1950年, 从麻省理工学院获得了数学博士学位。两年后他来到普渡大学,出任普渡大学计算中心首任主任,并将IBM CPC计算机引入了普渡,还为其设计了一个叫作IT(Internal Translator)的编程语言。四年之后,他又一跃当上了卡内基理工学院第一任计算机科学系主任,在卡耐基引入了IBM 650,并将IT语言移植到650上。这些使他在程序语言的设计方面,有了许多经验和体会。当ACM成立程序设计语言委员会时,Perlis坐上了主席的位置。
1958年5月27日,瑞士苏黎世召开了一场8个人的讨论会。这个会议并不隆重。ACM的4名代表和德国应用数学和力学学会(GAMM)的4名代表,索性把地点和双方名称连起来,叫苏黎
世ACM-GAMM会议。这场会议的组织者,就是Alan Perlis。他们将要在此讨论并规划一种新型的编程语言,叫作国际代数语言(IAL)。
世界上第一个高级语言Fortran存在一些严重的缺陷。比如说它专门为IBM 704设计的,要依赖特定的机器型号工作,很难向其他机器移植等等。IAL的专家们力求设计一种更好的高级语言。在讨论过程中,Perlis认为“IAL”这个词很绕口,于是将它改名叫作ALGOL。会议结束后,他们成立了一个工作组,根据讨论的结果,开发ALGOL的编译器。1958年年底,第一套编译器诞生了,按照年份命名为ALGOL 58。1960年,Alan Perlis总结了一些经验之后,再次召集参与ALGOL工作的计算机科学家们在巴黎进行了另一场研讨。这场会议的结果,就是后来的ALGOL 60。
1960年夏天,Dijkstra开发了第一个ALGOL 60的编译器,于是ALGOL系列语言正式登上了计算机科学的舞台。随后,Alan Perlis将它引入了大学的课堂。这是Alan Perlis的另一个重要贡献,因为在那个时代,计算机科学混沌初开,程序设计都只是数值分析的一部分。经过Alan Perlis的努力,人们终于看到计算机科学应该是什么样子。Dijkstra后来说,这是一个伟大的标志,可以说直到这个时候,计算机科学才真正地诞生了。而在接下来的30年里,ALGOL一直是教学和学术界用来描述算法的不二之选。它体现出的许多概念,都被后来的编程语言沿用。包括C、C++和Pascal在内许多主流语言,都因为继承了ALGOL的许多概念,而被称为“类ALGOL语言”。
Alan Perlis因领导了ALGOL的设计工作,并在早期计算机教育中做出了重要贡献,在1962年当选为美国计算机学会的主席,并在四年后,因为他对高级编程技术及其编译器构造的影响成为历史上首位图灵奖得主。五年后,他跳槽到耶鲁大学,连任多年计算机科学系主任,1977年当选美国工程院院士。1982年,退休后的Alan Perlis返老还童,写下了名文“Epigrams on Programming”,发表在ACM的SIGPLAN期刊上。其中包含130条编程箴言,可能是被引用最广泛的计算机文章之一。在发表在ACM的SIGPLAN期刊上,他写下了一系列关于编程的幽默:“如果你给别人讲解程序时,看到对方点头了,那你就拍他一下,他肯定睡觉了。”
Alan Perlis为名著《计算机程序的构造和解释》所写的序中写道,如果说艺术解释了我们的梦想,那么计算机就是以程序的名义执行着它们。计算机科学中特别重要的一点是保持趣味性,不要局限于眼前,应该不断寻找新方向,扩展计算机的能力。这些话今天听来,依然发人深省。
1990年2月7日,Alan Perlis因心脏病在纽哈芬去世,享年68岁。
(本文来自《程序员》杂志11年01期,更多精彩内容敬请关注01期杂志)