コンピュータ界のノーベル賞と言われる「チューリング賞」。プログラミング言語やアルゴリズム,OSなど基盤技術の開発者が名を連ねる。ITエンジニアとして,偉大な先達たちの業績を知っておきたい。

 この連載も,いよいよ最終回である。今回は「チューリング賞(ACM Turing Award,http://www.acm.org/awards/taward.html)」の受賞者たちの業績から,近代コンピュータ史を振り返ってみよう。チューリング賞は,コンピュータ界のノーベル賞と言われている。米国コンピュータ学会(ACM=The Association for Computing Machinery)が,1966年から毎年1回,コンピュータ科学の発展に貢献した人物に授与している権威ある賞だ。チューリング賞という名称は,1935年にコンピュータの数学的モデルを示したアラン・M・チューリング(Alan M. Turing,1912~1954)に由来している。現在,私たちが利用している様々な基礎技術と理論には,それを最初に考案した人物がいるのだ。ITエンジニアとして彼らの業績を知り,称えようではないか。

 1966年~2004年のチューリング賞の受賞者と主な業績を,表1にまとめて示す。ざっと見ただけでも,皆さんよくご存知の偉人たちの名前が並んでいることが分かるはずだ。もしも知らない人物がいたら,名前と業績を覚えておこう。受賞理由となった基礎技術や理論が発表された年と受賞年は一致してなく,かなり後になってから評価されている。基礎技術や理論を考案したことではなく,それらが長年にわたって多くのITエンジニアに影響を与え,様々なシステムに応用された実績が評価されるからだ。

表1●チューリング賞の歴代受賞者たち
表1●チューリング賞の歴代受賞者たち
[画像のクリックで拡大表示]

ハード主導からソフト主導へ

 1946年,世界初の電子式コンピュータである「ENIAC(Electronic Numerical Integrator And Computer)」が開発された。「ENIACでは,回路の配線の変更でプログラミングしていた」という話を聞いたことがあるだろう。これは,いくつかの演算ユニットをケーブルで結ぶことで目的の計算結果を得ていたという意味だ。もろにハードウエア主導である。

 コンピュータの進化スピードは,驚くほど速い。わずか3年後の1949年には,世界初のプログラム内蔵方式コンピュータ「EDSAC(Electronic Delayed Storage Automatic Computer)」が開発されている。ケーブルの配線ではなく,記憶装置内に格納されたプログラムを実行できるようになったのだ。EDSACの中心的な開発者であるモーリス・V・ウィルクス(Maurice V. Wilkes,1967年受賞)は,ハードウエアではなくソフトウエアを中心にコンピュータを考えた最初の人物であると言える。1951年,ウィルクスは,プログラミングに関する世界初の著書(共著)「Preparation of Programs for Electronic Digital Computers」を出版する。マイクロプログラミング技術(回路の変更をプログラムに置き換えて実現するもの),サブルーチン化,およびライブラリ化のアイデアを示した。半世紀前から,すでにソフトウエアの再利用というアイデアがあったのだ。

 ただし,ハードウエアと比べて,物理的な形がないソフトウエア(プログラム)は,容易に変更が可能なため,バグを多く残していたり,自分勝手な記述スタイルに陥ってしまう危険がある。プログラミング技法とコンパイラ構築技法の研究者であり,ALGOLなどいくつかのプログラミング言語の設計に関わっているアラン・J・パーリス(Alan J. Perlis,1966年受賞)は,プログラミングに関する130項目の風刺的な警告「EPIGRAMS IN PROGRAMMING」を発表している。プログラマなら,一度は目を通しておいてほしい。