理论和实践作出卓越贡献而获此殊荣的。
艾弗森1920年12月17日生于加拿大艾伯塔省的卡姆罗斯(Camrose,Alberta)。第二次世界大战期间他被应征入伍而中断学业。1946年退伍后,艾弗森进入位于安大略湖畔的城市金斯顿(Kingstown)的昆士大学(Queen’s University)学习,兼修数学和物理,1950年大学毕业获得学士学位时艾弗森年已30。但他立志继续深造,进了美国哈佛大学研究生院,先后于1951年和1954年拿下了应用数学的硕士学位和博土学位。他攻读博士学位时的导师是著名的数学家和计算机科学家、在20世纪30年代末40年代初设计了世界上第一台现代的自动计算机Mark I的艾肯教授(Howard Aiken,1900—1973)。当时的IBM公司总裁托巴斯·沃森(Thomas Watson)正是由于支持艾肯的Mark I计划而把IBM公司从制造商业机器的公司引向计算机产业而发展成为“蓝色巨人”的。艾弗森的博士论文课题是用计算机求解线性微分方程时如何建立经济的I/0模型,这个论文课题诱导他设计与实现了著名的程序设计语言APL(A Programming Language)。APL以现有的成熟的数学符号为基础,加入许多基于数组(array,这是APL中惟一的数据类型)的基本运算符,就可以用极少、极紧凑的语句定义非常复杂的表达式。APL的两大与众不同的特点是:
1.变量没有显式定义的类型。变量类型是由变量的具体用途确定的,这就是APL首创的所谓“弹性数据结构”(elastic data structure)。
2.没有一般语言所常用的控制结构,如while,for,if-then-else等。这类控制结构在APL中被递归函数、数组操作及控制转移符“→”所代替(APL中的“→”相当于其他语言中的goto)。此外,APL中所有的运算符都具有相同的优先级,一律按从右到左的顺序进行计算,这也是同一般语言很不一样的。
APL从构思到实现经历了一个比较曲折和漫长的过程。艾弗森在完成其博士论文的过程中就提出了APL的初稿,最初仅是为了清晰而精确地表达问题以利于书写和教学而提出的。博士论文答辩以后艾弗森留校工作,对APL进行完善与发展,并试图在计算机上实现,但一直缺乏支持和客观条件。因此,艾弗森于1960年离开哈佛大学到IBM的沃森研究中心,在这里他说服了他的一些同事和他一起在IBM的主机上实现了APL,这已经是他提出APL以后约10年的事了。有趣的是,艾弗森实现APL的经历和他的导师艾肯实现Mark I的经历十分相似:艾肯设计出Mark I以后,也是由于在哈佛大学没有得到足够的支持而转向私人企业寻求支持最后与IBM公司签订合作协议的。
最早的APL版本采用解释方式而非编译方式,有人一机交互功能,类似于台式的袖珍计算器,用起来很方便,因此在科学与工程计算、统计分析、财会等人员中很受欢迎。在程序设计语言发展的历史上,曾经出现这样一件轰动一时的大事:1969年,IBM公司在其总部纽约州阿尔蒙克(Armonk)举行APL大会,出乎组织者意料来了500多人,而且群情激昂,要求IBM公司分发APL的拷贝,使IBM公司措手不及。这件事后来被人们称为“进军Armonk”(march t。Armonk)。虽然作为一种通用程序设计语言,总的来说它不像FORTRAN、Pascal、c等那样获得广泛采用,但它在早期程序设计语言的发展中起了积极的作用。此外,作为具有向量处理能力的一种语言,它也是后来对FORTRAN语言进行扩充,使之成为具有向量和矩阵处理能力的语言——VECTRAN(VECTOR FORTRAN)的重要基础。而FORTRAN 90则是VECTRAN的进一步发展。由此可见APL在计算机程序设计语言发展史上的地位和功劳。本新闻共2页,当前在第1页 1 2
< 1 > < 2 >
|