Brian Kernighan

Brian Kernighan
Brian Kernighan at Bell Labs in 2012 photographed by Ben Lowe
Born Brian Wilson Kernighan
(1942-01-01) January 1, 1942[1]
Toronto, Ontario
Nationality Canadian
Citizenship Canada
Alma mater University of Toronto
Princeton University (PhD)
Known for
Scientific career
Fields Computer science
Institutions Princeton University
Thesis Some Graph Partitioning Problems Related to Program Segmentation (1969)
Doctoral advisor Peter Weiner[3]
Influenced David J. Malan[4][5]
Website www.cs.princeton.edu/~bwk/

Brian Wilson Kernighan (/ˈkɜːrnɪhæn/; born January 1, 1942)[1] is a Canadian computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed to the development of Unix. He is also coauthor of the AWK and AMPL programming languages. The "K" of K&R C and the "K" in AWK both stand for "Kernighan". Since 2000 Brian Kernighan has been a Professor at the Computer Science Department of Princeton University, where he is also the Undergraduate Department Representative.[6][7]

Early life and education

Brian Kernighan speaks at a tribute to Dennis Ritchie in 2012 at Bell Labs.

Born in Toronto, Kernighan attended the University of Toronto between 1960 and 1964, earning his Bachelor's degree in engineering physics.[8] He received his PhD in electrical engineering from Princeton University in 1969 for research supervised by Peter Weiner.[3]

Career and research

Kernighan has held a professorship in the department of computer science at Princeton since 2000. Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors. Kernighan's name became widely known through co-authorship of the first book on the C programming language with Dennis Ritchie. Kernighan affirmed that he had no part in the design of the C language ("it's entirely Dennis Ritchie's work").[8] He authored many Unix programs, including ditroff.

In collaboration with Shen Lin he devised well-known heuristics for two NP-complete optimization problems: graph partitioning and the travelling salesman problem. In a display of authorial equity, the former is usually called the Kernighan–Lin algorithm, while the latter is known as the Lin–Kernighan heuristic.

Kernighan was the software editor for Prentice Hall International. His "Software Tools" series spread the essence of "C/Unix thinking" with makeovers for BASIC, FORTRAN, and Pascal, and most notably his "Ratfor" (rational FORTRAN) was put in the public domain.

He has said that if stranded on an island with only one programming language it would have to be C.[9]

Kernighan coined the term Unix and helped popularize Thompson's Unix philosophy.[10] Kernighan is also known as a coiner of the expression "What You See Is All You Get" (WYSIAYG), which is a sarcastic variant of the original "What You See Is What You Get" (WYSIWYG). Kernighan's term is used to indicate that WYSIWYG systems might throw away information in a document that could be useful in other contexts.

Kernighan's original 1978 implementation of Hello, World! was sold at The Algorithm Auction, the world's first auction of computer algorithms.[11]

In 1996, Kernighan taught CS50 which is the Harvard University introductory course in Computer Science.[5] One of his students on CS50 was David J. Malan, who now teaches the course.[4]

Other achievements during his career include:

Publications

References

  1. 1 2 Lohr, Steve (31 October 2002). "To the Liberal Arts, He Adds Computer Science". The New York Times. Mr. Kernighan, 60, is a computer scientist
  2. "C" Programming Language: Brian Kernighan - Computerphile on YouTube
  3. 1 2 Kernighan, Brian Wilson (1969). Some Graph Partitioning Problems Related to Program Segmentation. proquest.com (PhD thesis). Princeton University. OCLC 39166855. (subscription required)
  4. 1 2 Mendez, Cordelia F. (2014). "This is CS50". thecrimson.com. The Harvard Crimson. Archived from the original on 2017-03-17.
  5. 1 2 Malan, David J. (2010). "Reinventing CS50". Proceeding of SIGCSE '10 Proceedings of the 41st ACM technical symposium on Computer science education: 152. doi:10.1145/1734263.1734316. ISBN 9781450300063.
  6. Brian Kernighan author profile page at the ACM Digital Library
  7. Brian Kernighan's home page at Princeton University
  8. 1 2 Dolya, Aleksey (29 July 2003). "Interview with Brian Kernighan". Linux Journal.
  9. Budiu, Mihai (July 2000). "An Interview with Brian Kernighan".
  10. 1 2 3 4 McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
  11. "Brian Kernighan – Hello World". Artsy. Artsy. Retrieved 18 June 2015.
  12. D is for Digital: What a well-informed person should know about computers and communications ISBN 1463733895
  13. Brian Kernighan and Alan Donovan (2015) The Go Programming Language ISBN 0134190440
  • Brian Kernighan's home page at Bell Labs
  • "Why Pascal is Not My Favorite Programming Language" — By Brian Kernighan, AT&T Bell Labs, 2 April 1981
  • "Leap In and Try Things" — Interview with Brian Kernighan — on "Harmony at Work Blog", October 2009.
  • An Interview with Brian Kernighan — By Mihai Budiu, for PC Report Romania, August 2000
  • "Transcript of an interview with Brian Kernighan". Archived from the original on 2009-04-28. Retrieved 2016-03-31. Interview by"Michael S. Mahoney". Archived from the original on 2009-05-28. Retrieved 2016-03-31.
  • Video — TechNetCast At Bell Labs: Dennis Ritchie and Brian Kernighan (1999-05-14)
  • Video (Princeton University, September 7, 2003) — "Assembly for the Class of 2007: 'D is for Digital and Why It Matters'"
  • A Descent into Limbo by Brian Kernighan
  • Photos of Brian Kernighan
  • Works by Brian Kernighan at Open Library Edit this at Wikidata
  • Video interview with Brian Kernighan for Princeton Startup TV (2012-03-20)
  • The Setup, Brian Kernighan
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.