Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Early life and education  





2 Career and research  



2.1  Books and reports  





2.2  Algorithms  







3 Publications  





4 See also  





5 References  





6 External links  














Brian Kernighan






Afrikaans
العربية
Azərbaycanca
تۆرکجه

Беларуская
Català
Čeština
Deutsch
Español
Esperanto
فارسی
Français

Bahasa Indonesia
Italiano
עברית
Kurdî
Magyar
Македонски
Malagasy


مصرى
Nederlands

Norsk bokmål
Polski
Português
Русский
Slovenčina
Српски / srpski
Srpskohrvatski / српскохрватски
Suomi
Svenska
Türkçe
Українська
Tiếng Vit

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
Wikiquote
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Brian Kernighan
Brian Kernighan in 2012
Born

Brian Wilson Kernighan


(1942-01-30) January 30, 1942 (age 82)[2][3]
Toronto, Ontario, Canada
NationalityCanadian
CitizenshipCanada
Alma materUniversity of Toronto (BASc)
Princeton University (PhD)
Known for
  • AWK
  • A Mathematical Programming Language (AMPL)
  • Kernighan–Lin algorithm
  • Lin–Kernighan heuristic
  • The C Programming Language (book)[4]
  • Scientific career
    FieldsComputer science
    InstitutionsPrinceton University
    ThesisSome Graph Partitioning Problems Related to Program Segmentation (1969)
    Doctoral advisorPeter Weiner[1]
    Websitewww.cs.princeton.edu/~bwk/

    Brian Wilson Kernighan (/ˈkɜːrnɪhæn/;[5][6] born January 30, 1942)[2] 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]

    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.[8][9][10] In 2015, he co-authored the book The Go Programming Language.

    Early life and education[edit]

    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 degreeinengineering 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.[13] Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors.[14][15]

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

    Kernighan coined the term "Unix" and helped popularize Thompson's Unix philosophy.[17] 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).[18] 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,[19] 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.[20]

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

    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.[22][23]

    In 2022 Kernighan stated that he was actively working on improvements to the AWK programming language, which he took part in creating in 1977.[24]

    Books and reports[edit]

    Algorithms[edit]

    Publications[edit]

  • 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)[25]
  • The Go Programming Language (2015) with Alan Donovan[26]
  • 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)[27]
  • See also[edit]

    References[edit]

    1. ^ Kernighan, Brian Wilson (1969). Some Graph Partitioning Problems Related to Program Segmentation (PhD thesis). Princeton University. OCLC 39166855. ProQuest 302450661. (subscription required)
  • ^ a b 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.
  • ^ Lohr, Steve (31 October 2002). "To the Liberal Arts, He Adds Computer Science". The New York Times. Mr. Kernighan, 60, is a computer scientist
  • ^ "C" Programming Language: Brian Kernighan - ComputerphileonYouTube
  • ^ Pike, Rob (7 November 2018). "The History of Unix". YouTube. Archived from the original on 2021-11-23. Retrieved 2 May 2020.
  • ^ Nerd Talk - Doug McIlroy & Brian Kernighan, 22 October 2021, retrieved 2023-12-16
  • ^ a b Dolya, Aleksey (29 July 2003). "Interview with Brian Kernighan". Linux Journal.
  • ^ Brian Kernighan author profile page at the ACM Digital Library
  • ^ "An Oral History of Unix". 2007-06-11. Archived from the original on 2007-06-11. Retrieved 2020-05-13.
  • ^ "Brian Kernighan | Computer Science Department at Princeton University". www.cs.princeton.edu. Retrieved 2020-05-13.
  • ^ "Brian Kernighan - The Mathematics Genealogy Project". www.genealogy.math.ndsu.nodak.edu. Retrieved 2020-05-13.
  • ^ Kernighan, Brian W. (1969). Some graph partitioning problems related to program segmentation.
  • ^ "Brian Kernighan | Computer Science Department at Princeton University".
  • ^ 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.
  • ^ Kernighan, Brian. "COS 109: Computers in our world" (PDF). Princeton Education. Archived (PDF) from the original on 2017-03-25.
  • ^ 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. Archived (PDF) from the original on 2022-10-09.
  • ^ "Brian Kernighan: Geek of the Week". Simple Talk. 2010-05-19. Retrieved 2019-02-05.
  • ^ "THE PROGRAMMING LANGUAGE B". Bell Laboratories. 16 October 2021. Archived from the original on 2015-06-11.
  • ^ "Brian Kernighan – Hello World". Artsy. Retrieved 18 June 2015.
  • ^ 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.
  • ^ "Dr. Brian W. Kernighan". NAE Website. Retrieved 2020-05-13.
  • ^ "Brian W. Kernighan". American Academy of Arts & Sciences. Retrieved 2020-05-13.
  • ^ "Unix legend, who owes us nothing, keeps fixing foundational AWK code". Ars Technica. 23 August 2022. Retrieved 2023-05-12.
  • ^ D is for Digital: What a well-informed person should know about computers and communications ISBN 1463733895
  • ^ Brian Kernighan and Alan Donovan (2015) The Go Programming Language ISBN 0134190440
  • ^ UNIX: A History and a Memoir ISBN 1695978552
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Brian_Kernighan&oldid=1234737426"

    Categories: 
    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
    Hidden categories: 
    Pages containing links to subscription-only content
    Articles with short description
    Short description is different from Wikidata
    Articles with hCards
    Commons category link is on Wikidata
    Open Library ID different from Wikidata
    Articles with Open Library links
    Articles with FAST identifiers
    Articles with ISNI identifiers
    Articles with VIAF identifiers
    Articles with WorldCat Entities identifiers
    Articles with BIBSYS identifiers
    Articles with BNF identifiers
    Articles with BNFdata identifiers
    Articles with GND identifiers
    Articles with J9U identifiers
    Articles with KBR identifiers
    Articles with LCCN identifiers
    Articles with Libris identifiers
    Articles with LNB identifiers
    Articles with NDL identifiers
    Articles with NKC identifiers
    Articles with NLA identifiers
    Articles with NLG identifiers
    Articles with NLK identifiers
    Articles with NSK identifiers
    Articles with NTA identifiers
    Articles with PLWABN identifiers
    Articles with CINII identifiers
    Articles with DBLP identifiers
    Articles with MATHSN identifiers
    Articles with MGP identifiers
    Articles with ZBMATH identifiers
    Articles with SNAC-ID identifiers
    Articles with SUDOC identifiers
     



    This page was last edited on 15 July 2024, at 21:58 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki