fbpx
Wikipedia

Brian Kernighan

Brian Wilson Kernighan (/ˈkɜːrnɪhæn/;[7] born January 30, 1942)[1] is a Canadian computer scientist.

Brian Kernighan
Brian Kernighan in 2012
Born
Brian Wilson Kernighan

(1942-01-30) January 30, 1942 (age 81)[1][2]
Toronto, Ontario, Canada
NationalityCanadian
CitizenshipCanada
Alma materUniversity of Toronto (BASc)
Princeton University (PhD)
Known for
Scientific career
FieldsComputer science
InstitutionsPrinceton University
ThesisSome Graph Partitioning Problems Related to Program Segmentation (1969)
Doctoral advisorPeter Weiner[4]
InfluencedDavid J. Malan[5][6]
Websitewww.cs.princeton.edu/~bwk/

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").[8] He authored many Unix programs, including ditroff. Kernighan 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.[9][10][11] 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.[8] 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.[12][13]

Career and research

Kernighan has held a professorship in the Department of Computer Science at Princeton since 2000.[14] Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors.[15][16]

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

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

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

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]

Books and reports

Algorithms

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


Programming Setup

Kernighan uses a 13-inch MacBook Air as his primary device. Along with this, from time to time, he uses an iMac in his office. He, most of the time, uses Sam as his text editor.[27]

See also

References

  1. ^ 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.
  2. ^ Lohr, Steve (31 October 2002). "To the Liberal Arts, He Adds Computer Science". The New York Times. Mr. Kernighan, 60, is a computer scientist
  3. ^ "C" Programming Language: Brian Kernighan - Computerphile on YouTube
  4. ^ Kernighan, Brian Wilson (1969). Some Graph Partitioning Problems Related to Program Segmentation (PhD thesis). Princeton University. OCLC 39166855. ProQuest 302450661. (subscription required)
  5. ^ Mendez, Cordelia F. (2014). . thecrimson.com. The Harvard Crimson. Archived from the original on 2017-03-17.
  6. ^ a b Malan, David J. (2010). "Reinventing CS50". Proceeding of SIGCSE '10 Proceedings of the 41st ACM Technical Symposium on Computer Science Education: 152–156. doi:10.1145/1734263.1734316. ISBN 9781450300063.
  7. ^ Pike, Rob. "The History of Unix". YouTube. Archived from the original on 2021-11-23. Retrieved 2 May 2020.
  8. ^ a b Dolya, Aleksey (29 July 2003). "Interview with Brian Kernighan". Linux Journal.
  9. ^ Brian Kernighan author profile page at the ACM Digital Library
  10. ^ . 2007-06-11. Archived from the original on 2007-06-11. Retrieved 2020-05-13.
  11. ^ "Brian Kernighan | Computer Science Department at Princeton University". www.cs.princeton.edu. Retrieved 2020-05-13.
  12. ^ "Brian Kernighan - The Mathematics Genealogy Project". www.genealogy.math.ndsu.nodak.edu. Retrieved 2020-05-13.
  13. ^ Kernighan, Brian W. (1969). Some graph partitioning problems related to program segmentation.
  14. ^ "Brian Kernighan | Computer Science Department at Princeton University".
  15. ^ 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.
  16. ^ Kernighan, Brian. "COS 109: Computers in our world" (PDF). Princeton Education. (PDF) from the original on 2017-03-25.
  17. ^ Budiu, Mihai (July 2000). "An Interview with Brian Kernighan".
  18. ^ 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.
  19. ^ "Brian Kernighan: Geek of the Week". Simple Talk. 2010-05-19. Retrieved 2019-02-05.
  20. ^ "THE PROGRAMMING LANGUAGE B". Bell Laboratories. 16 October 2021. from the original on 2015-06-11.
  21. ^ "Brian Kernighan – Hello World". Artsy. Artsy. Retrieved 18 June 2015.
  22. ^ "Dr. Brian W. Kernighan". NAE Website. Retrieved 2020-05-13.
  23. ^ "Brian W. Kernighan". American Academy of Arts & Sciences. Retrieved 2020-05-13.
  24. ^ D is for Digital: What a well-informed person should know about computers and communications ISBN 1463733895
  25. ^ Brian Kernighan and Alan Donovan (2015) The Go Programming Language ISBN 0134190440
  26. ^ UNIX: A History and a Memoir ISBN 1695978552
  27. ^ "Brian Kernighan's Programming Setup". YouTube. Lex Fridman.

External links

  • Brian Kernighan's home page at Bell Labs
  • Lex Fridman Podcast #109: Brian Kernighan - UNIX, C, AWK, AMPL, and Go Programming
  • "Why Pascal is Not My Favorite Programming Language" — By Brian Kernighan, AT&T Bell Labs, 2 April 1981
  •  — on "Harmony at Work Blog", October 2009.
  • An Interview with Brian Kernighan — By Mihai Budiu, for PC Report Romania, August 2000
  • . Archived from the original on 2009-04-28. Retrieved 2016-03-31. – Interview by. Archived from the original on 2009-05-28. Retrieved 2016-03-31.
  • Video — TechNetCast At Bell Labs: Dennis Ritchie and Brian Kernighan (1999-05-14)
  • Video (Princeton University, September 7, 2003) — "Assembly for the Class of 2007: 'D is for Digital and Why It Matters'"
  • A Descent into Limbo by Brian Kernighan
  • Works by Brian Kernighan at Open Library
  • (2012-03-20)

brian, kernighan, brian, wilson, kernighan, ɜːr, born, january, 1942, canadian, computer, scientist, 2012bornbrian, wilson, kernighan, 1942, january, 1942, toronto, ontario, canadanationalitycanadiancitizenshipcanadaalma, materuniversity, toronto, basc, prince. Brian Wilson Kernighan ˈ k ɜːr n ɪ h ae n 7 born January 30 1942 1 is a Canadian computer scientist Brian KernighanBrian Kernighan in 2012BornBrian Wilson Kernighan 1942 01 30 January 30 1942 age 81 1 2 Toronto Ontario CanadaNationalityCanadianCitizenshipCanadaAlma materUniversity of Toronto BASc Princeton University PhD Known forUnix AWK A Mathematical Programming Language AMPL Kernighan Lin algorithm Lin Kernighan heuristic The C Programming Language book 3 Scientific careerFieldsComputer scienceInstitutionsPrinceton UniversityThesisSome Graph Partitioning Problems Related to Program Segmentation 1969 Doctoral advisorPeter Weiner 4 InfluencedDavid J Malan 5 6 Websitewww wbr cs wbr princeton wbr edu wbr bwk wbr 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 8 He authored many Unix programs including ditroff Kernighan is coauthor of the AWK and AMPL programming languages The K of K amp 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 9 10 11 In 2015 he co authored the book The Go Programming Language Contents 1 Early life and education 2 Career and research 2 1 Books and reports 2 2 Algorithms 3 Publications 4 Programming Setup 5 See also 6 References 7 External linksEarly 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 degree in engineering physics 8 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 12 13 Career and research EditKernighan has held a professorship in the Department of Computer Science at Princeton since 2000 14 Each fall he teaches a course called Computers in Our World which introduces the fundamentals of computing to non majors 15 16 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 17 Kernighan coined the term Unix and helped popularize Thompson s Unix philosophy 18 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 19 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 20 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 21 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 6 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 Books and reports Edit 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 The Unix Programming Environment a tutorial book with Rob Pike 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 amp T Computing Science Technical Report 100 Algorithms Edit 1972 The first documented Hello world program in Kernighan s A Tutorial Introduction to the Language B 1973 ditroff or device independent troff which allowed troff to be used with any device 1974 The eqn typesetting language for troff with Lorinda Cherry 18 1976 Ratfor 18 1977 The m4 macro processing language with Dennis Ritchie 1977 The AWK programming language with Alfred Aho and Peter J Weinberger and its book The AWK Programming Language 1985 The AMPL programming language 1988 The pic typesetting language for troff 18 Publications EditThe 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 24 The Go Programming Language 2015 with Alan Donovan 25 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 26 Programming Setup EditKernighan uses a 13 inch MacBook Air as his primary device Along with this from time to time he uses an iMac in his office He most of the time uses Sam as his text editor 27 See also EditList of pioneers in computer scienceReferences Edit 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 Computerphile on YouTube 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 156 doi 10 1145 1734263 1734316 ISBN 9781450300063 Pike Rob The History of Unix YouTube Archived from the original on 2021 11 23 Retrieved 2 May 2020 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 Artsy Retrieved 18 June 2015 Dr Brian W Kernighan NAE Website Retrieved 2020 05 13 Brian W Kernighan American Academy of Arts amp Sciences Retrieved 2020 05 13 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 Brian Kernighan s Programming Setup YouTube Lex Fridman External links Edit Wikiquote has quotations related to Brian Kernighan Wikimedia Commons has media related to Brian Kernighan Brian Kernighan s home page at Bell Labs Lex Fridman Podcast 109 Brian Kernighan UNIX C AWK AMPL and Go Programming Why Pascal is Not My Favorite Programming Language By Brian Kernighan AT amp T Bell Labs 2 April 1981 Leap In and Try Things Interview with Brian Kernighan on Harmony at Work Blog October 2009 An Interview with Brian Kernighan By Mihai Budiu for PC Report Romania August 2000 Transcript of an interview with Brian Kernighan Archived from the original on 2009 04 28 Retrieved 2016 03 31 Interview by Michael S Mahoney Archived from the original on 2009 05 28 Retrieved 2016 03 31 Video TechNetCast At Bell Labs Dennis Ritchie and Brian Kernighan 1999 05 14 Video Princeton University September 7 2003 Assembly for the Class of 2007 D is for Digital and Why It Matters A Descent into Limbo by Brian Kernighan Photos of Brian Kernighan Works by Brian Kernighan at Open Library Video interview with Brian Kernighan for Princeton Startup TV 2012 03 20 The Setup Brian Kernighan Retrieved from https en wikipedia org w index php title Brian Kernighan amp oldid 1146579711, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.