コンピューティング史見聞録(18)
ジョン・バッカスとFortran

2024年8月1日

1950年代半ばは、デジタル式コンピューターがなんとか実用になりつつある時であった。そこに商機を見出したコンピューター・メーカーも大小とりまぜて数十社は存在していたと思われるが、その中でもIBM前回述べたMark Iの設計・製造にも関与したほどで、すでに業界で中心的な地位を築いていた。

詳しくは、下記の「Fortanの開発…」参照

■機械語よりもプログラミング言語、全能感よりも真の実用性

当初のプログラミングは、機械への命令をビット列として直接記述するという機械語で行われており、それを経験した技術者は、「機械語でプログラムが書ける技術者こそが正義」のように考えがちであった。しかし、モーリス・ウィルクス(Maurice Wilkes)というコンピューター開発の先駆者が1949年にすでに思い知っていたように、「このままでは技術者の人生の大部分はプログラムの誤りを見つけるためだけに費やされることになる」ということに気がつき、「新しいプログラミング言語を作り、多くの人がコンピューターを使えるようにするべきである」と考えた、人間の心を失わなかった技術者もいたわけである。

このような背景で、多数のプログラミング言語や前処理プログラムが、ほとんどコンピューターに携わるグループの数だけ作られる、という風潮ができつつあった。プログラミング言語作成には、「自分の作った仕組みでコンピューターを自在に操る全能感」がある。それは、純粋数学の「楽しさ」にも似て、コンピューターに興味を持つような人にとっては抗い難い魅力を発揮するものでもある。ただ、身近な必要に駆られ自分のために簡単なプログラムを作るのは難しくはないのだが、他の人も使えるようなもの、そしてビジネスとして成功するようなものを作るのは、今も昔もなかなか難しいことである。

■ジョン・バッカスの生い立ち

IBMにおいて、より使いやすい言語を作ろう、という提案をIBM上層部に行い、実際にプロジェクトを成功に導いたのがジョン・バッカス(John Bachus)である。

バッカスが育った家庭環境は、彼によればかなり厳しかったようである。父親のことも「賢かったしお金も儲けたが良い人ではなかった」と言い、8歳のときに失った実母さえも優しくはなく、父の後添いとなった継母も「最悪」だった、と回想している[1]。

バッカスは徴兵されたものの、数学のテストである程度の成績を収めたために大学に送られることとなり、数学で修士号をとった。修了後はすぐには仕事を真剣に探していなかったものの、たまたまニューヨークの街を歩いていたところ、興味を惹く機械が外から見えるようになっていた建物があり、そこで話を少ししたたらそれが面接がわりでIBMに就職した、というような経緯であった。

■Fortranの開発と「自動プログラミングの歴史」

Fortran初期のマニュアル

その職場でプログラム書きの経験を得た上で、彼は「もっと良いやり方を探す必要がある」ということをIBM上層部に提案し受理された。このプロジェクトは、IBMが社外の顧客にも提供できるレベルの言語を作るためのものであり、また技術的にも制約の強いコンピューター上で複雑なプログラムから機械語を生成するところまでしっかりと動くようにするという「作り込み」を要するものであった。

バッカスが歴史に名を残すこととなったのは、10人ほどからなるチームを作り、Fortranコンパイラー全体のアーキテクチャーを作りながらメンバーが分担して作業できるように分割し、全体を動くようにしたことである。バッカス自身は直接コードを書いたわけではなかったようだが、このレベルの作り込みがされたプログラミング言語はまだ作られたことがなく、このようなプロジェクトを成功に導いたのは大きな成果である。このプログラミング言語はFortranと名付けられ、今でも大規模計算の分野などで使われている。

IBMが1957年に出したレポートには“Fortran: Automatic Coding System”というタイトルがつけられている。プログラミングの歴史は「それまで大変だと思われていた作業を自動化する」歴史である。「AIがプログラムを作ってくれるようになる」という現在の視点からはFortranが自動プログラミングであるようには見えないが、歴史的には機械語を使わなくてもコンピュターに処理をさせることができるのは自動化の名にふさわしいものだったといえよう。

(参考資料)
https://archive.computerhistory.org/resources/text/Oral_History/Backus_John/Backus_John_1.oral_history.2006.102657970.pdf

次回掲載予定は2024年9月上旬頃

著者:大島芳樹
東京工業大学情報科学科卒、同大学数理・計算科学専攻博士。Walt Disney Imagineering R&D、Twin Sun社、Viewpoints Research Instituteなどを経て、現在はCroquet Corporationで活躍中。アラン・ケイ博士と20年以上に渡ってともに研究・開発を行い、教育システムをはじめとして対話的なアプリケーションを生み出してきた。2021年9月に株式会社京都テキストラボのアドバイザーに就任。2022年8月より静岡大学客員教授。