クリストファー・ストレイチー | |
---|---|
生誕 |
1916年11月16日 イギリス イングランド グレーター・ロンドン ハムステッド |
死没 |
1975年5月18日(58歳没) イギリス イングランド オックスフォード |
居住 | イギリス |
市民権 | イギリス |
研究分野 | 計算機科学 |
研究機関 |
ケンブリッジ大学 オックスフォード大学 |
出身校 | ケンブリッジ大学キングス・カレッジ |
主な業績 | CPL、 表示的意味論 |
プロジェクト:人物伝 |
クリストファー・ストレイチー(Christopher Strachey、1916年11月16日 - 1975年5月18日)はイギリスの計算機科学者[1][2][3]。なお、ストレイチー一族は政治家、芸術家、役人、学者を輩出した名家である。
1916年11月16日、グレーター・ロンドンのハムステッドで、外務省の役人だったオリヴァー・ストレイチーとレイチェルの息子として生まれる。オリヴァーの父リチャード・ストレイチーはインドでの植民地運営に携わり、リチャードの祖父ヘンリー・ストレイチーは準男爵だった。一家はヴァージニア・ウルフやジョン・メイナード・ケインズも所属したブルームズベリー・グループに属しており、クリストファーの叔父にあたるリットン・ストレイチーも所属していた。13歳でGresham's Schoolに入学し、知性の片鱗を見せたが成績は概ね悪かった。1935年、ケンブリッジ大学キングス・カレッジへの進学を認められたが、相変わらず勉強には熱心ではなかった。大学では当初数学を専攻し、その後物理学に転向。ケンブリッジでの3年目の終りごろノイローゼになっているが、自身の同性愛傾向との折り合いに関係していると見られる。ケンブリッジに戻ったものの、成績はよくなかった[4]。
それ以上教育を続けられず、Standard Telephones and Cables (STC) に研究者として就職。最初の仕事はレーダーに使用する電子管設計のための数学的解析である。計算が複雑だったため、微分解析機を使う必要があった。この計算機械との出会いはストレイチーの興味に火をつけ、彼は計算機械の研究を開始する。ケンブリッジ大学に研究計画を提案したが断わられたため、第二次世界大戦が終わるまでSTCに勤務し続けた。戦後、長年希望していた学校教師として採用され、数学と物理学を教えることになった。1949年には有名校であるハーロー校に移り、3年間勤務した。
1951年1月、友人を通して国立物理学研究所(NPL)のマイク・ウッジャーと知り合いになった。同研究所はアラン・チューリングのAutomatic Computing Engine(ACE)のコンセプトを縮小したパイロットACEというコンピュータを完成させていた。ストレイチーは暇をみてはチェッカーを行うプログラムを開発し、1951年2月に完成させた。このゲームプログラムはパイロットACEのメモリを完全に使い切る規模で、1951年7月30日にNPLで実際に動作した。Manchester Mark Iの方がメモリ容量が大きいと耳にしたストレイチーは、旧友のアラン・チューリングに頼んでマニュアルを取り寄せ、1951年10月ごろ自分のプログラムをMark I向けに書き直した。そのプログラムは「チェッカーを妥当な速さで最後までプレイできる」ものだったという。また、初期のコンピュータ音楽プログラムの1つを書き、「メエメエ黒羊さん」を演奏させた[5]。
1952年から1959年まで、イギリス国立研究開発公社 (NRDC)で働いた。セントローレンス海路プロジェクトに従事している間、アメリカのいくつかのコンピュータセンターを訪れ、それらの命令セットを収集。後にElliott 401とFerranti Pegasus向けのプログラムを書いている。また、ロジャー・ペンローズらと共に航空機の振動の解析を行い、タイムシェアリングの概念を生み出した。
1959年、NRDCを辞め、コンピュータ・コンサルタントとしてNRDC、EMI、フェランティといった様々な組織と様々なプロジェクトで契約するようになった。中にはコンピュータの論理設計関連の仕事も含まれており、autocodeや高水準言語の設計といった仕事も請け負った。Ferranti Orionへのautocode移植の契約に際しては、ピーター・ランディンを雇っている。
1962年、コンサルタント業も続けながら、ケンブリッジ大学での職を得た。
1965年、オックスフォード大学でも職を得て、後に同大学初の計算機科学の教授に就任した。また、デイナ・スコットと共同研究を行った。
ストレイチーはCPLというプログラミング言語を開発している。Fundamental Concepts in Programming Languages という講義ノートでは、左辺値と右辺値を定式化した。「カリー化」(currying) という用語もストレイチーが考案したものである(概念そのものはそれ以前からある)。
ハードウェアでは、Ferranti Pegasus というコンピュータの設計に関わった。
ストレイチーはGPM (General Purpose Macrogenerator) というマクロプロセッサを設計・実装した[6]。GPMは初期の汎用マクロプロセッサの1つで、こんにちでもAutoconfなどで使われているm4はGPMに大きな影響を受けている。ストレイチーはプログラマーとしての才能があり、GPMをたった250個の機械語命令に収めている[7]。