Brian Kernighan
   HOME

TheInfoList



OR:

Brian Wilson Kernighan (; born January 30, 1942) is a Canadian
computer scientist A computer scientist is a scientist who specializes in the academic study of computer science. Computer scientists typically work on the theoretical side of computation. Although computer scientists can also focus their work and research on ...
. He worked at
Bell Labs Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...
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 ('' 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"). Kernighan authored many Unix programs, including ditroff. He is coauthor of the AWK and AMPL
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s. The "K" of K&R C and of AWK both stand for "Kernighan". In collaboration with Shen Lin he devised well-known heuristics for two NP-complete optimization problems:
graph partition In mathematics, a graph partition is the reduction of a Graph (discrete mathematics), graph to a smaller graph by partition of a set, partitioning its set of nodes into mutually exclusive groups. Edges of the original graph that cross between the g ...
ing 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 of computer science at
Princeton University Princeton University is a private university, private Ivy League research university in Princeton, New Jersey, United States. Founded in 1746 in Elizabeth, New Jersey, Elizabeth as the College of New Jersey, Princeton is the List of Colonial ...
since 2000 and is the director of undergraduate studies in the department of computer science. In 2015, he co-authored the book ''The Go Programming Language''.


Early life and education

Kernighan was born in
Toronto Toronto ( , locally pronounced or ) is the List of the largest municipalities in Canada by population, most populous city in Canada. It is the capital city of the Provinces and territories of Canada, Canadian province of Ontario. With a p ...
. He attended the University of Toronto between 1960 and 1964, earning his
bachelor's degree A bachelor's degree (from Medieval Latin ''baccalaureus'') or baccalaureate (from Modern Latin ''baccalaureatus'') is an undergraduate degree awarded by colleges and universities upon completion of a course of study lasting three to six years ...
in engineering physics. He received his Ph.D. in
electrical engineering Electrical engineering is an engineering discipline concerned with the study, design, and application of equipment, devices, and systems that use electricity, electronics, and electromagnetism. It emerged as an identifiable occupation in the l ...
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.


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 Basic or BASIC may refer to: Science and technology * BASIC, a computer programming language * Basic (chemistry), having the properties of a base * Basic access authentication, in HTTP Entertainment * Basic (film), ''Basic'' (film), a 2003 film ...
, FORTRAN, and Pascal, and most notably his " Ratfor" (rational FORTRAN) was put in the
public domain The public domain (PD) consists of all the creative work to which no Exclusive exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly Waiver, waived, or may be inapplicable. Because no one holds ...
. 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 The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to Minimalism (computing), minimalist, Modularity (programming), modular software development. It is based on the experience of leading devel ...
. 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). 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, which became the iconic example we know today. Kernighan's original 1978 implementation of was sold at The Algorithm Auction, the world's first auction of computer algorithms. In 1996, Kernighan taught CS50 which is the
Harvard University Harvard University is a Private university, private Ivy League research university in Cambridge, Massachusetts, United States. Founded in 1636 and named for its first benefactor, the History of the Puritans in North America, Puritan clergyma ...
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. Kernighan was elected a member of the
National Academy of Engineering The National Academy of Engineering (NAE) is an American Nonprofit organization, nonprofit, NGO, non-governmental organization. It is part of the National Academies of Sciences, Engineering, and Medicine (NASEM), along with the National Academ ...
in 2002 for contributions to software and to programming languages. He was also elected a member of the
American Academy of Arts and Sciences The American Academy of Arts and Sciences (The Academy) is one of the oldest learned societies in the United States. It was founded in 1780 during the American Revolution by John Adams, John Hancock, James Bowdoin, Andrew Oliver, and other ...
in 2019. In 2022, Kernighan stated that he was actively working on improvements to the AWK programming language, which he took part in creating in 1977.


Books and reports

* '' The Elements of Programming Style'', with P. J. Plauger * ''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 Practice of Programming'', with
Rob Pike Robert Pike (born 1956) is a Canadian programmer and author. He is best known for his work on the Go programming language while working at Google and the Plan 9 operating system while working at Bell Labs, where he was a member of the Unix t ...
* '' The Unix Programming Environment'', a tutorial book, with Rob Pike
"Why Pascal is Not My Favorite Programming Language"
a popular criticism of
Niklaus Wirth Niklaus Emil Wirth ( IPA: ) (15 February 1934 – 1 January 2024) was a Swiss computer scientist. He designed several programming languages, including Pascal, and pioneered several classic topics in software engineering. In 1984, he won the Tu ...
'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) * ''UNIX: A History and a Memoir'', a historical account of the development of Unix from the perspective of his role at
Bell Labs Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...


Programs

* 1972: The first documented "Hello, world!" program, in Kernighan'
"A Tutorial Introduction to the Language B"
* 1973: ditroff, or "device independent
troff troff (), short for "typesetter roff", is the major component of a document processing system developed by Bell Labs for the Unix operating system. troff and the related nroff were both developed from the original roff (software), roff. Whil ...
", which allowed troff to be used with any device * 1974: The eqn typesetting language for troff, with Lorinda Cherry * 1976: Ratfor * 1977: The m4 macro processing language, with Dennis Ritchie * 1977: The AWK programming language, with
Alfred Aho Alfred Vaino Aho (born August 9, 1941) is a Canadian computer scientist best known for his work on programming languages, compilers, and related algorithms, and his textbooks on the art and science of computer programming. Aho was elected into ...
and Peter J. Weinberger, and its book '' The AWK Programming Language'' * 1985: The AMPL programming language * 1988: The pic typesetting language for troff


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) * ''The Go Programming Language'' (2015) with Alan Donovan * ''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)UNIX: A History and a Memoir


See also

* List of pioneers in computer science


References


External links


Brian Kernighan's home page at Bell LabsLex Fridman Podcast #109: Brian Kernighan - UNIX, C, AWK, AMPL, and Go Programming
nbsp;— By Brian Kernighan, AT&T Bell Labs, 2 April 1981
"Leap In and Try Things" — Interview with Brian Kernighan
nbsp;— on "Harmony at Work Blog", October 2009.

nbsp;— By Mihai Budiu, for ''PC Report Romania'', August 2000 * – Interview by

nbsp;— TechNetCast At Bell Labs: Dennis Ritchie and Brian Kernighan (1999-05-14)
Video (Princeton University, September 7, 2003)
nbsp;— "Assembly for the Class of 2007: 'D is for Digital and Why It Matters'"
A Descent into Limbo
by Brian Kernighan

*
Video interview with Brian Kernighan for Princeton Startup TV
(2012-03-20)
The Setup, Brian Kernighan


A collection of Kernighan's opinion columns from The Daily Princetonian, 2006–2013. {{DEFAULTSORT:Kernighan, Brian 1942 births Living people Canadian computer scientists Canadian computer programmers Computer programmers Inferno (operating system) people Canadian people of Irish descent Writers from Toronto Plan 9 people Princeton University School of Engineering and Applied Science alumni Princeton University faculty Programming language designers Scientists at Bell Labs Canadian technology writers University of Toronto alumni Unix people C (programming language) Members of the United States National Academy of Engineering Berkman Fellows Scientists from Toronto