指针就像跳转一样,疯狂地在数据结构之间到处指来指去。在高级语言里面引入指针是个退步。我们可能永远无法从这一失败之中恢复过来。
这段话出自查尔斯·霍尔(Charles A.R. Hoare),1980年他因“对程序设计语言的定义和设计方面的基础性贡献”而获得图灵奖。他26岁就发明了闻名于世的快速排序算法Quicksort。当然,他对计算机科学技术的贡献还远远不止于此,在程序设计语言的定义和设计、数据结构和算法、操作系统等许多方面,他都有许多影响深远的成果。他,查尔斯·霍尔,就是这样一个了不起的人。
早年生平
霍尔是英国人,1934年1月11日生于斯里兰卡的科伦坡。小时候的理想是当个作家,喜欢萧伯纳和罗素的作品。因为勤奋好学、少言寡语,他被同学称为“教授”。中学毕业后,他进入牛津的莫顿学院学习,对数理逻辑产生了兴趣,并首次接触到了计算机。他的第一个程序用Mercury Autocode的语言编写,解决了诺依曼书中的两人博弈问题。
崭露头角
1960年,霍尔进入Elliott兄弟伦敦公司,成为一名程序员。他接到的第一个任务,就是为Elliott 803计算机编写一个库程序,实现新发明出来的Shell排序算法。在此过程中,霍尔对不断提升代码的效率着了迷,他不仅很好地完成了任务,还发明了一种新算法,比Shell还快,而且不会多耗费太多空间——Quicksort诞生了。
随后,霍尔又接到了新任务——在公司新机型Elliott 503上实现Algol 60语言。Elliott Algol的开发非常顺利,大获成功,霍尔本人也从此受到国际学术界的重视。当然,对他来说,另一件事情更为重要,他和项目中另一位当时比自己更专业的女程序员Jill Pym相识相知,并最后结婚。
开创性成果
1968年他到北爱尔兰女王大学从事教学和研究,1977年转入牛津大学至今,目前还同时担任微软研究院的研究员。他全身心地投入到计算机科学理论的研究中,作出了许多创造性的重大贡献,尤其是程序设计理论和操作系统设计等方面,目前许多广泛流行与应用着的概念都源于霍尔的工作。
1969年10月,霍尔在Communications of the ACM上发表了有里程碑意义的论文“计算机程序设计的公理基础”。在这篇论文中,霍尔提出了公理语义学,这是继1963年用递归函数定义程序,以及在1967年基于程序流程图的归纳断言法以后,程序逻辑研究中所取得的又一个重大技术进展。
20世纪70年代后期,霍尔深入研究并实现了程序设计语言CSP,后来成为著名的并行处理语言Occam的基础。80年代中期,霍尔和S. Brools等人合作,提出了“CSP理论”,开创了用代数方法研究通信并发系统的先河,形成了“进程代数”这一新的研究领域。1995年他还和我国学者、中科院院士何积丰合作,提出了统一程序设计理论。
霍尔发表过许多高水平的论著。ACM在1983年评选出最近25年中发表在Communications of the ACM上的有里程碑式意义的25篇经典论文,只有2名学者各有2篇论文入选,霍尔就是其中之一。1972年他与O.J. Dahl和E. W. Dijkstra三位图灵奖得主合著的Structured Programming一书,更是难以逾越的高峰。
获奖经历
霍尔获奖无数,1980年获得美国计算机学会(ACM)设立的计算机界最高奖——图灵奖;1981年获得AFIPS的Harry Goode奖;1985年获得英国IEE的法拉第奖章;1990年被IEEE授予计算机先驱奖。2000年获得日本稻盛财团设立的国际大奖——京都奖(尖端技术领域)。
2009年3月他在Qcon技术会议上发表了题为“Null引用:代价十亿美元的错误”的演讲,回忆自己1965年设计第一个全面的类型系统时,未能抵御住诱惑,加入了Null引用,仅仅是因为实现起来非常容易。它后来成为许多程序设计语言的标准特性,导致了数不清的错误、漏洞和系统崩溃,可能在之后40年中造成了十亿美元的损失。他在同月出版Communications of the ACM中表示,如何证明程序的正确性仍然是计算机科学中有待解决的重大课题。

转载于:https://blog.51cto.com/zyh2000/321722

Quicksort算法之父——1980年图灵奖获得者查尔斯·霍尔相关推荐

  1. 1980年图灵奖--查尔斯·霍尔简介

    大家好,我是执念斩长河.今天讲述的是1980年图灵奖获得者查尔斯·霍尔.图灵奖奖励他为程学设计语言的定义和设计.数据结构和算法做出强大的贡献.读完本篇博文大家可以收获的是: 快速排序的发明 switc ...

  2. 图灵奖得主(麦卡锡\霍尔)

    约翰.麦卡锡 --"人工智能之父"和LISP语言的发明人     1971年的图灵奖授予提出"人工智能"这一术语并使之成为一个重要的学科领域的斯坦福大学教授约翰 ...

  3. 历届图灵奖获得者最新名单

    历届图灵奖获得者最新名单 2004 Vinton G. Cerf.Robert E. Kahn 获奖原因:由于在互联网方面开创性的工作,这包括设计和实现了互联网的基础通讯协议,TCP/IP,以及在网络 ...

  4. 计算机名人堂(历届图灵奖获得者)

    计算机名人堂(历届图灵奖获得者) 摘自  温研的专栏 图灵奖最早设立于1966年,是美国计算机协会在计算机技术方面所授予的最高奖项,被喻为计算机界的诺贝尔奖.它是以英国数学天才Alan Turing先 ...

  5. 6位图灵奖获得者、10多位院士在线“教学”,这套关于“人工智能下一个十年”的课程免费提供给你...

    2020 年 6 月 21-24 日,第二届北京智源大会将以线上直播形式盛大召开,本届大会邀请了包括 6 位图灵奖获得者.10 多位院士在内的上百位人工智能领域的顶级专家学者,围绕技术.应用.基础设施 ...

  6. 图灵奖获得者 Alan Kay:突破常规思维,创建下一代科研社区(附视频)

    2020 北京智源大会 本文属于2020北京智源大会嘉宾演讲的整理报道系列.北京智源大会是北京智源人工智能研究院主办的年度国际性人工智能高端学术交流活动,以国际性.权威性.专业性和前瞻性的" ...

  7. 图灵奖获得者Yann LeCun:未来几十年AI研究的最大挑战是「预测世界模型」

    来源:机器之心 LeCun 认为,构造自主 AI 需要预测世界模型,而世界模型必须能够执行多模态预测,对应的解决方案是一种叫做分层 JEPA(联合嵌入预测架构)的架构.该架构可以通过堆叠的方式进行更抽 ...

  8. 1985年的图灵奖获得者-Richard Manning Karp

    Richard Manning Karp(01/03/1935--) 图 灵 奖 获 得 时 间 : 1985年 . 第二十位 图 灵 奖 (1985年 ) 获 得 者 . 图 灵 奖 引 用 (Tu ...

  9. 量子计算机科学家姚期智,姚期智论文,关于图灵奖获得者姚期智:量子计算机只差“最后一公里”相关参考文献资料-免费论文范文...

    导读:本论文主要论述了姚期智论文范文相关的参考文献,对您的论文写作有参考作用. RSA 算法是现在常用的加密算法,大家认为这是一个高度安全的论文范文系统,但是如果有了量子计算机,科学家发现,RSA 将 ...

  10. 1995年的图灵奖获得者-Manuel Blum

    Manuel Blum (04/26/1938--) 图 灵 奖 获 得 时 间 : 1995年 . 第三十位 图 灵 奖 (1995年 ) 获 得 者 . 图 灵 奖 引 用 (Turing Awa ...

最新文章

  1. 开发者转型AI看过来,这是一场汇聚中美顶尖专家的AI盛会
  2. html显示三维模型restful,返回带有Flask Restful的呈现模板,在浏览器中显示HTML
  3. HDU 3251 Being a Hero
  4. 整活插件 炉石传说_炉石传说:一顿操作猛如虎,定睛一看原地杵,会长整活被死人抬走...
  5. Will Wright总是能给我们带来惊奇啊
  6. 医学计算机应用第五版题库,医科医学计算机应用题库
  7. 安装mysql的过程可以中断吗_安装 mysql 遇到的坑(附 mysql 安装过程)
  8. 华为p40 pro原理图_4188起 华为P40/Pro/Pro+国行发布 顶配8888 河图正式上线!
  9. mysql 创建查询 删除_MYSQL数据库查询删除创建企业基本知识
  10. 新版rust怎么拆除建筑_宁夏乘客电梯拆除电话
  11. 10年程序员谈.Net程序员的职业规划
  12. 导出oracle11g的空表,轻松解决oracle11g 空表不能 exp 导出 的问题。
  13. 【毕业论文写作技巧】毕业设计(论文)写作框架
  14. 04 - Masonry使用练习
  15. OpenSSL密码库算法笔记——第6.5章 密钥协商
  16. Linux 搭建mysql读写分离
  17. matlab的RI是什么,LTE上报的CQI、PMI、RI分别有什么用
  18. 机器学习中的忒修斯之船:那些“愚弄”专家的著名悖论
  19. 出版一本书可以赚多少钱_今年出版5本书
  20. 计算机表格大小怎么调整,EXCEL如何根据内容自动调整表格尺寸?

热门文章

  1. textbox 下拉模糊查询ajax,Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中...
  2. 字体的成本:按字算,微软是100美元
  3. Mac编译OpenJDK8:configure: error: Xcode 4 is required to build JDK 8, the version found was 10.1config
  4. 输入法快捷键导致功能软件功能失效
  5. BUG没确认就重启机器,大哥你凭什么说有这样的BUG
  6. 软件一定要联网安装,只有内网就干瞪眼
  7. 解决办法:一切都正确,Python3执行PyImport_Import()一直返回NULL
  8. sw如何缩放装配体_solidworks提高大型装配体的展示、设计效率
  9. python生成序列_python如何生成随机序列?
  10. 元器件封装形式对照表_二三极管封装形式图表