符号:肯艾弗森一百周年

2020-12-19 07:45:11

12月17日是哈佛数学家和图灵奖获得者肯尼思·艾弗森(Kenneth E Iverson)诞辰一百周年,我们的产品即以此产品为基础。值得花一点时间来欣赏这个故事的绝对可能性,并思考下一步的发展方向。

艾弗森(Iverson)出生在艾伯塔省(Alberta),这是一个由遥远的统治者绘制的直线边界的领土,在地图上的形状是``省''一词的视觉定义。他来自挪威,在加里森·基洛尔(Garrison Keillor)所倡导的保留和简朴的草原文化中成长。

年轻的古利克回答:“可能会更糟。”当看到新娘垂头丧气的表情时,他赶紧补充说:“可能会更糟。”

艾弗森(Everson)是大萧条时期的一个孩子,九年级后离开学校去家庭农场工作,如果加拿大政府不派遣他去参战,然后向他提供大学教育,他可能会度过一生的耕种。他在数学和物理领域取得了优异的成绩,因此在哈佛大学深造,并在霍华德·艾肯(Howard Aiken)和经济学家瓦西里·列昂捷夫(Vassily Leontiev)任职。

艾肯正在建造第一批数字计算机之一,而列昂捷夫则在设计投入产出数学经济学模型,后来他为此获得了诺贝尔奖。由于缺乏适用于大型矩阵计算的合适表示法而感到沮丧,艾弗森设计了自己的算法。当哈佛大学要求他教授世界上第一门计算机科学课程时,他和他的助手弗雷德·布鲁克斯(Fred Brooks)为此编写了一本教科书:“自动数据处理”,并衍生了一种表示法:“一种编程语言”。

艾弗森(Everson)的一本纤薄的书,尊重经济的数学传统,进行了不懈的修改以消除重复或任何不必要的东西。布鲁克斯开玩笑说:

肯(Ken)教给我一些有用的作品:如果是从句,请将其变成短语。如果是短语,请将其转换为形容词或副词。如果是形容词或副词,则忽略它。您可以递归地应用这些。”

做得好,这会产生鼓舞人心的简单性和透明度的作品。但是当艾弗森(Everson)申请任期时,哈佛大学(Harvard)拒绝了,他抱怨自己没有写过“只有一本书”。激怒了,艾弗森离开了公司,加入了IBM。

在IBM,Brooks负责管理新的System / 360系列计算机的操作系统开发。艾弗森(Everson)的符号可以对IBM下注该公司的体系结构进行正式描述。此后,他的团队继续在IBM 7090上将符号实现为IVSYS,首先是批处理作业,然后是交互式会话。当时,IBM的一个大型项目使第一个商业化多任务操作系统得以实现。在努力支持其最初的2-3个用户时,简单得多的IVSYS顺利承担了两个,四个,然后十六个同时的用户。在第一台个人计算机出现几十年之前,个人计算就已经出现了。

在COBOL,FORTRAN和PL / I的世界中,``艾弗森符号''需要一个合理的名称或首字母缩写。 “ Mathlab”和“ Iverson's Better Math”均被考虑并丢弃。然后,Adin Falkoff用这本书的名字命名:APL。

荣耀的日子。在电子表格出现之前很久,IBM经理就在APL中编写了预算,而利润丰厚的分时服务则为全球用户提供了支持。

艾弗森继续致力于这种记法,回到加拿大与他的儿子以及他的大学朋友的儿子亚瑟·惠特尼(Arthur Whitney)一起在I.P.夏普APL服务。 1990年,他现在“已从有薪工作中退休”,他介绍了J,这是该语言的完全重新引导,它由惠特尼(Roger Hui)从惠特尼(Whitney)的最初素描中实施。

惠特尼自己的发展路线首先将他带到了澳大利亚,在那里他重新实现了500Kb SHARP APL解释器以在80Kb内核中运行,然后到达了华尔街,在那里他实现了APL子集(称为A),其速度足够快以至于处理来自金融交易所的大量数据流。 A演变为A +,k,kdb +和q编程语言。

Kdb +和q以速度而闻名。他们为此付出了艾弗森的巨大债务。高级别的抽象为实现者提供了优化和并行化以及利用机器的矢量体系结构的广阔空间。诸如map / reduce之类的功能已用其他语言复制和仿真。

艾弗森很高兴。但是他既不是程序员,也不是实施者。他仍然是数学家和老师。与人们对机器执行算法的速度相比,艾弗森更感兴趣的是人们对算法的理解速度。他用他的符号试图扩大我们掌握和表达复杂关系的能力。他以阿尔弗雷德·诺斯·怀特黑德(Alfred North Whitehead)的名言开始了他的图灵奖演讲。

``通过减轻大脑的所有不必要的工作,好的记号可以将精力集中在更高级的问题上,实际上可以提高比赛的智力。''

从草原带给哈佛的艾弗森的简约和经济表达继续受到开发商的重视。这是惠特尼,在英国APL协会成立40周年庆典上发言:

K程序通常胜过手工编码的C.从理论上讲这是不可能的。 K编译为C。每个k程序都有一个等效的C,其运行速度完全相同。但实际上是这样。为什么?因为用四行代码比四百行C语言更容易看到错误。”

数学家和老师到最后,艾弗森死于中风,坐在键盘上为J写新教程。他83岁。虽然他的工作使程序执行效率大大提高,但他最大的遗产很可能是简洁的数学符号这有助于我们在日益复杂的世界中表达和解决问题。

在APL被称为APL之前,它被称为``艾弗森符号''。肯思索着应该将其简称为“符号”。毕竟,我们不会说“上帝的草”,而只是说“草”。

认识到百周年纪念,艾弗森学院与一个杰出的小组举行在线会议,其中一些小组与他合作,以反思他的贡献并讨论各种形式的``符号''的未来前景。