FORTRAN:プログラミング言語に革命をもたらした先駆者/ジョン・バッカス John Warner Backus (1924-2007)
現代でも科学技術計算や数値解析では使われていると聞くFORTRANという歴史の長いプログラミング言語の開発を率いたのがジョン・バッカスだ。またプログラミング言語の設計理論を研究し、その後のさまざまなプログラミング言語開発における土台をつくった。
幼少期から大学時代まで
1924年、アメリカ・ペンシルベニア州フィラデルフィアで生まれる。幼少期は身の回りのメカニズムを調べることに熱中し、数学の問題を体系的に解く過程に魅了された。学校ではほとんどの科目で平均的な成績だったが、数学だけは飛び抜けて優秀だったらしい。規則や慣例に縛られるのを嫌う気質があり、教師から出された課題を独自に変形して取り組む姿がしばしば見られたという。
高校卒業後、大学に進学するが、在学中に第二次世界大戦が勃発。徴兵されてアメリカ陸軍に入り、レーダー運用や電気系統の技術関連の訓練を受ける。この経験が後にコンピュータを扱う素地になったとも言われる。戦後は復学し、最終的にコロンビア大学で数学を専攻しながら理論と実践の両輪で知識を深めた。当時の研究室では数値計算や統計を重視しはじめており、コンピュータを使った大規模計算にも徐々に興味を持つようになる。
博士課程へ進むかどうか迷いつつも、当時急速に拡大していたIBMの研究動向に強い関心を抱く。自分の数学的思考が企業の研究現場でどこまで通用するのかを知りたい、という好奇心もあったようだ。1950年前後、IBMに入社し、最初は大型計算機の運用やプログラム作成に携わることになる。
IBM時代とFORTRANの開発
IBMではプログラミング手法そのものを見直す仕事に就く。当時のコンピュータはアセンブリ言語や機械語でのコーディングが当たり前で、非常に手間がかかった。数値演算をより簡単に、かつ正確に行うには、高水準言語を作る必要があると考えていた。
1954年前後から、社内で高水準言語を開発するプロジェクトを率い始める。もともとは「速度が落ちる」「複雑になる」という懐疑的な声も大きかったが、それを振り切るように研究チームを組織し、数年かけて完成させたのがFORTRAN (Formula Translator) だった。1957年に正式リリースされると、科学技術計算の分野で瞬く間に支持を集める。プログラマは複雑な数式をダイレクトに記述できるようになり、それをコンパイラが最適化してマシンコードに変換する仕組みが画期的だった。
初期のFORTRANコンパイラは巨大で、当時としてはとてつもない工数を要するプロジェクトになったが、最適化技術が成功を収めた結果、手書きのアセンブリコードと比べても性能面で大差ないレベルに到達したとされる。コンパイラが自動的に高速化を行うことで、プログラミングのハードルが下がり、研究者やエンジニアが短時間で大規模な数値演算を実行できるようになったことの意義は計り知れない。高水準言語が「実用に耐える」ことを証明し、プログラミング全体の発想を根本から変えた点でIT技術史を語る上では外せない功績だといえる。
BNF記法と言語理論への寄与
FORTRANの成功を機に、プログラミング言語の設計理論にも傾倒していく。特に言語の文法をどう定義し、どのように明示的な形で示すかという点に関心を寄せた。ここから誕生したのがBNF (Backus–Naur Form) と呼ばれる言語の文法記法である。
ALGOL 60の策定にも深く関わり、BNFはプログラミング言語仕様を形式的に記述するための枠組みとして広く受け入れられるようになる。後にEBNFなどの派生形も生まれ、現在の多くの言語仕様書が参考にしている。BNFが生まれた背景には、言語をあいまいに記述するのではなく、誰が読んでも統一的に理解できる文法定義を作ろうという強い意志があった。複雑な構文解析を要するコンパイラやインタープリタを実装する際、BNFによる厳密な定義がバグの減少や開発の容易化に直結した。
チューリング賞と関数型プログラミングへの視点
1977年にチューリング賞を受賞する。受賞講演として発表したのが「Can Programming Be Liberated from the von Neumann Style?」(John Backus 著) であり、これは命令型プログラミングの問題点や限界に警鐘を鳴らし、関数型プログラミングによる新たなパラダイムを提案する内容だった。数値演算を強力にサポートするFORTRANを生み出しながら、一方で命令型プログラミングの仕組みに縛られる弊害を鋭く指摘した点が興味深い。
彼は「FP言語」というプロトタイプを構想し、数学的関数を組み合わせてプログラムを作るアプローチに将来性を見出した。当時はLispがすでに存在していたが、関数型が主流になるには時間がかかった。しかし近年は並列計算や大規模データ解析などの需要が高まっており、副作用を伴わない関数型のメリットが見直されている。彼が提起した「フォン・ノイマン形からの解放」という問題提起は、現在も色あせない主張として引用される機会が多い。
技術者としての姿勢と人柄
IBM在籍時代から、突飛なアイデアや型破りなアプローチを歓迎する雰囲気を作り出すことに長けていたと語られている。論理的な説明が通らない会議や、細かい事務手続きに時間を取られることを嫌う反面、言語仕様の検討やコンパイラのアルゴリズム最適化には極度の集中力を発揮した。周囲が眉をひそめるような仮説にも果敢に挑戦し、その過程で得られた失敗データを次の手がかりに転換していくタイプだったと言われる。
ただし、常に研究室や会議室にこもっていたわけではなく、趣味のひとつとしてチェスやパズルを楽しんでいたというエピソードも残る。ゲームの戦略を組み立てる感覚が、プログラミングや言語理論の探究に通じる部分があったのかもしれない。新しいことに触れたときに「なぜそうなるのか」を徹底的に考察し、うまくいかなければ軌道修正を厭わない柔軟性が、彼の研究スタイルを支えていた。
晩年とIT史への影響
晩年もプログラミング言語やアルゴリズムの理論的背景に深い関心を持ち続けた。2007年に他界するまで、後輩の研究者やエンジニアに向けた助言や講演を行い、関数型プログラミングの重要性や、プログラムを「数学的に扱う」意義を熱く説いていたという。彼の視点は、プログラミングの効率化だけでなく、プログラムの安全性や信頼性、さらに並列化や抽象化のあり方にもかかわる大きなテーマにつながっている。
FORTRAN開発によって「高水準言語でも十分な性能が得られる」という認識を世に広め、BNF記法によって言語仕様の標準化や厳密化に貢献し、さらに関数型プログラミングの将来像を提示した功績は、IT史の根幹を支える存在として欠かせない。プログラムとは単なる手続きの羅列ではなく、高度に抽象化された数式や論理体系になり得るのだというビジョンを早い段階で示したところに、彼の先見性がうかがえる。
現代のプログラマは多様な言語やパラダイムを選択できる立場にあるが、その礎を築いた先駆的な人物のひとりがこの人物だという点は間違いない。彼が牽引した言語理論と実践の融合は、「コンピュータに何をどう指示するか」という問題から、「コンピュータとともにどのように思考するか」というもっと深いレベルの問いへと道を開いた。その遺産は現在も新たなイノベーションの土台となり続けている。
マガジン
前回の記事
参照
PIerre.Lescanne, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons