1927年首位计算机博士David John Wheeler诞生David John Wheeler David John Wheeler,1927年2月9日出生于英国伯明翰。1948年他毕业于剑桥大学三一学院数学专业,并于1951年成为全世界首位计算机博士学位获得者。 1947年,David John Wheeler就开始参加EDSAC的研制工作,并在此过程中做出了两项巨大项献。其一是发明了“Initial Orders”。我们知道,现代计算机在启动后,会首先自动执行一个所谓“自举装入程序”(Bootstrap Loader),对机器各部分作必要的检查,然后装入操作系统等基本软件,使机器处于待命、准备接收程序和指令的状态。David John Wheeler的“Initial Orders”就是现代自举装入程序的始祖,它被放在用一组电话交换机的步进开关做成的只读存储器中,只要一按启动开关,该程序就被一个自动过程拷贝到水银延迟线存储器中去,并被执行,从而从纸带上将所要运行的程序读入主存。他的这一创造使EDSAC成为当时自动化程度最高、最灵巧而名符其实的“自动电子计算机”。 另一重大项献,他提出了实现子程序转移方法“Wheeler Jump”,后来被称为“Subroutine Jump”。编过程序的人,都知道“子程序”(Subroutine)在程序设计中的重要意义和作用。子程序思想的提出与实现,一方面可以将一些常用的或有公用性的过程预先编码存在所谓子程序库中,需要时由主程序随时调用,避免了重复编码的麻烦;另一方面又可以将复杂的任务分解成较小的单位,以便于分别处理,提高了编程的效率和程序的清晰性。子程序和子程序库是首届计算机先驱奖获得者威尔克斯在研制EDSAC中首先提出的。但是威尔克斯在实现他的子程序思想时遇到了一个很大的问题,即控制如何从主程序转至子程序,又如何从子程序转回主程序。这个对于现今的程序设计人员来说十分简单的问题,当时却令所有参与研制EDSAC的人(包括威尔克斯本人)大大地伤了一回脑筋。而当时还在读研究生的David John Wheeler提出的即将发生程序转移时的地址保存起来以便后来实现返回的方法,即“Wheeler jump”,完美地解决了这个问题。他也因这一方法的发明,而获得了1985年度的计算机先驱奖。 另外,1994年Michael Burrows和 David Wheeler在DEC系统研究中心共同提出了一种全新的通用数据压缩算法,Burrows-Wheeler Transformation(缩写为BWT)。该算法与以往所有通用压缩算法的设计思路都迥然不同。现有比较著名的压缩算法都是处理数据流模型的,一次读取一个或多个字节,BWT使得处理成块的数据成为可能。这种算法的核心思想是对字符串轮转后得到的字符矩阵进行排序和变换。考虑一般的文本应用比如英语文本中the这个字符串经常会被用到,经过BW转换之后,所有的t都被移动到最后并且聚合在一起,这样变换之后的字符串用通用的统计压缩模型(Huffman coding、LZ算法、PPM算法)等进行压缩就能得到更好的压缩比。 David John Wheeler还有一句名言:“计算机科学中的任何问题,都可以通过加上一层逻辑层来解决。”这个原则在计算机各技术领域被广泛应用。 2004年12月13日,David John Wheeler逝世。 |
|