デビッド・ジョン・ホイーラーDavid John Wheeler1927年2月9日 - 2004年12月13日[2][3][4]は、コンピュータ科学者。バーミンガム生まれ。ケンブリッジ大学トリニティ・カレッジ数学を学び、1948年卒業。1951年、世界初のコンピュータ科学のPh.D.を取得した。

David John Wheeler
デビッド・ジョン・ホイーラー
生誕 (1927-02-09) 1927年2月9日
イギリスの旗 イギリス バーミンガム
死没 (2004-12-13) 2004年12月13日(77歳没)
イギリスの旗 イギリス ケンブリッジ
国籍 イギリスの旗 イギリス
研究分野 計算機科学
研究機関 ケンブリッジ大学
出身校 ケンブリッジ大学
論文 Automatic Computing With EDSAC (1951年)
博士課程
指導教員
モーリス・ウィルクス[1]
博士課程
指導学生
アンディ・ホッパー英語版
ロジャー・ニーダム英語版
主な業績 ブロックソート、Wheeler Jump
プロジェクト:人物伝
テンプレートを表示

生涯 編集

コンピュータ科学分野での彼の貢献には、EDSACブロックソート(Burrows-Wheeler変換)が、まず挙げられる。モーリス・ウィルクスと Stanley Gill と共に彼はサブルーチン[5]の発明者に数えられている。EDSACのサブルーチンコール技法(en:Electronic Delay Storage Automatic Calculator#Programming techniqueを参照)における、Aレジスタに戻り番地を置いてからサブルーチンの先頭に飛ぶジャンプは Wheeler Jump と呼ばれている[6]。また、CAPコンピュータ英語版という Capability-based security に基づく世界初のコンピュータの実装責任者を務めた。暗号理論では、WAKE英語版の設計者であり、TEA英語版XTEA英語版暗号をロジャー・ニーダム英語版と共に設計した。

1957年8月、ホイーラーは Joyce Blacker と結婚した。彼女自身も1955年から EDSAC上で数学的研究を行っていた学生であった。1964年、ホイーラーはケンブリッジ大学ダーウィン・カレッジフェローとなり、1994年に公式には引退した。しかしその後も死の直前までケンブリッジ大学コンピュータ研究所の一員として活動し続けた。

ホイーラーの言葉として "All problems in computer science can be solved by another level of indirection."(コンピュータ科学のいかなる問題も他のレベルのインダイレクションによって解決できる)という言葉がしばしば引用される[7]en:Fundamental theorem of software engineering、“ソフトウェア工学の基本定理”)。別のホイーラーの言葉として "Compatibility means deliberately repeating other people's mistakes."(互換性は他の人々の間違いを意図的に繰り返すことを意味する)がある(ただし英語版の当記事で現在要出典タグが付いている)。

科学アカデミー会員 編集

著作 編集

  • Wilkes, Maurice; Wheeler, David; Gill, Stanley (1951), The Preparation of Programs for an Electronic Digital Computer, ISBN 0-262-23118-2 (プログラミングについての世界最初の書籍。ISBNは再刊時のもの)

脚注 編集

  1. ^ デビッド・ホイーラー - Mathematics Genealogy Project
  2. ^ Campbell-Kelly, M. (2006). “David John Wheeler. 9 February 1927 -- 13 December 2004: Elected FRS 1981”. Biographical Memoirs of Fellows of the Royal Society 52: 437. doi:10.1098/rsbm.2006.0030. 
  3. ^ Cambridge Computer Laboratory – Obituaries: David Wheeler, 1927–2004”. 2011年7月21日閲覧。
  4. ^ “Professor David Wheeler - Obituaries, News - The Independent”. London. (2004年12月22日) 
  5. ^ 注: 当時、彼らは closed subroutine と称していた。これは現代で言うインライン展開して使うコードを open subroutine と呼んでいたのに対して、サブルーチンコールで使用するものを closed と呼んだものである。当時のインライン展開は鑽孔テープ(紙テープ)のコピーによって行われた。
  6. ^ 注: スタックや間接ジャンプが無いので、EDSACでサブルーチンからの戻りを実現するには、アキュムレータか特定のアドレスで戻り番地を渡し、ジャンプ命令を自己書き換えして戻る必要があった。
  7. ^ Diomidis Spinellis. Another level of indirection. In Andy Oram and Greg Wilson, editors, Beautiful Code: Leading Programmers Explain How They Think, chapter 17, pages 279–291. O'Reilly and Associates, Sebastopol, CA, 2007.

外部リンク 編集