Brian Kernighan: Difference between revisions

From Wikipedia
Jump to navigation Jump to search
imported>Bruce1ee
m fixed lint errors – missing end tag
 
imported>RapidDweller
 
Line 1: Line 1:
{{Short description|Canadian computer scientist}}
{{Short description|Canadian computer scientist (born 1942)}}
{{Use dmy dates|date=October 2025}}
{{Infobox scientist
{{Infobox scientist
| name              = Brian Kernighan
| name              = Brian Kernighan
Line 6: Line 7:
| image_size        =  
| image_size        =  
| caption          = Brian Kernighan presenting at Vintage Computer Festival East in April 2025
| caption          = Brian Kernighan presenting at Vintage Computer Festival East in April 2025
| birth_date        = {{Birth date and age|1942|1|30}}<ref name="LOC">{{cite web |author=The Library of Congress|title=Kernighan, Brian W. - LC Linked Data Service: Authorities and Vocabularies {{!}} Library of Congress, from LC Linked Data Service: Authorities and Vocabularies (Library of Congress) |url=https://id.loc.gov/authorities/names/n50044563.html |website=id.loc.gov |access-date=3 March 2023}}</ref><ref name="NYT 2002">{{cite news | title = To the Liberal Arts, He Adds Computer Science | url = https://www.nytimes.com/2002/10/31/technology/to-the-liberal-arts-he-adds-computer-science.html?pagewanted=all | work = [[The New York Times]] | first = Steve | last = Lohr | date = 31 October 2002 | quote = Mr. Kernighan, 60, is a computer scientist}}</ref>
| birth_date        = {{Birth date and age|1942|1|30|df=yes}}<ref name="LOC">{{cite web |author=The Library of Congress|title=Kernighan, Brian W. - LC Linked Data Service: Authorities and Vocabularies {{!}} Library of Congress, from LC Linked Data Service: Authorities and Vocabularies (Library of Congress) |url=https://id.loc.gov/authorities/names/n50044563.html |website=id.loc.gov |access-date=3 March 2023}}</ref><ref name="NYT 2002">{{cite news | title = To the Liberal Arts, He Adds Computer Science | url = https://www.nytimes.com/2002/10/31/technology/to-the-liberal-arts-he-adds-computer-science.html?pagewanted=all | work = [[The New York Times]] | first = Steve | last = Lohr | date = 31 October 2002 | quote = Mr. Kernighan, 60, is a computer scientist}}</ref>
| birth_place      = [[Toronto]], [[Ontario]], Canada
| birth_place      = [[Toronto]], [[Ontario]], Canada
| residence        =  
| residence        =  
| citizenship      = Canada
| citizenship      = Canada
| nationality      = Canadian
| field            = [[Computer science]]
| field            = [[Computer science]]
| work_institution  = [[Princeton University]]
| work_institution  = [[Princeton University]]
Line 30: Line 30:
}}
}}


'''Brian Wilson Kernighan''' ({{IPAc-en|ˈ|k|ɜːr|n|ɪ|h|æ|n}};<ref>{{cite web |last1=Pike |first1=Rob |title=The History of Unix |url=https://www.youtube.com/watch?v=_2NI6t2r_Hs&t=36m55s | archive-url=https://ghostarchive.org/varchive/youtube/20211123/_2NI6t2r_Hs| archive-date=2021-11-23 | url-status=live|website=YouTube |date=7 November 2018 |access-date=2 May 2020}}{{cbignore}}</ref><ref>{{Citation |title=Nerd Talk - Doug McIlroy & Brian Kernighan | date=22 October 2021 |url=https://www.youtube.com/watch?v=Xe5ffO6Ouwg&t=18 |access-date=2023-12-16 |language=en}}</ref> born January 30, 1942)<ref name="LOC"/> is a Canadian [[computer scientist]].
'''Brian Wilson Kernighan''' ({{IPAc-en|ˈ|k|ɜːr|n|ɪ|h|æ|n}};<ref>{{cite web |title=Brian Kernighan Trims His Beard in First CS50 Lecture in 1996 |url=https://www.youtube.com/watch?v=6Ba1XFVy7qw&t=27s |website=YouTube |date=2024-11-13 |access-date=2025-10-18}}</ref><ref>{{Citation |title=Nerd Talk - Doug McIlroy & Brian Kernighan | date=22 October 2021 |url=https://www.youtube.com/watch?v=Xe5ffO6Ouwg&t=18 |access-date=2023-12-16 |language=en}}</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)|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">{{cite magazine|url=http://www.linuxjournal.com/article/7035|title=Interview with Brian Kernighan|last=Dolya|first=Aleksey|date=29 July 2003|magazine=[[Linux Journal]]}}</ref>
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)|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">{{cite magazine|url=http://www.linuxjournal.com/article/7035|title=Interview with Brian Kernighan|last=Dolya|first=Aleksey|date=29 July 2003|magazine=[[Linux Journal]]}}</ref>


Line 46: Line 46:
Kernighan has held a professorship in the department of computer science at Princeton since 2000.<ref>{{Cite web|url=https://www.cs.princeton.edu/people/profile/bwk|title = Brian Kernighan &#124; Computer Science Department at Princeton University}}</ref> Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors.<ref>{{Cite web |last=Kernighan |first=Brian |title=COS 109, Fall 2021: Home Page |url=https://www.cs.princeton.edu/courses/archive/fall21/cos109/ |access-date=2022-08-23 |website=www.cs.princeton.edu |quote=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.}}</ref><ref>{{Cite journal |last=Kernighan |first=Brian |title=COS 109: Computers in our world |url=https://www.cs.princeton.edu/courses/archive/fall14/cos109/01intro.pdf |archive-url=https://web.archive.org/web/20170325053126/http://www.cs.princeton.edu/courses/archive/fall14/cos109/01intro.pdf |archive-date=2017-03-25 |url-status=live |journal=Princeton Education}}</ref>
Kernighan has held a professorship in the department of computer science at Princeton since 2000.<ref>{{Cite web|url=https://www.cs.princeton.edu/people/profile/bwk|title = Brian Kernighan &#124; Computer Science Department at Princeton University}}</ref> Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors.<ref>{{Cite web |last=Kernighan |first=Brian |title=COS 109, Fall 2021: Home Page |url=https://www.cs.princeton.edu/courses/archive/fall21/cos109/ |access-date=2022-08-23 |website=www.cs.princeton.edu |quote=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.}}</ref><ref>{{Cite journal |last=Kernighan |first=Brian |title=COS 109: Computers in our world |url=https://www.cs.princeton.edu/courses/archive/fall14/cos109/01intro.pdf |archive-url=https://web.archive.org/web/20170325053126/http://www.cs.princeton.edu/courses/archive/fall14/cos109/01intro.pdf |archive-date=2017-03-25 |url-status=live |journal=Princeton Education}}</ref>


Kernighan was the software editor for [[Prentice Hall|Prentice Hall International]]. His "Software Tools" series spread the essence of "C/Unix thinking" with makeovers for [[BASIC]], [[Fortran|FORTRAN]], and [[Pascal (programming language)|Pascal]], and most notably his "[[Ratfor]]" (rational FORTRAN) was put in the [[public domain]].
Kernighan was the software editor for [[Prentice Hall|Prentice Hall International]]. His "Software Tools" series spread the essence of "C/Unix thinking" with makeovers for [[BASIC]]{{Citation needed|date=August 2025}}, [[Fortran|FORTRAN]], and [[Pascal (programming language)|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>{{cite web |url=http://www-2.cs.cmu.edu/~mihaib/kernighan-interview/index.html |title=An Interview with Brian Kernighan |first=Mihai |last=Budiu |date=July 2000}}</ref>
He has said that if stranded on an island with only one programming language it would have to be C.<ref>{{cite web |url=http://www-2.cs.cmu.edu/~mihaib/kernighan-interview/index.html |title=An Interview with Brian Kernighan |first=Mihai |last=Budiu |date=July 2000}}</ref>


Kernighan coined the term "Unix" and helped popularize Thompson's [[Unix philosophy]].<ref name="reader">{{cite tech report |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://www.cs.dartmouth.edu/~doug/reader.pdf |archive-date=2022-10-09 |url-status=live |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs}}</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>{{Cite web|url=https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/brian-kernighan-geek-of-the-week/|title=Brian Kernighan: Geek of the Week|date=2010-05-19|website=Simple Talk|language=en-US|access-date=2019-02-05}}</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.
Kernighan coined the term "Unix" and helped popularize Thompson's [[Unix philosophy]].<ref name="reader">{{cite tech report |first1=M. D. |last1=McIlroy |author-link1=Doug McIlroy |year=1987 |url=http://www.cs.dartmouth.edu/~doug/reader.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://www.cs.dartmouth.edu/~doug/reader.pdf |archive-date=2022-10-09 |url-status=live |title=A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 |series=CSTR |number=139 |institution=Bell Labs}}</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>{{Cite web|last1=Morris |first1=Richard |url=https://www.red-gate.com/simple-talk/opinion/geek-of-the-week/brian-kernighan-geek-of-the-week/|title=Brian Kernighan: Geek of the Week|date=2010-05-19|website=Simple Talk|language=en-US|access-date=2019-02-05}}</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)|B programming language]],<ref>{{cite web|date=16 October 2021|title=THE PROGRAMMING LANGUAGE B|url=https://www.bell-labs.com/usr/dmr/www/bintro.html|url-status=live|publisher=Bell Laboratories|archive-url=https://web.archive.org/web/20150611114404/https://www.bell-labs.com/usr/dmr/www/bintro.html |archive-date=2015-06-11 }}</ref> which became the iconic example we know today. Kernighan's original 1978 implementation of {{not_typo|[["Hello, World!" program|hello, world!]]}} was sold at [[The Algorithm Auction]], the world's first auction of [[computer algorithm]]s.<ref>{{cite web|title=Brian Kernighan {{ndash}} Hello World|url=https://www.artsy.net/artwork/brian-kernighan-hello-world|website=Artsy|access-date=18 June 2015}}</ref>
In 1972, Kernighan described memory management in strings using "hello" and "world", in the [[B (programming language)|B programming language]],<ref>{{cite web|date=16 October 2021|title=THE PROGRAMMING LANGUAGE B|url=https://www.bell-labs.com/usr/dmr/www/bintro.html|url-status=live|publisher=Bell Laboratories|archive-url=https://web.archive.org/web/20150611114404/https://www.bell-labs.com/usr/dmr/www/bintro.html |archive-date=2015-06-11 }}</ref> which became the iconic example we know today. Kernighan's original 1978 implementation of {{not_typo|[["Hello, World!" program|hello, world!]]}} was sold at [[The Algorithm Auction]], the world's first auction of [[computer algorithm]]s.<ref>{{cite web|title=Brian Kernighan {{ndash}} Hello World|url=https://www.artsy.net/artwork/brian-kernighan-hello-world|website=Artsy|access-date=18 June 2015}}</ref>
Line 64: Line 64:
* ''Software Tools'', a book and set of tools for [[Ratfor]], co-created in part 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 (programming language)|Pascal]], with P. J. Plauger
* ''Software Tools in Pascal'', a book and set of tools for [[Pascal (programming language)|Pascal]], with P. J. Plauger
* ''[[The AWK Programming Language]]'', with [[Alfred V. Aho]], and [[Peter J. Weinberger]]
* ''[[The C Programming Language]]'', with C creator Dennis Ritchie, the first book on C
* ''[[The C Programming Language]]'', with C creator Dennis Ritchie, the first book on C
* ''[[The Practice of Programming]]'', with [[Rob Pike]]
* ''[[The Practice of Programming]]'', with [[Rob Pike]]
* ''[[The Unix Programming Environment]]'', a tutorial book, with Rob Pike
* ''[[The Unix Programming Environment]]'', a tutorial book, with Rob Pike
* [http://wiki.c2.com/?WhyPascalIsNotMyFavoriteProgrammingLanguage "Why Pascal is Not My Favorite Programming Language"], a popular criticism of [[Niklaus Wirth]]'s [[Pascal (programming language)|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)
* [http://wiki.c2.com/?WhyPascalIsNotMyFavoriteProgrammingLanguage "Why Pascal is Not My Favorite Programming Language"], a popular criticism of [[Niklaus Wirth]]'s [[Pascal (programming language)|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)<ref>[http://9p.io/cm/cs/cstr/100.ps.gz Original paper in Postscript]</ref>
* ''UNIX: A History and a Memoir'', a historical account of the development of [[Unix]] from the perspective of his role at [[Bell Labs]]
* ''UNIX: A History and a Memoir'', a historical account of the development of [[Unix]] from the perspective of his role at [[Bell Labs]]


Line 86: Line 87:
* ''[[The C Programming Language]]'' (1978, 1988) with [[Dennis M. Ritchie]]
* ''[[The C Programming Language]]'' (1978, 1988) with [[Dennis M. Ritchie]]
* ''Software Tools in Pascal'' (1981) with [[P.&nbsp;J. Plauger]]
* ''Software Tools in Pascal'' (1981) with [[P.&nbsp;J. Plauger]]
* ''The Unix Programming Environment'' (1984) with Rob Pike
* ''[[The Unix Programming Environment]]'' (1984) with Rob Pike
* ''[[The AWK Programming Language]]'' (1988, 2023) with Alfred Aho and Peter J. Weinberger
* ''[[The AWK Programming Language]]'' (1988, 2023) with Alfred Aho and Peter J. Weinberger
* ''[[The Practice of Programming]]'' (1999) with Rob Pike
* ''[[The Practice of Programming]]'' (1999) with Rob Pike
Line 107: Line 108:
{{Commons category|Brian Kernighan}}
{{Commons category|Brian Kernighan}}


*[http://9p.io/who/bwk/index.html Brian Kernighan's home page at Bell Labs]
*[http://9p.io/who/bwk/ Brian Kernighan's home page at Bell Labs]
*[https://www.youtube.com/watch?v=O9upVbGSBFo Lex Fridman Podcast #109: Brian Kernighan - UNIX, C, AWK, AMPL, and Go Programming]
*[https://www.youtube.com/watch?v=O9upVbGSBFo Lex Fridman Podcast #109: Brian Kernighan - UNIX, C, AWK, AMPL, and Go Programming]
*[http://www.lysator.liu.se/c/bwk-on-pascal.html "Why Pascal is Not My Favorite Programming Language"]&nbsp;— By Brian Kernighan, AT&T Bell Labs, 2 April 1981
*[http://www.lysator.liu.se/c/bwk-on-pascal.html "Why Pascal is Not My Favorite Programming Language"]&nbsp;— By Brian Kernighan, AT&T Bell Labs, 2 April 1981
Line 139: Line 140:
[[Category:Scientists at Bell Labs]]
[[Category:Scientists at Bell Labs]]
[[Category:Canadian technology writers]]
[[Category:Canadian technology writers]]
[[Category:University of Toronto alumni]]
[[Category:University of Toronto Faculty of Applied Science and Engineering alumni]]
[[Category:Unix people]]
[[Category:Unix people]]
[[Category:C (programming language)]]
[[Category:C (programming language)]]

Latest revision as of 04:07, 30 May 2026

Template:Infobox scientist

Brian Wilson Kernighan (/ˈkɜːrnɪhæn/;[1][2] born 30 January 1942)[3] 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").[4]

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

Early life and education

File:Brian Kernighan in 2012 at Bell Labs 3.jpg
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.[4] 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.[8][9]

Career and research

Kernighan has held a professorship in the department of computer science at Princeton since 2000.[10] Each fall he teaches a course called "Computers in Our World", which introduces the fundamentals of computing to non-majors.[11][12]

Kernighan was the software editor for Prentice Hall International. His "Software Tools" series spread the essence of "C/Unix thinking" with makeovers for BASIC[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.[13]

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

In 1972, Kernighan described memory management in strings using "hello" and "world", in the B programming language,[16] 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.[17]

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

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.[19][20]

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

Books and reports

Programs

Publications

See also

References

  1. "Brian Kernighan Trims His Beard in First CS50 Lecture in 1996". YouTube. 13 November 2024. Retrieved 18 October 2025.
  2. Nerd Talk - Doug McIlroy & Brian Kernighan, 22 October 2021, retrieved 16 December 2023
  3. Cite error: Invalid <ref> tag; no text was provided for refs named LOC
  4. 4.0 4.1 Dolya, Aleksey (29 July 2003). "Interview with Brian Kernighan". Linux Journal.
  5. Template:ACMPortal
  6. "An Oral History of Unix". 11 June 2007. Archived from the original on 11 June 2007. Retrieved 13 May 2020.
  7. "Brian Kernighan | Computer Science Department at Princeton University". www.cs.princeton.edu. Retrieved 13 May 2020.
  8. "Brian Kernighan - The Mathematics Genealogy Project". www.genealogy.math.ndsu.nodak.edu. Retrieved 13 May 2020.
  9. Kernighan, Brian W. (1969). Some graph partitioning problems related to program segmentation.
  10. "Brian Kernighan | Computer Science Department at Princeton University".
  11. Kernighan, Brian. "COS 109, Fall 2021: Home Page". www.cs.princeton.edu. Retrieved 23 August 2022. 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.
  12. Kernighan, Brian. "COS 109: Computers in our world" (PDF). Princeton Education. Archived (PDF) from the original on 25 March 2017.
  13. Budiu, Mihai (July 2000). "An Interview with Brian Kernighan".
  14. 14.0 14.1 14.2 14.3 Template:Cite tech report
  15. Morris, Richard (19 May 2010). "Brian Kernighan: Geek of the Week". Simple Talk. Retrieved 5 February 2019.
  16. "THE PROGRAMMING LANGUAGE B". Bell Laboratories. 16 October 2021. Archived from the original on 11 June 2015.
  17. "Brian Kernighan – Hello World". Artsy. Retrieved 18 June 2015.
  18. 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.
  19. "Dr. Brian W. Kernighan". NAE Website. Retrieved 13 May 2020.
  20. "Brian W. Kernighan". American Academy of Arts & Sciences. Retrieved 13 May 2020.
  21. "Unix legend, who owes us nothing, keeps fixing foundational AWK code". Ars Technica. 23 August 2022. Retrieved 12 May 2023.
  22. Original paper in Postscript
  23. D is for Digital: What a well-informed person should know about computers and communications ISBN 1463733895
  24. Brian Kernighan and Alan Donovan (2015) The Go Programming Language ISBN 0134190440
  25. UNIX: A History and a Memoir ISBN 1695978552