首页 > 知识&问答
程序设计公理化创始人——查尔斯·霍尔
发布时间:2024-10-23 15:35:14 / 浏览量:
指针就像跳转一样,疯狂地在数据结构之间到处指来指去。在高级语言里面引入指针是个退步。我们可能永远无法从这一失败之中恢复过来。这段话出自查尔斯·霍尔(CharlesA.R.Hoare),1980年他因“对程序设计语言的定义和设计方面的基础性贡献”而获得图灵奖。他26岁就发明了闻名于世的快速排序算法Quicksort。
霍尔获奖无数,1980年获得美国计算机学会(ACM)设立的计算机界最高奖——图灵奖;1981年获得AFIPS的HarryGoode奖;1985年获得英国IEE的法拉第奖章;1990年被IEEE授予计算机先驱奖。2000年获得日本稻盛财团设立的国际大奖——京都奖(尖端技术领域)。
2009年3月他在Qcon技术会议上发表了题为“Null引用:代价十亿美元的错误”的演讲,回忆自己1965年设计靠前个全面的类型系统时,未能抵御住诱惑,加入了Null引用,仅仅是因为实现起来非常容易。它后来成为许多程序设计语言的标准特性,导致了数不清的错误、漏洞和系统崩溃,可能在之后40年中造成了十亿美元的损失。他在同月出版CommunicationsoftheACM中表示,如何证明程序的正确性仍然是计算机科学中有待解决的重大课题。
1960年,霍尔进入Elliott兄弟伦敦公司,成为一名程序员。他接到的靠前个任务,就是为Elliott803计算机编写一个库程序,实现新发明出来的Shell排序算法。在此过程中,霍尔对不断提升代码的效率着了迷,他不仅很好地完成了任务,还发明了一种新算法,比Shell还快,而且不会多耗费太多空间——Quicksort诞生了。
随后,霍尔又接到了新任务——在公司新机型Elliott503上实现Algol60语言。ElliottAlgol的开发非常顺利,大获成功,霍尔本人也从此受到国际学术界的重视。当然,对他来说,另一件事情更为重要,他和项目中另一位当时比自己更专业的女程序员JillPym相识相知,并最后结婚。
霍尔发表过许多高水平的论著。ACM在1983年评选出最近25年中发表在CommunicationsoftheACM上的有里程碑式意义的25篇经典论文,只有2名学者各有2篇论文入选,霍尔就是其中之一。1972年他与O.J.Dahl和E.W.Dijkstra三位图灵奖得主合著的StructuredProgramming一书,更是难以逾越的高峰。