Für Unix schrieb Thompson unter anderem die erste Shell, retronym Thompson-Shell „sh“, und den Zeileneditor ed. Er entwickelte die ProgrammierspracheB, einen Vorgänger der Sprache C, die noch heute zu den weltweit meistbenutzten Programmiersprachen gehört. Später entwickelten er und Rob Pike, ebenfalls an den Bell Labs, das Betriebssystem Plan 9.
Unter Beratung von John Roycroft entwickelte er Programme zur kompletten Analyse von Endspielen beim Schach. Die Ergebnisse dieser Arbeit stellte er auf vier Endspiel-CDs anderen zum Selbstkostenpreis zur Verfügung. Sie wurden später auch vertrieben. Mit Endspieldatenbanken kann ein Schachprogramm ein Endspiel (gegenwärtig mit höchstens sieben Figuren auf dem Brett) perfekt spielen, indem es auf die notwendige Information in der Datensammlung zugreift. In Gewinnstellungen findet es (je nach Zielstellung) den direkten Weg zum Matt oder zur Konvertierung in ein gewonnenes anderes Endspiel (durch Umwandlung oder Schlagen einer Figur); in Verluststellungen kann es den Verlust der Partie so weit wie möglich hinauszögern.
In seiner Rede zum Erhalt des Turing Awards beschrieb Thompson, wie er eine besondere Art von Backdoor entwickelte. Dabei handelte es sich um einen Compiler, der bei der Kompilierung eines Unix-Login-Programms unbemerkt eine Hintertür einbaut. Wenn es einmalig gelingt, den präparierten Compiler auf einem System zu installieren, ist es unerheblich ob die Backdoor-Codesequenz im Quellcode eines neu zu kompilierenden Compilers enthalten ist. Wenn der Compiler selbst auf diesem System kompiliert wird, erkennt er dies und fügt den Schadcode wieder ein. Auf diese Weise findet sich im Quellcode des Compilers keine Spur der Manipulation, trotzdem wird sie auch bei späteren Versionen des Compilers im Maschinencode erhalten bleiben.[4]
Thompson entwickelte in den späten 1970er- und frühen 1980er-Jahren zusammen mit seinem Kollegen Joe Condon (1935–2012) den SchachrechnerBelle, der 1980 die Computerschachweltmeisterschaft(WCCC) gewinnen konnte. Ferner entwickelte er 1992 zusammen mit Rob PikeUTF-8, ein weit verbreitetes System zum Kodieren von Unicode-Zeichen.[5]
Thompson verließ die Bell Labs am 1. Dezember 2000. Danach war er bis 2006 Partner bei Entrisphere, Inc. und arbeitet inzwischen als angesehener Entwickler bei Google, wo er zusammen mit Rob Pike und Robert Griesemer die Programmiersprache Go entwickelte.
Trivia
2019 wurde bekannt, dass Thompson 39 Jahre zuvor das Passwort p/q2-q4! benutzte. Es steht in der nicht mehr so gängigen beschreibenden Notation für die Damenbauerneröffnung d2–d4.[6][7]
Literatur
Peter Seibel: Coders at Work : Bedeutende Programmierer und ihre Erfolgsgeschichten. mitp, 2011, ISBN 978-3-8266-9103-4, Kapitel 12: Ken Thompson, S.407–435 (englisch: Coders at Work : Reflections on the Craft of Programming. 2009. Übersetzt von Reinhard Engel).
↑Matthias Kremp: 40 Jahre Unix. Spiegel Online, 18. August 2009, abgerufen am 25. Oktober 2011.
↑The famous PDP-7 comes to the rescue.Bell Labs, archiviert vom Original am 6. August 2007; abgerufen am 26. Oktober 2011 (englisch): „It did not take long, therefore, for Thompson to find a little-used PDP-7 computer with an excellent display terminal,“ Ritchie explained. „He and I rewrote 'Space Travel' to run on this machine.“