2

Brian Kernighan - Wikipedia

 2 years ago
source link: https://en.wikipedia.org/wiki/Brian_Kernighan
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Brian Kernighan

From Wikipedia, the free encyclopedia

Jump to navigation Jump to search

Brian Wilson Kernighan (/ˈkɜːrnɪhæn/;[6] born 1942)[1] 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").[7] 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 of Computer Science at Princeton University since 2000 and is the Director of Undergraduate Studies in the Department of Computer Science.[8][9][10] In 2015, he co-authored the book The Go Programming Language.

Early life and education[edit]

Kernighan was born in Toronto. He attended the University of Toronto between 1960 and 1964, earning his Bachelor's degree in engineering physics.[7] 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.[11][12]

Career and research[edit]

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.[13]

Kernighan coined the term "Unix" and helped popularize Thompson's Unix philosophy.[14] 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).[15] 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.[16]

In 1996, Kernighan taught CS50 which is the Harvard University introductory course in Computer Science.[5]

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.[17][18]

Other achievements during his career include:

Publications[edit]

  • 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) 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)[19]
  • The Go Programming Language (2015) with Alan Donovan[20]
  • 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)[21]

References[edit]

  1. ^ Jump up to: 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
  2. ^ "C" Programming Language: Brian Kernighan - Computerphile on YouTube
  3. ^ Kernighan, Brian Wilson (1969). Some Graph Partitioning Problems Related to Program Segmentation (PhD thesis). Princeton University. OCLC 39166855. ProQuest 302450661. (subscription required)
  4. ^ Mendez, Cordelia F. (2014). "This is CS50". thecrimson.com. The Harvard Crimson. Archived from the original on 2017-03-17.
  5. ^ Jump up to: 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.
  6. ^ Pike, Rob. "The History of Unix". YouTube. Retrieved 2 May 2020.
  7. ^ Jump up to: a b Dolya, Aleksey (29 July 2003). "Interview with Brian Kernighan". Linux Journal.
  8. ^ Brian Kernighan author profile page at the ACM Digital Library
  9. ^ "An Oral History of Unix". 2007-06-11. Archived from the original on 2007-06-11. Retrieved 2020-05-13.
  10. ^ "Brian Kernighan | Computer Science Department at Princeton University". www.cs.princeton.edu. Retrieved 2020-05-13.
  11. ^ "Brian Kernighan - The Mathematics Genealogy Project". www.genealogy.math.ndsu.nodak.edu. Retrieved 2020-05-13.
  12. ^ Kernighan, Brian W. (1969). Some graph partitioning problems related to program segmentation.
  13. ^ Budiu, Mihai (July 2000). "An Interview with Brian Kernighan".
  14. ^ Jump up to: 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.
  15. ^ "Brian Kernighan: Geek of the Week". Simple Talk. 2010-05-19. Retrieved 2019-02-05.
  16. ^ "Brian Kernighan – Hello World". Artsy. Artsy. Retrieved 18 June 2015.
  17. ^ "Dr. Brian W. Kernighan". NAE Website. Retrieved 2020-05-13.
  18. ^ "Brian W. Kernighan". American Academy of Arts & Sciences. Retrieved 2020-05-13.
  19. ^ D is for Digital: What a well-informed person should know about computers and communications ISBN 1463733895
  20. ^ Brian Kernighan and Alan Donovan (2015) The Go Programming Language ISBN 0134190440
  21. ^ UNIX: A History and a Memoir ISBN 1695978552

External links[edit]


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK