World Library  
Flag as Inappropriate
Email this Article

Ken Thompson

Article Id: WHEBN0023370128
Reproduction Date:

Title: Ken Thompson  
Author: World Heritage Encyclopedia
Language: English
Subject: Dennis Ritchie, History of Unix, Go (programming language), Unix, Unix philosophy
Publisher: World Heritage Encyclopedia

Ken Thompson

Kenneth Thompson
Thompson (left) with Dennis Ritchie.
Born (1943-02-04) February 4, 1943
New Orleans, Louisiana, U.S.A.
Fields Computer Science
Institutions Bell Labs
Entrisphere, Inc
Google Inc.
Alma mater University of California, Berkeley
Known for Unix
B (programming language)
Belle (chess machine)
Endgame tablebase
Notable awards IEEE Emanuel R. Piore Award (1982)
Turing Award (1983)
Computer Pioneer Award (1994)
Japan Prize (2011)
National Medal of Technology
Tsutomu Kanai Award

Kenneth "Ken" Thompson (born February 4, 1943), commonly referred to as ken in hacker circles,[1] is an American pioneer of computer science. Having worked at Bell Labs for most of his career, Thompson designed and implemented the original Unix operating system. He also invented the B programming language, the direct predecessor to the C programming language, and was one of the creators and early developers of the Plan 9 operating systems. Since 2006, Thompson works at Google, where he co-invented the Go programming language.

Other notable contributions included his work on regular expressions and early computer text editors QED and ed, the definition of the UTF-8 encoding, his work on computer chess that included creation of endgame tablebases and the chess machine Belle.


Early life

Thompson was born in New Orleans. When asked how he learned to program, Thompson stated, "I was always fascinated with logic and even in grade school I’d work on arithmetic problems in binary, stuff like that. Just because I was fascinated."[2]


DEC PDP-7, as was used for initial work on Unix

Thompson received a Bachelor of Science in 1965 and a master's degree in 1966, both in Electrical Engineering and Computer Science, from the University of California, Berkeley, where his master's thesis advisor was Elwyn Berlekamp.[3]

In the 1960s at Bell Labs, Thompson and Dennis Ritchie worked on the Multics operating system. While writing Multics, Thompson created the Bon programming language. The two left the Multics project when Bell Labs withdrew from it, but they used the experience from the project.

In 1969, Thompson and Ritchie became the principal creators of the Unix operating system. Working on a PDP-7, a team of Bell Labs researchers led by Thompson and Ritchie, and including Rudd Canaday, developed a hierarchical file system, the concepts of computer processes and device files, a command-line interpreter, and some small utility programs.[4] After initial work on Unix, Thompson decided that Unix needed a system programming language and created B, a precursor to Ritchie's C.[5]

In the 1960s, Thompson also began work on regular expressions. Thompson had developed the CTSS version of the editor QED, which included regular expressions for searching text. QED and Thompson's later editor ed (the standard text editor on Unix) contributed greatly to the eventual popularity of regular expressions, and regular expressions became pervasive in Unix text processing programs. Almost all programs that work with regular expressions today use some variant of Thompson's notation. He also invented Thompson's construction algorithm used for converting regular expression into nondeterministic finite automaton in order to make expression matching faster.[6]


Ken Thompson (sitting) and Dennis Ritchie working together at a PDP-11
Version 6 Unix running on the SIMH PDP-11 simulator, with "/usr/ken" still present

Throughout the 1970s, Thompson and Ritchie collaborated on the Unix operating system. In a 2011 interview, Thompson stated that the first versions of Unix were written by him, and that Ritchie began to advocate for the system and helped to develop it:[7]

I did the first of two or three versions of UNIX all alone. And Dennis became an evangelist. Then there was a rewrite in a higher-level language that would come to be called C. He worked mostly on the language and on the I/O system, and I worked on all the rest of the operating system. That was for the PDP-11, which was serendipitous, because that was the computer that took over the academic community.

Feedback from Thompson's Unix development was also instrumental in the development of the C programming language. Thompson would later say that the C language "grew up with one of the rewritings of the system and, as such, it became perfect for writing systems."[7]

In 1975, Thompson took a sabbatical from Bell Labs and went to his alma mater, UC Berkeley. There, he helped to install Version 6 Unix on a PDP-11/70. Unix at Berkeley would later become maintained as its own system, known as the Berkeley Software Distribution (BSD).

Along with Joseph Condon, Thompson created the hardware and software for Belle, a world champion chess computer. He also wrote programs for generating the complete enumeration of chess endings, known as endgame tablebases, for all 4, 5, and 6-piece endings, allowing chess-playing computer programs to make "perfect" moves once a position stored in them is reached. Later, with the help of chess endgame expert John Roycroft, Thompson distributed his first results on CD-ROM.


Plan 9 from Bell Labs, running the acme text editor, and the rc shell

Throughout the 1980s, Thompson and Ritchie continued revising Research Unix, which adopted a BSD codebase for the 8th, 9th, and 10th editions. In the mid-1980s, work began at Bell Labs on a new operating system as a replacement for Unix. Thompson was instrumental in the design and implementation of the Plan 9 from Bell Labs, a new operating system utilizing principles of Unix, but applying them more broadly to all major system facilities. Some programs that were part of later versions of Research Unix, such as mk and rc, were also incorporated into Plan 9.

Thompson tested early versions of the C++ programming language for Bjarne Stroustrup by writing programs in it, but later refused to work in C++ due to frequent incompatibilities between versions. In a 2009 interview, Thompson expressed a negative view of C++, stating, "It does a lot of things half well and it's just a garbage heap of ideas that are mutually exclusive."[8]


In 1992, Thompson developed the UTF-8 encoding scheme together with Rob Pike.[9] The UTF-8 encoding has become the dominant character encoding for the World Wide Web, accounting for more than half of all web pages.[10]

In the 1990s, work began on the Inferno operating system, another research operating system that was based around a portable virtual machine. Thompson and Ritchie continued their collaboration together with Inferno, along with other researchers at Bell Labs.


In late 2000, Thompson retired from Bell Labs. He worked at Entrisphere, Inc as a fellow until 2006 and now works at Google as a Distinguished Engineer. Recent work has included the co-design of the Go programming language. Referring to himself along with the other original authors of Go, he states:[11]

When the three of us [Thompson, Rob Pike, and Robert Griesemer] got started, it was pure research. The three of us got together and decided that we hated C++. [laughter] ... [Returning to Go,] we started off with the idea that all three of us had to be talked into every feature in the language, so there was no extraneous garbage put into the language for any reason.

According to a 2009 interview, Thompson now uses the Linux operating system.[12]


Thompson (left) and Ritchie (center) receiving the National Medal of Technology from President Clinton.

National Academy of Engineering

In 1980, Thompson was elected to the National Academy of Engineering for "designing UNIX, an operating system whose efficiency, breadth, power, and style have guided a generation's exploitation of minicomputers."[13]

Turing Award

In 1983, Thompson and Ritchie jointly received the Turing Award "for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system." His acceptance speech, "Reflections on Trusting Trust"[14] presented the backdoor attack now known as the Thompson hack or trusting trust attack, and is widely considered a seminal computer security work in its own right.

IEEE Richard W. Hamming Medal

In 1990, both Thompson and Dennis Ritchie received the IEEE Richard W. Hamming Medal from the Institute of Electrical and Electronics Engineers (IEEE), "for the origination of the UNIX operating system and the C programming language".[15]

Fellow of the Computer History Museum

In 1997, both Thompson and Ritchie were inducted as Fellows of the Computer History Museum for "the co-creation of the UNIX operating system, and for development of the C programming language."

National Medal of Technology

On April 27, 1999, Thompson and Ritchie jointly received the 1998 National Medal of Technology from President Bill Clinton for co-inventing the UNIX operating system and the C programming language which together have led to enormous advances in computer hardware, software, and networking systems and stimulated growth of an entire industry, thereby enhancing American leadership in the Information Age.[16][17]

Tsutomu Kanai Award

In 1999, the Institute of Electrical and Electronics Engineers chose Thompson to receive the first Tsutomu Kanai Award "for his role in creating the UNIX operating system, which for decades has been a key platform for distributed systems work."[18]

Japan Prize

In 2011 Ken Thompson, along with Dennis Ritchie, was awarded the Japan Prize for Information and Communications for the pioneering work in the development of Unix operating system.[19]

See also


  1. ^ "ken". The  
  2. ^ Seibel, Peter (2009). Coders At Work. p. 450. 
  3. ^ "Thesis Students". Elwyn Berlekamp's Home Page. University of California, Berkeley Department of Mathematics. 
  4. ^ Ritchie, Dennis M. "The Evolution of the Unix Time-sharing System". Retrieved 2009-11-29. 
  5. ^ Dennis M. Ritchie. "The Development of the C Language". Bell Labs/Lucent Technologies. 
  6. ^
  7. ^ a b "Dr. Dobb's: Interview with Ken Thompson". 2011-05-18. Retrieved 2014-11-10. 
  8. ^ Seibel, Peter (2009). Coders At Work. p. 475. 
  9. ^ Pike, Rob (April 30, 2003). "UTF-8 history". 
  10. ^  
  11. ^ Andrew Binstock (18 May 2011). "Dr. Dobb's: Interview with Ken Thompson". Retrieved 7 February 2014. 
  12. ^ Seibel, Peter (2009). Coders At Work. p. 479. 
  13. ^ "Dr. Ken Thompson". National Academy of Engineering. 
  14. ^ Thompson, Ken. "Reflections on Trusting Trust". 
  15. ^ "IEEE Richard W. Hamming Medal Recipients".  
  16. ^ "Ritchie and Thompson Get National Medal of Technology". Bell Labs. December 8, 1998. 
  17. ^ "Ritchie and Thompson Receive National Medal of Technology from President Clinton". Bell Labs. April 27, 1999. 
  18. ^ "Ken Thompson Receives Kanai Award for Impact of UNIX System". Bell Labs. March 25, 1999. 
  19. ^ Evangelista, Benny (January 25, 2011). "Ken Thompson, Dennis Ritchie win Japan Prize". The San Francisco Chronicle. 

External links

  • Ken Thompson Bell Labs page
  • Reflections on Trusting Trust 1983 Turing Award Lecture
  • Unix and Beyond: An Interview with Ken Thompson IEEE Computer Society
  • Ken Thompson: A Brief Introduction The Linux Information Project (LINFO)
  • Computer Chess Comes of Age: Photos Computer History Museum
  • Computer Chess Comes of Age: Video of Interview with Ken Thompson Computer History Museum
  • Reading Chess paper by HS Baird and Ken Thompson on optical character recognition
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from World eBook Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.