ケン・トンプソン

ケネス・レイン・トンプソンはコンピュータサイエンティストのパイオニアでアメリカ人。ハッカー仲間からはケン・トンプソン  と呼ばれている。長年ベル研究所に勤め、オリジナルのUnixを開発した。またC言語の前身であるB言語を開発し、Plan 9の初期の開発者の1人だった。2006年からGoogleで勤務しており、Goを共同開発した。

他の主な業績として、正規表現、テキストエディタQEDとed、UTF-8コードの定義に加え、チェスの終盤定跡データベースやチェスマシンBelleの開発などコンピュータチェスへの貢献がある。1983年に彼の長年の同僚であるデニス・リッチーと共にチューリング賞を受賞した。

1. 青少年時代
--------

アメリカ合衆国のルイジアナ州ニューオーリンズで生まれる。15人の有名プログラマのインタビューをまとめた //Coders at Work// で、インタビュアーの Peter Seibel から「どうやってプログラムを学んだのですか?」と質問され、「私はいつも論理に魅了されていて、小学生のころ既に二進法などの算数問題を解いていた。それは単に私が魅了されていたからだ」と答えたSeibel。

カリフォルニア大学バークレー校で電子工学および計算機科学の学士号  と修士号  を取得。修士課程の指導教官はエルウィン・バーレカンプ。

2. 職歴と研究
--------

大学卒業後の1966年にAT&Tのベル研究所へ就職。1960年代当時、べル研ではトンプソンとデニス・リッチーがMulticsシステムの計画に参加していた。トンプソンはMulticsの開発中にプログラミング言語のBonを開発した。またスペース・トラベルというビデオゲームも開発した。その後ベル研はMulticsから撤退。ゲームを遊び続けるため、トンプソンは古いPDP-7を発掘してスペース・トラベルを作り直した。このときトンプソンが開発したツールがUnixになった。PDP-7を使い、トンプソンとリッチーが主導するベル研のチームは、ラッド・カナディと共に、階層型ファイルシステム、プロセス、デバイスファイルの概念を発明し、コマンドライン、プロセス間通信を容易にするパイプ、複数の小さなユーティリティプログラムを開発した。 1970年にブライアン・カーニハンの提案で、MulticsからのダジャレであるUnixという名前になった。初期のUnixが完成すると、トンプソンはシステム開発向けの言語が必要だと考えるようになり、B言語を開発し、それを元にしてリッチーがC言語を開発した。

1960年代に正規表現を開発。CTSS上で動作するテキストエディタのQEDを開発し、文字列の検索に正規表現を使うことができた。QEDと、後に開発したUnixの標準エディタedは正規表現の普及に大きく貢献した。以降に開発されたほぼ全ての正規表現プログラムはトンプソンの表記法がベースとなっている。以前は理論言語学者など限られた間での専門的な記法であった正規表現は、コンピュータのユーザに身近な頻用されるものとなった。またマッチングを高速化するため、正規表現を非決定性有限オートマトンに変換する「トンプソンの構築アルゴリズム」を発明した。

2.1. 1970年代
-----------

トンプソンとリッチーは1970年代の間ずっとUnixを共同で開発していた。2人はResearch Unixの研究チームで精力的に活動しており、ダグラス・マキルロイは「ほとんど全てのコードにリッチーとトンプソンの名前が残されていると考えて間違いない」と後に書いている。トンプソンは2011年のインタビューで、Unixの初期バージョンは自分が開発したものであり、後にリッチーが応援を始め、開発を手伝ったと話している。

最初のバージョン3くらいまではUNIXを1人で作りました。デニスがエバンジェリストになりました。それからC言語の元になった高級言語で書き直しました。彼は主に言語とI/Oシステムを担当し、私はOSのそれ以外の部分を全部担当しました。PDP-11用でしたが、これは偶然にも大学で広く普及したコンピュータでした。トンプソンはUnixの開発にC言語を使うことで言語の熟成に貢献した。C言語はOSを書き直す最中で育ち、OSを書くのに最適な言語になったと後にトンプソンは語った。

1975年にトンプソンはベル研を休職し、母校のカリフォルニア大学バークレー校に登校し、Unixバージョン6をPDP-11/70にインストールする作業を手伝った。バークレー校のUnixは後にバークレーソフトウェアディストリビューションとして知られる独自のOSとしてメンテナンスされるようになった。

1976年の初めにトンプソンはカリフォルニア大学バークレー校電気工学部コンピューターサイエンス学科でバークレー・パスカルの初期バージョンを開発したは純粋な研究として開発を始めました。3人が集まり、C++が嫌いだということで意気投合しました。、3人とも言語の全ての機能について説明が求められるという考えでスタートしましたので、いかなる理由があっても言語にゴミを入れませんでした。<WtXmlEndTag />

2009年のインタビューによると、トンプソンは現在Linuxベースのオペレーティングシステムを使用しているSeibel。

3. 受賞歴
------

1980年 - 全米技術アカデミーフェロー
1983年 - チューリング賞。リッチーと共同受賞。「汎用オペレーティングシステム理論の発展への貢献と、特にUNIXオペレーティングシステムの実装に対して」。この時の受賞記念講演で述べたのが "Reflections on Trusting Trust"、後に //Thompson hack// と呼ばれるようになる、loginプログラムにバックドアを仕組むようなコンパイラを作るようコンパイラのバイナリを仕組み、その痕跡をコンパイラのソースからは消す、という驚異的な技巧の解説で、しかも実際にいくつかのシステムに仕込まれていたとする衝撃的なものであった。この講演だけで独立したコンピュータセキュリティに対する重要な指摘とされている。また、講演の本題に入る前に、自分が書いたプログラムの話をする枕として「私はプログラマです。フォーム1040に私の職業としてそう書いています。」と話している。
1990年 - IEEEハミングメダル。リッチーと共同受賞。「UNIXオペレーティングシステムとCプログラミング言語の開発に対して」。
1997年 - コンピュータ歴史博物館フェロー
1999年 - 98年度のアメリカ国家技術賞をリッチーと共同受賞。「情報技術の発展に多大な影響を与えたUNIXオペレーティングシステムとC言語の発明に対して。また、情報化時代におけるアメリカのリーダーシップを強固なものにした産業全体の成長をもたらした」。
1999年 - IEEE Tsutomu Kanai Award。「過去数十年に渡って分散システムの重要な基盤となったUNIXオペレーティングの開発に果たした役割に対して」。
2011年 - 日本国際賞。リッチーと共同受賞。「UNIXオペレーティングシステム開発における貢献に対して」。

4. プライベート
---------

ケン・トンプソンは既婚者で息子が1人いる。

5. 脚注
-----

5.1. 注釈
-------

5.2. 出典
-------

6. 関連項目
-------

オペレーティングシステム
C言語
プログラミング言語
デニス・リッチー

7. 外部リンク
--------

[1]
[2]
[3] 1983 Turing Award Lecture
[4] The Linux Information Project
Computer Chess Comes of Age: [5] [6]
Computer Chess Comes of Age: [7] [8]
[9] on optical character recognition