人物 :: PERSON
ケン・トンプソン
UNIX の最初の版を1969年に一人で書いた計算機科学者。B 言語の作者で、C 言語の前身を作った。1968年の CACM 論文で正規表現の実用的な探索アルゴリズムを示し、grep の系譜を作る。Rob Pike と Plan 9 を、また1992年に UTF-8 を設計した。1983年に Dennis Ritchie と共に ACM チューリング賞。2000年末に Bell 研究所を退職し、2006年から Google の Distinguished Engineer として Go 言語(2009年)を共同設計した。

プロフィール
- 生年
- 1943
- 存命
- 存命
- 在世
- 1943–
- 関連事象
- 04
- 名称
- ENKen ThompsonJAケン・トンプソン
ケン・トンプソン(Kenneth Lane Thompson、 1943年2月4日 ── )は、 1969年に Bell 研究所で UNIX の最初の版を書き、 B 言語を作り(C 言語 の前身)、 正規表現の実用的な探索アルゴリズムを1968年の CACM 論文で示し、 1983年に Dennis Ritchie と共に ACM チューリング賞を受賞した。 その後も Plan 9 と UTF-8 という土台を作り、 2006年に Google へ移って2009年には Rob Pike、 Robert Griesemer と共に Go 言語 を共同設計している。 半世紀にわたって、 オペレーティングシステム・プログラミング言語・文字符号化・ツールの四領域に痕跡を残した、 きわめて珍しい技術者である。
経歴
ルイジアナ州 New Orleans 生まれ。 父が海軍にいたため、 子供時代は米国各地を転々とした。 UC Berkeley で電気工学・計算機科学の学士(1965年)と修士(1966年)を取り、 修士取得後そのまま Bell 研究所 の Computing Sciences Research Center(ニュージャージー州 Murray Hill)に入所する。 在籍は2000年末までの34年間だった。
Bell 研究所を退いたあと Entrisphere 社にフェローとして在籍し、 2006年に Google へ Distinguished Engineer として移籍した。
| 項目 | 内容 |
|---|---|
| 生年月日 | 1943年2月4日(ルイジアナ州 New Orleans) |
| 学位 | UC Berkeley 学士 1965年 / 修士 1966年(電気工学・計算機科学) |
| Bell 研究所 | 1966年 ── 2000年末(Computing Sciences Research Center、 Murray Hill) |
| Entrisphere | Fellow |
| 2006年 ── Distinguished Engineer | |
| チューリング賞 | 1983年(Dennis Ritchie と共同) |
主な業績
1969年 UNIX
Bell 研究所が Multics(MIT・General Electric との共同開発で、 Bell 研究所も参加していた時分割 OS)から手を引いた直後の1969年8月、 トンプソンは Murray Hill にあった使われていない DEC PDP-7 の上で、 UNIX の最初の版を書いた。 妻の Bonnie が一ヶ月間留守にしていた間に、 カーネル・シェル・エディタ・アセンブラをそれぞれ一週間ずつで書いた、 というのが本人の語る経緯である。
Ritchie の回想によれば「UNIX」という名前を提案したのは Brian Kernighan で、 時期は「1970年に入ってからかなり経って」のこと。 Multics に対する「treacherous pun(意地の悪い駄洒落)」だったとされ、 UNICS(UNiplexed Information and Computing Service)という綴りも広く伝えられている。
このとき何が実装され、 何がまだ無かったのか(階層パス名も fork も無かった)は、 イベントの記事 に詳しい。
1969年 B 言語、 1972年 C への系譜
UNIX の最初の版はアセンブリで書かれていた。 トンプソンは BCPL(Cambridge 大学発の言語)を簡略化した型なしの言語 B を作り、 UNIX のカーネル以外の部分を書き直すために使った。 Ritchie が B に型を加えて C を作り、 1973年夏にカーネルが C で書き直される。 移植性は目的ではなく結果だったが、 UNIX を PDP-11 から VAX、 ワークステーション、 PC へと運べるようにしたのはこの一手である。
1968年 正規表現の探索アルゴリズム
トンプソンは QED エディタに正規表現を組み込み、 その実装法を1968年6月の Communications of the ACM に「Regular expression search algorithm」として発表した。 正規表現を NFA に変換し、 その状態を機械語の命令列としてその場で生成する ── いわゆる Thompson の構成法である。 のちの ed、 sed、 awk、 そして g/re/p(ed のコマンド。 grep の名前はここから来ている)まで、 UNIX のテキスト処理の語彙はこの論文に遡る。
1980年代 Belle と計算機チェス
Joseph Condon と共に、 専用ハードウェアのチェスマシン Belle を作った。 Belle は1980年に Linz で開かれた第3回世界コンピュータチェス選手権に優勝し、 ACM 北米コンピュータチェス選手権も1978・1980・1981・1982・1986年と5度制している。 ACM の記述によれば、 マスター級のレーティングを得た最初の計算機である。 Deep Blue(1997年) はこの系譜の先にある。
1984年「Reflections on Trusting Trust」
1983年のチューリング賞受賞講演(1984年8月の CACM に掲載)で、 トンプソンはコンパイラに仕込まれ、 再コンパイルを生き延びるバックドアを構成してみせた。 論文の題辞は次の一文である。
To what extent should one trust a statement that a program is free of Trojan horses? Perhaps it is more important to trust the people who wrote the software.
(プログラムにトロイの木馬が無いという言明を、 どこまで信じてよいのか。 おそらくより重要なのは、 そのソフトウェアを書いた人間を信頼できるかどうかだ)
結論の節「MORAL」の一行はさらに短い ──「You can't trust code that you did not totally create yourself.(自分で完全に作ったのでないコードは信頼できない)」。 サプライチェーンセキュリティの古典として、 40年後の2026年現在も読まれ続けている。
1980年代後半 Plan 9、 1992年 UTF-8
Bell 研究所での後半、 トンプソンは Rob Pike らと分散オペレーティングシステム Plan 9 from Bell Labs を作った。 「すべてはファイル」という UNIX の原則を、 ネットワーク越しの資源にまで徹底させた設計である。 その過程で1992年に Pike と設計したのが UTF-8 ── ASCII と後方互換で、 可変長で、 自己同期する Unicode の符号化方式であり、 現在の Web で圧倒的多数を占める文字符号化になった。
2009年 Go 言語
Google 入社後、 トンプソンは Rob Pike(旧 Bell 研究所の同僚)、 Robert Griesemer(Google の V8 JavaScript エンジンや Java HotSpot VM に携わった技術者)と新言語の設計に着手する。 Pike 自身の記述では Go の着想は2007年後半で、 発端については「When builds are slow, there is time to think. The origin myth for Go states that it was during one of those 45 minute builds that Go was conceived.(ビルドが遅ければ考える時間ができる。 Go の起源譚では、 45分かかるビルドの最中に Go は着想されたことになっている)」と、 あくまで origin myth として書いている。
2009年11月に公開された Go は、 goroutine による軽量並行、 チャネルによる通信、 インタフェース型による構造的な型付け、 そして単純な文法と高速なコンパイルを設計の柱に置く。 Docker(2013年)、 Kubernetes(2014年)、 Terraform をはじめ、 クラウドネイティブのツール群の多くが Go で書かれている。
受賞・栄誉
| 年 | 賞 |
|---|---|
| 1980年 | 全米工学アカデミー(NAE)会員に選出 |
| 1983年 | ACM チューリング賞(Dennis Ritchie と共同) |
| 1983年 | ACM Software System Award(UNIX に対して、 Ritchie と共同) |
| 1983年 | IEEE Emanuel R. Piore Award |
| 1990年 | IEEE Richard W. Hamming Medal |
| 1994年 | IEEE Computer Pioneer Award |
| 1997年 | Computer History Museum フェロー |
| 1998年 | 米国国家技術賞(Clinton 大統領より、 Ritchie と共同) |
| 1999年 | IEEE Tsutomu Kanai Award(初代受賞者) |
| 2011年 | 日本国際賞(情報通信分野) |
チューリング賞の授賞理由は「With Dennis M. Ritchie, for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system.」である。
人物像と影響
トンプソンは公的露出を極力避ける人物で、 講演もインタビューも少ない。 Ritchie は1969年当時の共同作業をこう書いている ──「It began in 1969 when Ken Thompson discovered a little-used PDP-7 computer and set out to fashion a computing environment that he liked. His work soon attracted me; I joined in the enterprise, though most of the ideas, and most of the work for that matter, were his.」
その遺産は2026年現在、 四つの層で動いている。 UNIX 系統 ── Linux カーネル が Android、 Chromebook、 ほぼ全てのクラウドサーバを動かす。 C 系統 ── B から C へ、 そしてその子孫言語群へ。 UTF-8 ── Web のテキストのほぼ全て。 Go 系統 ── Docker や Kubernetes を通じたクラウド基盤。
OS をひとつ書いた、 あるいは広く使われる言語をひとつ作った、 というだけでも計算機史に名前が残る。 トンプソンはそれを40年を隔てて二度、 異なる雇用主のもとで実行した。
関連する出来事
出典
最終更新: