Ken Thompson
American computer scientist who created Unix and co-developed Go.
Kenneth Lane Thompson, born February 4, 1943, is a pioneering American computer scientist. He spent most of his career at Bell Labs, where he created the original Unix operating system. He also developed the B programming language, which directly led to the C language, and helped build the Plan 9 operating system. His other major contributions include advancing regular expressions, designing the early text editors QED and ed, defining the UTF-8 encoding, and working on computer chess—he built the chess machine Belle and created endgame tablebases. Since 2006, Thompson has been at Google, where he co-created the Go language. In 1983, he and longtime colleague Dennis Ritchie shared the Turing Award.
Thompson grew up in New Orleans, Louisiana. He once said he was drawn to logic from an early age, even solving arithmetic problems in binary for fun. He earned a bachelor’s degree in 1965 and a master’s in 1966, both in electrical engineering and computer sciences from the University of California, Berkeley, where his master’s thesis advisor was Elwyn Berlekamp.
He joined Bell Labs in 1966. In the 1960s, he and Ritchie worked on the Multics operating system, during which Thompson created the Bon programming language and a video game called Space Travel. When Bell Labs left the Multics project, Thompson wanted to keep playing the game, so he found an old PDP-7 machine and rewrote Space Travel for it. The tools he built for that machine eventually became Unix. Working on the PDP-7 with a team that included Ritchie and Rudd Canaday, Thompson developed a hierarchical file system, the concepts of processes and device files, a command-line interpreter, pipes for inter-process communication, and small utility programs. In 1970, Brian Kernighan coined the name “Unix” as a pun on “Multics.” After early Unix work, Thompson decided the system needed a programming language and created B, which Ritchie later turned into C.
Also in the 1960s, Thompson began working on regular expressions. He had developed the CTSS version of the editor QED, which used regular expressions for text searching. QED and his later editor ed (Unix’s standard text editor) helped popularize regular expressions, which became widespread in Unix text tools. Nearly all modern programs that handle regular expressions use a variant of Thompson’s notation. He also invented Thompson’s construction algorithm, which converts regular expressions into nondeterministic finite automata for faster matching.
Throughout the 1970s, Thompson and Ritchie collaborated on Unix. Doug McIlroy later said that almost everything not otherwise attributed in Research Unix could be assumed to be their work. In a 2011 interview, Thompson recalled writing the first few versions of Unix alone, with Ritchie becoming an evangelist. When they rewrote Unix in a higher-level language that became C, Ritchie focused on the language and I/O, while Thompson handled the rest of the operating system. The PDP-11, which they targeted, turned out to be the machine that swept academia. Thompson noted that C grew up alongside the system rewrites, making it ideal for systems programming.
In 1975, Thompson took a sabbatical from Bell Labs to return to UC Berkeley, where he helped install Version 6 Unix on a PDP-11/70. That version later evolved into the Berkeley Software Distribution (BSD). In early 1976, he wrote the initial version of Berkeley Pascal at UC Berkeley’s computer science division, with later modifications by William Joy, Charles B. Haley, and faculty advisor Susan Graham.
Thompson wrote a chess program for the first Unix version in 1971. Later, with Joseph Condon, he built Belle, a world champion chess computer. He also created programs that fully enumerated chess endgames for all 4-, 5-, and 6-piece positions, enabling computers to make perfect moves once those positions were reached. With chess endgame expert John Roycroft, he distributed the first results on CD-ROM. In 2001, the ICGA Journal devoted nearly an entire issue to his chess contributions.
In 1983, Thompson and Ritchie received the Turing Award for their work on operating systems theory and the implementation of Unix. Thompson’s acceptance speech, “Reflections on Trusting Trust,” described a persistent compiler backdoor attack—now known as the Thompson hack or trusting trust attack—and is considered a landmark in computer security. In 2023, the backdoor’s annotated source code was published online.
- born
- February 4, 1943
- field
- Computer science
- nationality
- American
- known_for
- Unix operating system, B programming language, UTF-8 encoding, regular expressio
Verified Timeline
Lore & Background
Thompson was born in New Orleans, Louisiana. He received a Bachelor of Science in 1965 and a master's degree in 1966, both in electrical engineering and computer sciences, from the University of California, Berkeley, where his master's thesis advisor was Elwyn Berlekamp. He was hired by Bell Labs in 1966. 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. He also created a video game called Space Travel. Later, Bell Labs withdrew from the MULTICS project. In order to go on playing the game, Thompson found an old PDP-7 machine and rewrote Space Travel on it. Eventually, the tools developed by Thompson became 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, pipes for easy inter-process communication, and some small utility programs. In 1970, Brian Kernighan suggested the name "Unix", in a pun on the name "Multics". After initial work on Unix, Thompson decided that Unix needed a system programming language and created B, a precursor to Ritchie's C. 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 expressions into nondeterministic finite automata in order to make expression matching faster. Throughout the 1970s, Thompson and Ritchie collaborated on the Unix operating system; they were so prolific on Research Unix that Doug McIlroy later wrote, "The names of Ritchie and Thompson may safely be assumed to be attached to almost everything not otherwise attributed." 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: "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". 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). In early 1976, Thompson wrote the initial version of Berkeley Pascal at the Computer Science Division, Department of Electrical Engineering and Computer Science, UC Berkeley (with extensive modifications and additions following later that year by William Joy, Charles B. Haley and faculty advisor Susan Graham). Thompson wrote a chess-playing program called "chess" for the first version of Unix (1971). Later, along with Joseph Condon, Thompson created the hardware-assisted program 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. In 2001, the ICGA Journal devoted almost an entire issue to Thompson's various contributions to computer chess. 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", presented the persistent compiler 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. In 2023, the backdoor's annotated source code was published online. The end of the acceptance speech consisted of criticism of journalists' positive coverage of hackers, such as the 414s. A defence against the "Thompson hack" was developed by David A. Wheeler. It uses a technique called diverse double compilation to circumvent the hack by creating and comparing reproducible builds. 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." In 1992, Thompson developed the UTF-8 encoding scheme together with Rob Pike. UTF-8 has since become the dominant Unicode encoding form for the World Wide Web, accounting for more than 90% of all web pages in 2019. 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 with Inferno, along with other researchers at Bell Labs. In 1995, Thompson collaborated on music compression with Sean Dorward, based on original research work done by Jim Johnston, under the guidance of Joe Hall and Jont Allen. In late 2000, Thompson retired from Bell Labs. In 2004, he assisted in the implementation of Turochamp, a chess program Alan Turing devised in 1948, before any computers existed that could execute it. He worked at Entrisphere, Inc. as a fellow until 2006. As of 2024 he works at Google, first as a Distinguished Engineer and later as a Google Advisor. 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: "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."
Reader's Guide
Ken Thompson's significance lies in his foundational contributions to operating systems, programming languages, and text processing. As the primary designer and implementer of the original Unix operating system, he established concepts such as hierarchical file systems, processes, device files, pipes, and command-line interpreters that became standard in modern computing. His invention of the B programming language directly led to the development of C, which remains one of the most influential programming languages. Thompson's work on regular expressions, through the editors QED and ed, created the notation and algorithms (including Thompson's construction) used in virtually all modern regular expression engines. The UTF-8 encoding scheme he co-developed became the dominant text encoding on the World Wide Web. His computer chess contributions, including the Belle machine and endgame tablebases, advanced artificial intelligence and game theory. The Turing Award he received with Dennis Ritchie recognized their development of generic operating systems theory and the implementation of Unix. His later co-creation of the Go language at Google reflects his continued influence on systems programming. Thompson's career exemplifies the integration of theoretical insight with practical system building.
Did You Know?
- Thompson created a video game called Space Travel in the 1960s, and after Bell Labs withdrew from Multics, he rewrote it on an old PDP-7 machine, which eventually led to the creation of Unix.
- In his 1983 Turing Award acceptance speech, Thompson presented a compiler backdoor attack now known as the Thompson hack or trusting trust attack, which is considered a seminal computer security work.
- Thompson developed the UTF-8 encoding scheme with Rob Pike in 1992, and by 2019 it accounted for more than 90% of all web pages.
- He wrote a chess-playing program for the first version of Unix in 1971, and later co-created Belle, a world champion chess computer, with Joseph Condon.
- Thompson tested early versions of C++ for Bjarne Stroustrup but later refused to work in it, calling it 'a garbage heap of ideas that are mutually exclusive'.
Frequently Asked Questions
Who is Ken Thompson?
Kenneth Lane Thompson is an American computer scientist born in 1943, best known as the primary architect of the Unix operating system. He spent the bulk of his professional life at Bell Labs, where he shaped foundational tools in computing.
What is Ken Thompson most famous for?
Thompson is widely credited with creating Unix, inventing the B programming language (a direct precursor to C), and designing UTF-8 encoding. He also made lasting contributions to regular expressions, early text editors, and computer chess programs.
How did Ken Thompson create Unix?
Thompson developed Unix in the early 1970s at Bell Labs as a more practical and portable alternative to the earlier Multics operating system. He built much of it on his own before collaborating with Dennis Ritchie to refine the system and create the C language.
What is Ken Thompson's connection to the Go programming language?
Thompson co-designed the Go programming language at Google alongside Robert Griesemer and Rob Pike. Go was created to address performance and concurrency challenges that existing languages struggled with in large-scale distributed systems.
Why is Ken Thompson considered a pioneer in computer science?
His work on Unix laid the groundwork for modern operating systems, and his contributions to programming languages, text processing, and character encoding still underpin everyday computing. He received the Turing Award in 1983, cementing his status as one of the field's most influential figures.
More in Computer Scientists And Programmers 1-23
Related in Computer Scientists And Programmers
Links follow this subject's own source article.
Spotted an error? Know more?
This is a living reference — every entry is fact-audited, and reader corrections feed straight into our audit queue. Suggest an edit · See this site's audit record
