Brian Wilson Kernighan是一位加拿大计算机科学家,在贝尔实验室,他与Unix的创造者Ken Thompson以及Dennis Ritchie一起工作,同时它也是开发Unix的主要贡献者。他是 AWK 和 AMPL 编程语言的作者之一,AWK中的K说的就是Kernighan。同时,它也是《C程序设计语言》的作者之一,他与C语言的发明人Dennis Ritchie共同合作了这本书,K&R就是两人名字的缩写。Brian Kernighan现在是普林斯顿大学计算机学院的教授,同时,他也是本科学部的代表。

教育与早期生活

Kernighan在1942年1月1日出生在加拿大多伦多,在1960年到1964年之间在多伦多大学获得工程物理的学士学位。他在普林斯顿大学取得了电气工程的博士学位,同样在那里,他在2000年取得了计算机科学的教授教职。每年的秋季,他都会教授一门名叫“电脑在我们中间”的课程,这门课是向非计算机专业的学生介绍计算的基本常识的。

一些成就

Kernighan的名字第一次被大家所知是因为他是第一本C语言教程的合著人之一,另一位作者正是C语言的作者Dennis Ritchie。Kernighan曾谦虚地表示,他没有参与过C语言的任何设计,“这些都是Dennis Ritchie的功劳”。他还和Dennis Ritchie一起创作了m4通用宏处理器。

他曾写过很多Unix程序,其中包括 Version 7 Unix 的ditroff("device independent troff", 即任何设备都可用的troff)和cron

Unix第七版也叫做Version 7 或者 V7,是早期Unix操作系统的重要版本,于1979年发布。它是Unix 被 AT&T商业化之前,由贝尔实验室发布的最后一个版本。V7是为数字设备公司的PDP-11微型电脑设计的,之后被移植到其他平台上。

他与Shen Lin合作共同完成了两个知名的NP-complete优化问题的解决方案:图划分问题旅行推销员问题。(为著作权考虑,其中前一个问题被称为Kernighan–Lin算法,而后面的被称为Lin–Kernighan。)

旅行推销员问题(Travelling Salesman Problem, 又称为旅行商问题、货郎担问题、TSP问题)是一个多局部最优的最优化问题:有n个城市,一个推销员要从其中某一个城市出发,唯一走遍所有的城市,再回到他出发的城市,求最短的路线。

Kernighan还是Prentice Hall出版社的软件编辑。他的“软件工具”系列丛书把 C/Unix 设计思想的BASIC, FORTRAN, 和 Pascal翻版广为传播,其中'Ratfor' (rational FORTRAN)也进入到了公众领域。

他曾说,如果要和一种编程语言一起被困在孤岛上的话,那么他希望这个语言是C。

Kernighan在1970年造了Unix这个词。一开始他想到的是Unics(Uniplexed Information and Computing Service)——这是一个关于Multics的玩笑,再之后,才更名为Unix。

Multics,全名MULTiplexed Information and Computing System,是1964年由贝尔实验室、麻省理工学院及美国通用电气公司所共同参与研发的,是一套安装在大型主机上多人多任务的操作系统,目的是连接1000部终端机,支持300的用户同时上线。1969年,因MULTICS计划的工作进度过于缓慢,最后终究遭裁撤的命运,贝尔实验室退出此计划。

Kernighan也是“所见即全部所得”——WYSIAYG(What You See Is All You Get)的创造者,这是为了讽刺“所见即所得”(What You See Is What You Get),即WYSIWYG系统的弊端,它会丢掉一些文档中可能有用的信息。

他所著的书包括《C程序设计语言》、The Elements of Programming Style,与Rob Pike合著的《UNIX环境高级编程》和《程序设计实践》,以及现在正在翻译中的D is for Digital

enter image description here

Kernighan在普林斯顿大学为非计算机专业学生开设了一门介绍计算机技术基础的课程,本书根据课程讲义编写。书中解释了当今计算和通信领域的工作方式,包括硬件、软件、因特网等,讨论了新技术带来的社会、政治和法律问题,让你理解这些问题并理会在解决问题时作出的折中。这本书结构紧凑、深入浅出,即便你没有技术背景也能由此了解数字系统。

延伸阅读:图灵访谈之二十二:Brian W. Kernighan与CS的半个世纪