ケン・トンプソン | |
|---|---|
トンプソン、2019 | |
| 生まれる | ケネス・レーン・トンプソン 1943年2月4日 |
| 母校 | カリフォルニア大学バークレー校(BS、1965年、MS、1966年) |
| 知られている | |
| 受賞歴 |
|
| 科学者としてのキャリア | |
| フィールド | コンピュータサイエンス |
| 機関 | |
ケネス・レーン・トンプソン(1943年2月4日生まれ)は、アメリカのコンピュータサイエンスの先駆者です。トンプソンはキャリアのほとんどをベル研究所で過ごし、オリジナルのUnixオペレーティングシステムの設計と実装を行いました。また、 C言語の直接の前身であるBプログラミング言語を発明し、 Plan 9オペレーティングシステムの生みの親および初期開発者の一人でもありました。2006年以降、トンプソンはGoogleで働き、 Go言語の共同開発者となりました。
その他の注目すべき貢献としては、正規表現や初期のコンピュータテキストエディタであるQEDおよびedに関する研究、UTF-8エンコーディングの定義、エンドゲームテーブルベースやチェスマシンBelleの作成を含むコンピュータチェスに関する研究などがある。彼は長年の同僚であるデニス・リッチーとともに 1983 年にチューリング賞を受賞した。
幼少期と教育
トンプソンはルイジアナ州ニューオーリンズで生まれた。プログラミングをどうやって学んだのかと聞かれると、トンプソンは「私はいつも論理に興味があって、小学生の頃から二進法の算数問題を解いたりしていました。ただ興味があったから。」と答えた。[3]

トンプソンは1965年にカリフォルニア大学バークレー校で電気工学とコンピュータサイエンスの理学士号を取得し、1966年には修士号を取得した。同大学の修士論文指導教員はエルウィン・バーレカンプであった。[4]
キャリアと研究
トンプソンは1966年にベル研究所に雇われた。[5] 1960年代のベル研究所で、トンプソンとデニス・リッチーはMulticsオペレーティングシステムに取り組んだ。Multicsを書きながら、トンプソンはBonプログラミング言語を作成した。[6] [7]彼はまた、 Space Travelと呼ばれるビデオゲームを作成した。後に、ベル研究所はMULTICSプロジェクトから撤退した。[8]ゲームを続けるために、トンプソンは古いPDP-7マシンを見つけ、Space Travelを書き直した。[9]最終的に、トンプソンが開発したツールはUnix オペレーティングシステムになった。PDP -7に取り組んで、トンプソンとリッチーが率いるベル研究所の研究者チームは、ラッド・カナディを含め、階層型ファイルシステム、コンピュータプロセスとデバイスファイルの概念、コマンドラインインタープリタ、プロセス間通信を容易にするパイプ、およびいくつかの小さなユーティリティプログラムを開発した。 1970年、ブライアン・カーニガンは「Multics」をもじって「Unix」という名前を提案した。[10] Unixの初期作業の後、トンプソンはUnixにはシステムプログラミング言語が必要であると判断し、リッチーのCの前身であるBを作成した。[11]
1960年代にトンプソンは正規表現の研究も始めた。トンプソンは、テキスト検索用の正規表現を組み込んだエディタQEDのCTSSバージョンを開発していた。QEDとトンプソンの後のエディタed(Unixの標準テキストエディタ)は、正規表現の最終的な普及に大きく貢献し、正規表現はUnixのテキスト処理プログラムに広く普及した。今日、正規表現を扱うほぼすべてのプログラムは、トンプソンの表記法の何らかの変形を使用している。彼はまた、正規表現を非決定性有限オートマトンに変換して表現のマッチングを高速化するために使用されるトンプソンの構築アルゴリズムを発明した。 [12]
1970年代

1970年代を通じて、トンプソンとリッチーはUnixオペレーティングシステムで協力した。彼らはResearch Unixで非常に多くの成果を上げたため、ダグ・マキロイは後に「リッチーとトンプソンの名前は、他に帰属するもの以外はほとんどすべてに付けられていると考えて間違いない」と記した。 [13] 2011年のインタビューで、トンプソンはUnixの最初のバージョンは彼が書いたものであり、リッチーがこのシステムの支持者となり、開発に協力したと述べた。[14]
私は UNIX の 2、3 バージョンのうち最初のバージョンを一人で開発しました。そしてデニスは伝道師になりました。その後、C と呼ばれることになる高級言語で書き直されました。彼は主に言語と I/O システムに取り組み、私はオペレーティング システムの残りの部分すべてに取り組みました。それは PDP -11用で、これは幸運でした。なぜなら、それが学術界を席巻したコンピュータだったからです。
トンプソンのUnix開発からのフィードバックは、Cプログラミング言語の開発にも役立ちました。トンプソンは後に、C言語は「システムの書き換えの1つとともに成長し、その結果、システムの記述に最適なものになった」と述べています。[14]
1975年、トンプソンはベル研究所を休職し、母校であるカリフォルニア大学バークレー校に赴任した。そこで彼はPDP-11/70にバージョン6のUnixをインストールするのを手伝った。バークレー校のUnixは後にBerkeley Software Distribution (BSD)として知られる独自のシステムとして維持されるようになった。[15]
1976年初頭、トンプソンはカリフォルニア大学バークレー校の電気工学・コンピュータサイエンス学部のコンピュータサイエンス部門でバークレーパスカルの初期バージョンを作成しました(その年の後半にウィリアム・ジョイ、チャールズ・B・ヘイリー[16] [ 17] [18]、指導教員のスーザン・グラハムによって大幅な修正と追加が行われました)。
トンプソンは、Unix の最初のバージョン (1971 年) 用に「チェス」と呼ばれるチェス プログラムを書いた。[19]その後、ジョセフ コンドンとともに、ハードウェア支援プログラムBelleという世界チャンピオンチェス コンピュータを作成した。[20]また、 4、5、6 ピースのチェスエンディングの完全な列挙(エンドゲーム テーブルベースと呼ばれる) を生成するプログラムも作成した。これにより、チェス コンピュータ プログラムは、そこに保存されている位置に到達すると「完璧な」動きをすることができる。その後、チェス エンドゲームの専門家であるジョン ロイクロフトの助けを借りて、トンプソンは最初の結果をCD-ROMで配布した。2001 年、ICGA ジャーナルは、トンプソンのコンピュータ チェスへのさまざまな貢献にほぼ 1 号を割いた。[19]
1980年代
.png/500px-Plan_9_from_Bell_Labs_(with_acme).png)
1983年、トンプソンとリッチーは「汎用オペレーティングシステム理論の開発、特にUNIXオペレーティングシステムの実装に対して」チューリング賞を共同で受賞した。受賞スピーチ「信頼する信頼についての考察」では、現在トンプソンハックまたは信頼する信頼攻撃として知られている永続コンパイラバックドア攻撃が紹介され、それ自体がコンピュータセキュリティの重要な研究であると広く考えられている。 [21] 2023年、バックドアの注釈付きソースコードがオンラインで公開された。[22]受賞スピーチの最後は、 414などのハッカーに関するジャーナリストの肯定的な報道に対する批判で構成されていた。
1980年代を通じて、トンプソンとリッチーはリサーチ Unix の改訂を続け、第8版、第9版、第10版では BSD コードベースを採用しました。1980年代半ば、ベル研究所で Unix に代わる新しいオペレーティング システムの開発が始まりました。トンプソンはベル研究所の Plan 9の設計と実装に尽力しました。これは Unix の原理を活用しながらも、それをより広くすべての主要なシステム機能に適用した新しいオペレーティング システムです。mkやrcなど、リサーチ Unix の後のバージョンの一部であった一部のプログラムもPlan 9 に組み込まれました。
トンプソンはビャーネ・ストロストルプのためにC++プログラミング言語の初期バージョンをテストするためにプログラムを書きましたが、バージョン間の非互換性が頻繁に発生したため、後にC++での作業を拒否しました。2009年のインタビューで、トンプソンはC++に対する否定的な見解を表明し、「多くのことが中途半端にうまくいかず、互いに排他的なアイデアのゴミの山に過ぎない」と述べています。[23]
1990年代
1992年、トンプソンはロブ・パイクと共同でUTF-8エンコーディング方式を開発しました。[24] UTF-8はそれ以来、ワールドワイドウェブの主要なUnicodeエンコーディング形式となり、2019年にはウェブページの90%以上を占めています。[25]
1990年代には、ポータブル仮想マシンをベースにした別の研究用オペレーティングシステムであるインフェルノオペレーティングシステムの開発が始まりました。トンプソンとリッチーはベル研究所の他の研究者とともにインフェルノとの共同研究を続けました。[26]
1995年、トンプソンは、ジョー・ホールとジョント・アレンの指導の下、ジム・ジョンストンが行った独自の研究成果に基づいて、ショーン・ドーワードと音楽圧縮の共同研究を行った。[27] [28]
2000年代
2000年後半、トンプソンはベル研究所を退職した。
2004年、彼はアラン・チューリングが1948年に考案したチェスプログラム「Turochamp」の実装を支援した。当時はそれを実行できるコンピュータは存在しなかった。[29]
彼は2006年までEntrisphere, Inc.でフェローとして働いていました。2024年現在はGoogle[アップデート]で勤務しており、最初はDistinguished Engineerとして、後にGoogle Advisorとして活躍しています。[30]最近の業務にはGoプログラミング言語の共同設計が含まれています。彼は自分自身とGoの他の原作者について次のように述べています。[14]
私たち 3 人 [Thompson、Rob Pike、Robert Griesemer ] が始めたときは、純粋な研究でした。3 人で集まって、C++ が嫌いだと決めました。[笑い] ... [Go に戻って]、私たちは、3 人全員に言語のすべての機能を理解してもらう必要があるという考えから始めました。そうすれば、いかなる理由があっても言語に無関係なゴミが入り込むことはありません。
受賞歴
国立アカデミー
1980年、トンプソンは「UNIXの設計、すなわちその効率性、広範さ、パワー、スタイルがミニコンピュータの世代にわたる活用を導いたオペレーティングシステム」の功績により、米国技術アカデミーに選出された。 [31] 1985年、彼は米国科学アカデミーの会員に選出された。[2]
チューリング賞
1983年、トンプソンとリッチーは「汎用オペレーティングシステム理論の開発、特にUNIXオペレーティングシステムの実装」に対してチューリング賞を共同受賞した。受賞スピーチ「信頼の考察」で、トンプソンはコンパイラバックドアの形での攻撃を概説した。これはトンプソンハックまたは信頼の攻撃と呼ばれ、それ自体がコンピュータセキュリティの重要な研究であると広く考えられている。 [32]
IEEE リチャード・W・ハミング賞
1990年、トンプソンとデニス・リッチーの両名は、電気電子技術者協会(IEEE)から「UNIXオペレーティングシステムとCプログラミング言語の発明」によりIEEEリチャード・W・ハミング賞を受賞した。 [33]
コンピュータ歴史博物館フェロー
1997年、トンプソンとリッチーの両名は「UNIXオペレーティングシステムの共同開発とCプログラミング言語の開発」によりコンピュータ歴史博物館のフェローに選出された。 [34]
国家技術賞
1999年4月27日、トンプソンとリッチーはビル・クリントン大統領から、 UNIXオペレーティングシステムとCプログラミング言語の共同発明により1998年国家技術賞を共同受賞した。この2つの発明は「コンピュータのハードウェア、ソフトウェア、ネットワークシステムに多大な進歩をもたらし、業界全体の成長を刺激し、情報化時代におけるアメリカのリーダーシップを強化した」。[35]
金井勉賞
1999年、電気電子技術者協会は「数十年にわたり分散システム作業の重要なプラットフォームであったUNIXオペレーティングシステムの作成における彼の役割」により、トンプソンを第1回金井勉賞の受賞者に選んだ。 [36]
日本賞
2011年、トンプソンはデニス・リッチーとともに、UNIXオペレーティングシステムの開発における先駆的な功績により日本情報通信賞を受賞した。 [37]
私生活
ケン・トンプソンは結婚しており、息子がいる。[38] [19]
参照
参考文献
- ^ 「IEEE Emanuel R. Piore Award Recipients」(PDF)IEEE。2010年11月24日時点のオリジナル(PDF)よりアーカイブ。 2021年3月20日閲覧。
- ^ ab “Kenneth Thompson”. www.nasonline.org . 2021年10月21日時点のオリジナルよりアーカイブ。2019年6月9日閲覧。
- ^ セイベル2009、450ページ。
- ^ 「Thesis Students」。Elwyn Berlekampのホームページ。カリフォルニア大学バークレー校数学科。2021年10月21日時点のオリジナルよりアーカイブ。
- ^ 「ケン・トンプソン:ベル研究所でUNIXを開発」。2016年10月31日閲覧。
- ^ Thompson, KL (1969). 「Bon ユーザーズマニュアル」(PDF) . Multics History Project . Multics Documents: MIT Computer Science & Artificial Intelligence Lab. p. 1. 2021年2月14日時点のオリジナル(PDF)からアーカイブ。 2021年3月18日閲覧。
- ^ Ritchie, Dennis. 「C言語の開発」。ベル研究所。2016年10月31日閲覧。
- ^ J. Stanley Warford (2009). コンピュータシステム. Jones & Bartlett Publishers. p. 460. ISBN 978-1-4496-6043-7。
- ^ Ritchie, Dennis M. (2001). 「宇宙旅行:太陽系とPDP-7の探査」ベル研究所。2015年12月26日時点のオリジナルよりアーカイブ。 2016年2月4日閲覧。
- ^ Ritchie, Dennis M. 「Unixタイムシェアリングシステムの進化」。2021年10月21日時点のオリジナルよりアーカイブ。2016年10月31日閲覧。
- ^ Dennis M. Ritchie. 「C言語の開発」。ベル研究所/ルーセントテクノロジーズ。 2016年10月31日閲覧。
- ^ Cox, Russ. 「正規表現マッチングはシンプルかつ高速に実行できます」。2021年10月21日時点のオリジナルよりアーカイブ。2016年10月30日閲覧。
- ^ McIlroy, MD (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF) (技術レポート). CSTR. Bell Labs. 139. 2014年5月4日時点のオリジナル(PDF)からアーカイブ。
- ^ abc 「Dr. Dobb's: ケン・トンプソンへのインタビュー」2011年5月18日。2021年10月21日時点のオリジナルよりアーカイブ。2014年11月10日閲覧。
- ^ Salus, Peter H. (2005) . 「第 7 章 BSD と CSRG」.デーモン、Gnu、そしてペンギン。Groklaw 。
- ^ 「Unix のセットアップ – 第 7 版」(PDF) 。2024 年1 月 3 日閲覧。
- ^ "BYTE.com". www.landley.net . 2024年1月3日閲覧。
- ^ 「暗黒時代からのコンピューティング:私の50年間の旅」Indico 2019年4月25日。 2024年1月3日閲覧。
- ^ abc Dennis Ritchie (2001年6月). 「Ken, Unix and Games」. ICGA Journal . 24 (2). 2021年10月21日時点のオリジナルよりアーカイブ。 2020年3月5日閲覧。
- ^ 「ジョー・コンドン(死亡記事)」。Physics Today。2013年。doi :10.1063/PT.4.1752。
- ^トンプソン、ケン(1984 年)。「信頼を信頼することについての考察」。Communications of the ACM。27(8):761–763。doi :10.1145 / 358198.358210。
- ^ Cox, Russ (2023 年 10 月 25 日)。「「Reflections on Trusting Trust」コンパイラの実行」。
- ^ セイベル2009、475ページ。
- ^ Pike, Rob (2003年4月30日). 「UTF-8の歴史」。2021年10月21日時点のオリジナルよりアーカイブ。
- ^ 「ウェブサイトにおけるUTF-8の使用統計と市場シェア、2019年6月」。w3techs.com。2021年10月21日時点のオリジナルよりアーカイブ。2019年6月9日閲覧。
- ^ Khamlichi, M.el. 「Ken Thompson UNIXシステムの父」。Unixmen。2021年10月21日時点のオリジナルよりアーカイブ。2016年10月31日閲覧。
- ^ Platt, Charles. 「Music on Demand」. Wired . ISSN 1059-1028 . 2024年1月3日閲覧。
- ^ ケン・トンプソン - 閉会基調講演 - SCaLE 20x、2023年3月13日、 2024年1月3日閲覧
- ^ 「チューリングの『製紙機械』の再構築」2017年9月23日。
- ^ School、スタンフォード大学ロースクール。「Oracle America, Inc.、v. Google, Inc.におけるAmici Curiaeの経歴」スタンフォード大学ロースクール。 2023年7月27日閲覧。
- ^ 「ケン・トンプソン博士」。全米工学アカデミー。2021年10月21日時点のオリジナルよりアーカイブ。
- ^トンプソン、ケン(1984 年)。「信頼を信頼することについての考察」。Communications of the ACM。27(8):761–763。doi :10.1145 / 358198.358210。
- ^ 「IEEE Richard W. Hamming Medal Recipients」(PDF)IEEE。2011年7月26日時点のオリジナル(PDF)よりアーカイブ。 2011年5月29日閲覧。
- ^ “Ken Thompson”. コンピュータ歴史博物館. 2021年10月21日時点のオリジナルよりアーカイブ。2016年10月29日閲覧。
- ^ 「ベル研究所の著名人、デニス・リッチーとケン・トンプソンが国家技術賞を受賞」。ScienceDaily。1998年12月8日。2021年10月21日時点のオリジナルよりアーカイブ。
- ^ 「Ken Thompson が UNIX システムの貢献により Kanai 賞を受賞」。ベル研究所。1999 年 3 月 25 日。2013 年 3 月 26 日時点のオリジナルよりアーカイブ。
- ^ エヴァンジェリスタ、ベニー(2011年1月25日)。「ケン・トンプソン、デニス・リッチーが日本賞を受賞」サンフランシスコ・クロニクル。
- ^ 「Ken Thompson: 簡単な紹介」Linux 情報プロジェクト2007 年 8 月 24 日。 2020 年3 月 5 日閲覧。
出典
- Seibel, Peter (2009)。Coders at Work – Reflections on the Craft of Programming (オンライン)。ニューヨーク: Apress。ISBN 978-1-4302-1948-4 (紙) 、ISBN 978-1-4302-1949-1 (電子)
外部リンク
- 信頼を信頼することについての考察 1983年チューリング賞講演
- Unix とその先: ケン・トンプソン氏へのインタビュー IEEE コンピュータ協会
- ケン・トンプソン: Linux 情報プロジェクト (LINFO) の簡単な紹介
- コンピュータチェスの成熟: 写真 コンピュータ歴史博物館
- コンピュータチェスの成熟: ケン・トンプソン氏へのインタビュー動画 コンピュータ歴史博物館
- HS Baird と Ken Thompson による光学文字認識に関する Chess 論文を読む
