Ken Thompson

From Wikipedia, the free encyclopedia
  (Redirected from Ken Thompson (programmer))
Jump to: navigation, search
For other people named Ken Thompson, see Ken Thompson (disambiguation).
Kenneth Thompson
Ken n dennis.jpg
Thompson (left) with Dennis Ritchie.
Born (1943-02-04) February 4, 1943 (age 71)
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.


Ken Thompson (sitting) and Dennis Ritchie working together at a PDP-11

Thompson was born in New Orleans. He 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.[2]

In the 1960s, 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, and in 1969, Thompson and Ritchie became the principal creators of the Unix operating system. At this time, Thompson decided that Unix needed a system programming language and created B, a precursor to Ritchie's C.[3]

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, previously regarded mostly as a tool (or toy) for logicians.[citation needed] Regular expressions became pervasive in Unix text processing programs (such as grep) and in modern programming languages such as Perl; they are also a central concept in Rob Pike's sam text editor. Almost all programs that work with regular expressions today use some variant of Thompson's notation for them. He also invented Thompson's construction algorithm used for converting regular expression into nondeterministic finite automaton in order to make expression matching faster.[4]

Thompson also developed UTF-8 (a widely used character encoding scheme) together with Rob Pike in 1992.[5]

Along with Joseph Condon, he 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.

Thompson's style of programming has influenced others, notably in the terseness of his expressions and a preference for clear statements.[citation needed]

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.

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


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


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

Turing Award[edit]

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"[8] 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[edit]

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".[9]

Fellow of the Computer History Museum[edit]

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[edit]

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.[10][11]

Tsutomu Kanai Award[edit]

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."[12]

Japan Prize[edit]

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


  1. ^ "ken". The Jargon File (version 4.4.7). 
  2. ^ "Thesis Students". Elwyn Berlekamp's Home Page. University of California, Berkeley Department of Mathematics. 
  3. ^ Dennis M. Ritchie. "The Development of the C Language". Bell Labs/Lucent Technologies. 
  4. ^
  5. ^ Pike, Rob (April 30, 2003). "UTF-8 history". 
  6. ^ "Dr. Ken Thompson". National Academy of Engineering. 
  7. ^ Peter Seibel, 2009, Coders at Work, ISBN 978-1-4302-1948-4
  8. ^ Thompson, Ken. "Reflections on Trusting Trust". 
  9. ^ "IEEE Richard W. Hamming Medal Recipients". IEEE. Retrieved May 29, 2011. 
  10. ^ "Ritchie and Thompson Get National Medal of Technology". Bell Labs. December 8, 1998. 
  11. ^ "Ritchie and Thompson Receive National Medal of Technology from President Clinton". Bell Labs. April 27, 1999. 
  12. ^ "Ken Thompson Receives Kanai Award for Impact of UNIX System". Bell Labs. March 25, 1999. 
  13. ^ Evangelista, Benny (January 25, 2011). "Ken Thompson, Dennis Ritchie win Japan Prize". The San Francisco Chronicle. 

External links[edit]