Brian Kernighan

From Vero - Wikipedia
(Redirected from Brian W. Kernighan)
Jump to navigation Jump to search

Template:Short description Template:Use dmy dates Template:Infobox scientist

Brian Wilson Kernighan (Template:IPAc-en;<ref>Template:Cite web</ref><ref>Template:Citation</ref> born 30 January 1942)<ref name="LOC"/> 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 (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").<ref name="LJ 2003">Template:Cite magazine</ref>

Kernighan authored many Unix programs, including ditroff. He is coauthor of the AWK and AMPL programming languages. 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 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 of computer science at Princeton University since 2000 and is the director of undergraduate studies in the department of computer science.<ref name="acm">Template:ACMPortal</ref><ref>Template:Cite web</ref><ref>Template:Cite web</ref> In 2015, he co-authored the book The Go Programming Language.

Early life and education

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

Kernighan was born in Toronto. He attended the University of Toronto between 1960 and 1964, earning his bachelor's degree in engineering physics.<ref name="LJ 2003" /> 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.<ref>Template:Cite web</ref><ref>Template:Cite book</ref>

Career and research

Kernighan has held a professorship in the department of computer science at Princeton since 2000.<ref>Template:Cite web</ref> Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors.<ref>Template:Cite web</ref><ref>Template:Cite journal</ref>

Kernighan was the software editor for Prentice Hall International. His "Software Tools" series spread the essence of "C/Unix thinking" with makeovers for BASICTemplate:Citation needed, 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.<ref>Template:Cite web</ref>

Kernighan coined the term "Unix" and helped popularize Thompson's Unix philosophy.<ref name="reader">Template:Cite tech report</ref> 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).<ref>Template:Cite web</ref> 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,<ref>Template:Cite web</ref> which became the iconic example we know today. Kernighan's original 1978 implementation of Template:Not typo was sold at The Algorithm Auction, the world's first auction of computer algorithms.<ref>Template:Cite web</ref>

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.<ref name=sigscse>Template:Cite book</ref>

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.<ref>Template:Cite web</ref><ref>Template:Cite web</ref>

In 2022, Kernighan stated that he was actively working on improvements to the AWK programming language, which he took part in creating in 1977.<ref>Template:Cite web</ref>

Books and reports

Programs

Publications

Template:Div col

  • 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)<ref>D is for Digital: What a well-informed person should know about computers and communications Template:ISBN</ref>
  • The Go Programming Language (2015) with Alan Donovan<ref>Brian Kernighan and Alan Donovan (2015) The Go Programming Language Template:ISBN</ref>
  • 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)<ref>UNIX: A History and a Memoir Template:ISBN</ref>

Template:Div col end

See also

References

Template:Reflist

Template:Wikiquote Template:Commons category

Template:Authority control