打字猴:1.700436468e+09
1700436468 前文已经介绍过道格早期在PL/I和EPL上的语言方面工作。Unix一经问世,他就写出各种各样的基础软件。他写的存储分配器malloc用了很多年。他对分配器的研究影响深远。他还写了一堆Unix命令;他达特茅斯学院的网页上列出了spell、diff、sort、join、graph、speak、tr、tsort、calendar、echo和tee。
1700436469
1700436470 其中有些是小工具,如echo;而有些是大工具,如sort和diff。但大多数都是Unix计算的核心工具,其中很多沿用至今。当然管道也来自他的构想,不过最终版本采用了肯的语法。管道之所以能出现,全拜道格不遗余力地游说所赐。
1700436471
1700436472 他写的spell版本[12]有效地利用字典和启发式方法来拆分单词,耗费些微资源即可找出拼写错误。
1700436473
1700436474 道格版本的diff程序实现了哈罗德 · 斯通(Harold Stone)和汤姆·希曼斯基(Tom Szymanski)发明的高效算法,用于比较两个文本文件,尽可能少地修改其中之一,将其转换成另一个文件。这段代码是管理多个版本文件的源代码控制系统的核心。这类系统最常见的工作方式是存储单个版本和一组差异数据(diff),通过运行diff算法生成其他版本。它也被用在更新程序的补丁机制中——不发送整个新版本,而是发送一连串由diff程序算出的ed编辑命令,将旧版本转换成新版本。
1700436475
1700436476 diff程序是说明好理论如何与好实践工程相结合,打造出基本工具的又一范例。人可以读懂diff产生的输出,程序也可以读懂。如果输出格式只面向人或只面向机器,有用程度就远远不足了。它示范了程序如何写程序,并且输出漂亮的小语言。
1700436477
1700436478 Unix还处于相当早期时,1127中心添置了一台新奇的设备:Votrax语音合成器,它可以将音位[13]转化为声音。道格创建了一套规则,用于将任意英文文本转换为音位。他还写了名为speak的程序,使用该规则生成Votrax可以接受的输入内容。当然,英语拼写是出了名的不规则,所以speak的输出常常并不完美,有时还很滑稽(我的名字被读成“Br-I-an Kern-I-an”),但几乎总是足够准确,确实很实用。
1700436479
1700436480 该程序就是个Unix命令,谁都能用,无须预约。向speak发送文本,Unix房间里装的一个大喇叭就会播出来。各种奇怪服务层出不穷。例如,每天下午1点,Votrax都会说:
1700436481
1700436482 “午餐时间,午餐时间,午餐时间。美味,美味,美味。”
1700436483
1700436484 提醒大家,1点15分食堂就会关门,该去吃饭了。
1700436485
1700436486 还有一种服务是监测来电,当有电话打过来时,铃声不响,喇叭宣布:
1700436487
1700436488 “有电话找道格。”
1700436489
1700436490 或者是找其他人。在共享办公空间里,这比经常响起的电话铃少让人分心许多。
1700436491
1700436492 道格的兴趣广泛而深入。他精通地图投影,这是一种专门的数学形式。他的map程序提供了几十种投影方法。直到今天,他还在制作新投影,印在寄给朋友的圣诞贺卡上和展示在他的达特茅斯学院网页上。
1700436493
1700436494 道格是优秀的技术评论家,经常率先尝试新程序或新想法。他会尽早上手。他品位很高,对什么好、什么需要修正的意见非常宝贵。到他办公室来咨询的人络绎不绝,希望他对各种想法、算法、程序、文档——包罗万象——提出意见和批评。本贾尼·斯特劳斯特鲁普经常来找我讨论C++,阐述一些新想法,然后沿着走廊到几道门以外道格的办公室,认真听取他对语言设计的反馈意见。
1700436495
1700436496 道格通常是论文或手册草稿的第一位读者,他巧妙地戳破修辞气球,删繁就简,剔除不必要的副词。一般来说,他还会收拾残局,使之完善。在迈克·马奥尼的Unix口述史(1989)中,阿尔·阿霍评价道格说:
1700436497
1700436498 “他从只言片语中就能了解我所做的一切。基本上也是他教会我写作。我认为他是我所知道的最优秀的技术作家之一。他富有语言天赋,善于简洁表达,很了不起。”
1700436499
1700436500 道格是我博士学位论文的外审,他帮助我改进了论文的结构和论述。他还阅读了我与实验室其他人合著的所有书籍的多份草稿,而且总能把它们改得更好。他完善和打磨了Unix命令手册,整理和组织了Unix第8版到第10版的手册内容。他不惜耽误自己的研究,热情又细心地做了这一切。
1700436501
1700436502 道格于1986年辞去管理职务,1997年从实验室退休,前往达特茅斯任教。图4-6所示为2011年庆祝肯和丹尼斯获得日本奖时在墨里山贝尔实验室拍摄的照片。
1700436503
1700436504
1700436505
1700436506
1700436507 图4-6 道格·麦基尔罗伊和丹尼斯·里奇, 2011年5月(维基百科)
1700436508
1700436509 [1]  user、group、others与read、write、execute两两组合,一共9种权限。——译者注
1700436510
1700436511 [2] “创建”的英文单词是create,肯·汤普森出于个人喜好,省略了词尾的e。——译者注
1700436512
1700436513 [3]  shell是“外壳”的意思,但约定俗成使用原文,故这里也不做翻译。——译者注
1700436514
1700436515 [4]  括号内是对命令的解释,不是命令的一部分。——译者注
1700436516
1700436517 [5]  对应译文如下:“小结——我最关心的问题是:1. 我们应该有像花园浇水管那样的耦合程序的方法——当需要用另一种方式操作数据时,就接入另一段软管。”供参考。 ——译者注
[ 上一页 ]  [ :1.700436468e+09 ]  [ 下一页 ]