Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
Brian Kernighan
Canadian computer scientist, one of the creators of Unix

Brian Wilson Kernighan is a Canadian computer scientist known for his work at Bell Labs, where he contributed to the development of Unix alongside creators Ken Thompson and Dennis Ritchie. He co-authored the first book on the C programming language, The C Programming Language, with Ritchie but clarified that the language’s design was Ritchie’s work. Kernighan also created many Unix tools like ditroff, and co-developed the AWK and AMPL programming languages. Together with Shen Lin, he developed heuristics for graph partitioning and the travelling salesman problem, known as the Kernighan–Lin algorithm and Lin–Kernighan heuristic. He has been a professor at Princeton University since 2000 and co-authored The Go Programming Language in 2015.

Related Image Collections Add Image
We don't have any YouTube videos related to Brian Kernighan yet.
We don't have any PDF documents related to Brian Kernighan yet.
We don't have any Books related to Brian Kernighan yet.
We don't have any archived web articles related to Brian Kernighan yet.

Early life and education

Kernighan was born in Toronto. He attended the University of Toronto between 1960 and 1964, earning his bachelor's degree in engineering physics.8 He received his Ph.D. in electrical engineering from Princeton University in 1969, completing a doctoral dissertation titled "Some graph partitioning problems related to program segmentation" under the supervision of Peter G. Weiner.910

Career and research

Kernighan has held a professorship in the department of computer science at Princeton since 2000.11 Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors.1213

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.14

Kernighan coined the term "Unix" and helped popularize Thompson's Unix philosophy.15 Kernighan is also known for coining 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).16 Kernighan's term is used to indicate that WYSIWYG systems might throw away information in a document that could be useful in other contexts.

In 1972, Kernighan described memory management in strings using "hello" and "world", in the B programming language,17 which became the iconic example we know today. Kernighan's original 1978 implementation of hello, world! was sold at The Algorithm Auction, the world's first auction of computer algorithms.18

In 1996, Kernighan taught CS50 which is the Harvard University introductory course in computer science. Kernighan was an influence on David J. Malan who subsequently taught the course and scaled it up to run at multiple universities and in multiple digital formats.19

Kernighan was elected a member of the National Academy of Engineering in 2002 for contributions to software and to programming languages. He was also elected a member of the American Academy of Arts and Sciences in 2019.2021

In 2022, Kernighan stated that he was actively working on improvements to the AWK programming language, which he took part in creating in 1977.22

Books and reports

Programs

Publications

  • The Elements of Programming Style (1974, 1978) with P. J. Plauger
  • Software Tools (1976) with P. J. Plauger
  • The C Programming Language (1978, 1988) with Dennis M. Ritchie
  • Software Tools in Pascal (1981) with P. J. Plauger
  • The Unix Programming Environment (1984) with Rob Pike
  • The AWK Programming Language (1988, 2023) with Alfred Aho and Peter J. Weinberger
  • The Practice of Programming (1999) with Rob Pike
  • AMPL: A Modeling Language for Mathematical Programming, 2nd ed. (2003) with Robert Fourer and David Gay
  • D is for Digital: What a well-informed person should know about computers and communications (2011)26
  • The Go Programming Language (2015) with Alan Donovan27
  • Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security (2017)
  • Millions, Billions, Zillions: Defending Yourself in a World of Too Many Numbers (2018)
  • UNIX: A History and a Memoir (2019)28

See also

Wikiquote has quotations related to Brian Kernighan. Wikimedia Commons has media related to Brian Kernighan.

References

  1. Pike, Rob (7 November 2018). "The History of Unix". YouTube. Archived from the original on 2021-11-23. Retrieved 2 May 2020. https://www.youtube.com/watch?v=_2NI6t2r_Hs&t=36m55s

  2. Nerd Talk - Doug McIlroy & Brian Kernighan, 22 October 2021, retrieved 2023-12-16 https://www.youtube.com/watch?v=Xe5ffO6Ouwg&t=18

  3. The Library of Congress. "Kernighan, Brian W. - LC Linked Data Service: Authorities and Vocabularies | Library of Congress, from LC Linked Data Service: Authorities and Vocabularies (Library of Congress)". id.loc.gov. Retrieved 3 March 2023. https://id.loc.gov/authorities/names/n50044563.html

  4. Dolya, Aleksey (29 July 2003). "Interview with Brian Kernighan". Linux Journal. http://www.linuxjournal.com/article/7035

  5. Brian Kernighan author profile page at the ACM Digital Library https://dl.acm.org/author_page.cfm?id=81100397511

  6. "An Oral History of Unix". 2007-06-11. Archived from the original on 2007-06-11. Retrieved 2020-05-13. https://web.archive.org/web/20070611235312/http://www.princeton.edu/%7Emike/unixhistory.htm

  7. "Brian Kernighan | Computer Science Department at Princeton University". www.cs.princeton.edu. Retrieved 2020-05-13. https://www.cs.princeton.edu/people/profile/bwk

  8. Dolya, Aleksey (29 July 2003). "Interview with Brian Kernighan". Linux Journal. http://www.linuxjournal.com/article/7035

  9. "Brian Kernighan - The Mathematics Genealogy Project". www.genealogy.math.ndsu.nodak.edu. Retrieved 2020-05-13. https://www.genealogy.math.ndsu.nodak.edu/id.php?id=82029

  10. Kernighan, Brian W. (1969). Some graph partitioning problems related to program segmentation. https://catalog.princeton.edu/catalog/1528336

  11. "Brian Kernighan | Computer Science Department at Princeton University". https://www.cs.princeton.edu/people/profile/bwk

  12. Kernighan, Brian. "COS 109, Fall 2021: Home Page". www.cs.princeton.edu. Retrieved 2022-08-23. The course will have fundamentally the same structure as in previous years, but lectures, case studies and examples change every year according to what's happening. https://www.cs.princeton.edu/courses/archive/fall21/cos109/

  13. Kernighan, Brian. "COS 109: Computers in our world" (PDF). Princeton Education. Archived (PDF) from the original on 2017-03-25. https://www.cs.princeton.edu/courses/archive/fall14/cos109/01intro.pdf

  14. Budiu, Mihai (July 2000). "An Interview with Brian Kernighan". http://www-2.cs.cmu.edu/~mihaib/kernighan-interview/index.html

  15. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139. Archived (PDF) from the original on 2022-10-09. /wiki/Doug_McIlroy

  16. "Brian Kernighan: Geek of the Week". Simple Talk. 2010-05-19. Retrieved 2019-02-05. https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/brian-kernighan-geek-of-the-week/

  17. "THE PROGRAMMING LANGUAGE B". Bell Laboratories. 16 October 2021. Archived from the original on 2015-06-11. https://www.bell-labs.com/usr/dmr/www/bintro.html

  18. "Brian Kernighan – Hello World". Artsy. Retrieved 18 June 2015. https://www.artsy.net/artwork/brian-kernighan-hello-world

  19. Malan, David J. (2010). "Reinventing CS50". Proceedings of the 41st ACM technical symposium on Computer science education. pp. 152–156. doi:10.1145/1734263.1734316. ISBN 9781450300063. 9781450300063

  20. "Dr. Brian W. Kernighan". NAE Website. Retrieved 2020-05-13. https://nae.edu/30184/Dr-Brian-W-Kernighan

  21. "Brian W. Kernighan". American Academy of Arts & Sciences. Retrieved 2020-05-13. https://www.amacad.org/person/brian-w-kernighan

  22. "Unix legend, who owes us nothing, keeps fixing foundational AWK code". Ars Technica. 23 August 2022. Retrieved 2023-05-12. https://arstechnica.com/gadgets/2022/08/unix-legend-who-owes-us-nothing-keeps-fixing-foundational-awk-code/

  23. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139. Archived (PDF) from the original on 2022-10-09. /wiki/Doug_McIlroy

  24. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139. Archived (PDF) from the original on 2022-10-09. /wiki/Doug_McIlroy

  25. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (Technical report). CSTR. Bell Labs. 139. Archived (PDF) from the original on 2022-10-09. /wiki/Doug_McIlroy

  26. D is for Digital: What a well-informed person should know about computers and communications ISBN 1463733895 /wiki/ISBN_(identifier)

  27. Brian Kernighan and Alan Donovan (2015) The Go Programming Language ISBN 0134190440 /wiki/ISBN_(identifier)

  28. UNIX: A History and a Memoir ISBN 1695978552 /wiki/ISBN_(identifier)