Brian Wilson Kernighan (; born January 1, 1942) is a  Canadian computer scientist.
He worked at
Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie.
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"). He authored many  Unix programs, including ditroff.
Kernighan is coauthor of the
AWK and AMPL programming languages. The "K" of K&R C and the "K" in AWK both stand for "Kernighan".
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 has been a Professor in the Computer Science Department of
Princeton University since 2000. He is also the Undergraduate Department Representative.  
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. He received his PhD in  electrical engineering from Princeton University in 1969 for research supervised by Peter Weiner. 
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 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.
Kernighan coined the term
Unix and helped popularize Thompson's Unix philosophy. 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. 
In 1996, Kernighan taught
CS50 which is the Harvard University introductory course in Computer Science. 
Other achievements during his career include:
AMPL programming language The
AWK programming language, with Alfred Aho and Peter J. Weinberger, and its book The AWK Programming Language ditroff, or "device independent
troff", which allowed troff to be used with any device
, with The Elements of Programming Style P. J. Plauger The first documented
"Hello, world!" program, in Kernighan's "A Tutorial Introduction to the Language B" (1972) Ratfor
Software Tools, a book and set of tools for Ratfor, co-created in part with P. J. Plauger
Software Tools in Pascal, a book and set of tools for Pascal, with P. J. Plauger
The C Programming Language, with C creator Dennis Ritchie, the first book on C The
eqn typesetting language for troff, with Lorinda Cherry  The
m4 macro processing language, with Dennis Ritchie The
pic typesetting language for troff 
, with The Practice of Programming Rob Pike
, a tutorial book, with Rob Pike The Unix Programming Environment "Why Pascal is Not My Favorite Programming Language", a popular criticism of Niklaus Wirth's Pascal. Some parts of the criticism are obsolete due to ISO 7185 (Programming Languages - Pascal); the criticism was written before ISO 7185 was created. (AT&T Computing Science Technical Report #100)
^ a b
Lohr, Steve (31 October 2002). "To the Liberal Arts, He Adds Computer Science". . The New York Times Mr. Kernighan, 60, is a computer scientist
on "C" Programming Language: Brian Kernighan - Computerphile YouTube
^ a b
Kernighan, Brian Wilson (1969). Some Graph Partitioning Problems Related to Program Segmentation (PhD thesis). Princeton University. OCLC 39166855. ProQuest 302450661. (subscription required)
Mendez, Cordelia F. (2014). "This is CS50". thecrimson.com. The Harvard Crimson. Archived from the original on 2017-03-17.
^ a b
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
^ a b
Dolya, Aleksey (29 July 2003). "Interview with Brian Kernighan". . Linux Journal
Brian Kernighan author profile page at the ACM Digital Library
Brian Kernighan's home page at Princeton University
Budiu, Mihai (July 2000). "An Interview with Brian Kernighan".
^ a b c d
McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971-1986 (PDF) (Technical report). CSTR. Bell Labs. 139.
"Brian Kernighan: Geek of the Week". Simple Talk. 2010-05-19 . Retrieved .
"Brian Kernighan - Hello World". Artsy. Artsy . Retrieved 2015.
^ D is for Digital: What a well-informed person should know about computers and communications
^ Brian Kernighan and Alan Donovan (2015) The Go Programming Language
^ UNIX: A History and a Memoir