要約
- FORMACは数式を操作可能な構造として扱い、形式微分、変数置換、展開、簡約を行ったうえで、FORTRANが処理できる形を生成できた。
- 簡約式が示すのは、特定の表現に規則が適用されたという事実である。全ての定義域での同値性、数値安定性、プログラムの無欠陥性、科学的結論までは保証しない。
- Jean E. Sammetが構想と開発を主導した一方、E. R. Bond、Robert G. Tobey、Stephen N. Zilles、IBMの他の開発者、同時代の記号計算コミュニティーの寄与は区別して記録する必要がある。
記号で書かれた方程式がFORTRAN IVのサブルーチンに変わり、コンパイラーを通り、数値を返す。最終画面だけを見れば一つの計算に見える。しかしその途中では、式の表現、代数的な規則、プログラムへの変換、数値実行という別々の判断が行われている。
Computer History Museumの略歴によれば、Jean E. Sammetは1961年にIBMへ入り、広く使われた記号数学システムFORMACの開発を指揮した。Sammet自身もオーラルヒストリーで、既存の数値言語に記号計算を加える発想だったと説明している。FORTRANは実用的な基盤だったが、その様式は新しい記号言語にも制約を与えた。
値の前に「形」を計算する
SammetとE. R. Bondによる1964年のIntroduction to FORMACでは、数式を名付け、その構造に処理を施す言語が示された。形式微分、変数の置換、括弧の除去、展開、簡約、後の数値評価がプログラム上の操作になった。
数値FORTRANは、通常、変数に値を与えて結果を計算する。FORMACはその前段で式の構成自体を扱う。答えだけでなく、数式そのものが実行の対象になった点が重要である。
Sammetの1966年のSurvey of Formula Manipulationは、微分だけでなく、積分、簡約、表示と編集、高精度演算、バッチ処理、オンライン処理、応用プログラムまでを見渡した。FORMACは大きな成果だったが、記号計算を探究する広い流れの一部でもあった。
IBM内の開発も一人の仕事ではない。回顧資料では、1962年7月にSammetがRobert G. Tobeyの助力を得て基本概念をまとめ、8月に内部提案、12月に仕様、1964年4月に完全なシステム、11月にリリースへ進んだとされる。1964年の実験的コンパイラー論文の書誌には、Elaine R. Bond、Marc A. Auslander、S. Grisoff、Robert Kenney、Mat Myszewski、Sammet、Tobey、Stephen N. Zillesが並ぶ。言語を率いることと、その実装を共同で作ることは同じ功績ではない。
FORTRANへの変換点で責任が切り替わる
1968年のNASA技術報告には、FORMACをブロック線図の整理に使った具体例がある。線形モデルを記号で入力し、変数を消去し、方程式を解き、関係式を代入する。記憶容量が許せば、複素有理式を展開することもできた。
その出力は、FORTRAN IVのサブルーチンに挿入できる形式でカードに穿孔された。FORMAC固有の末尾記号や、FORTRANが受け付けない指数表記は除去された。その後、FORTRANがコンパイルし、数値入力から実部、虚部、振幅、位相を計算した。
分業には性能上の理由があった。記号環境で数値評価を何度も繰り返すと遅く、式の格納領域も消費する。FORMACが代数を整理し、FORTRANが反復計算を担った。連携は強かったが、二つの処理の意味は一つにならなかった。
報告書には制限もある。対象は線形系で、時変係数は扱わない。任意関数には利用者がFORTRAN側の関数を用意する。式が膨張すればメモリー不足で展開できない場合もある。同時期の地球物理への応用も、FORMACを最終判定者ではなく記号プリプロセッサーとして扱っている。
形式的な成功には適用範囲がある
簡単になった式は、指定された規則が内部表現に適用されたことを示す。しかし因子を約分すると元の分母がゼロになる点が見えなくなる。平方根、対数、非整数べきには定義域と枝がある。厳密には同値でも、浮動小数点では桁落ちを起こしやすい形がある。
生成されたFORTRANがコンパイルできても、モデル、利用者関数、スケーリングが正しいとは限らない。数値が安定していても、物理現象の仮定が妥当とは限らない。だから証拠は、入力式と仮定、規則と変形後の式、生成ソース、コンパイラーとバイナリー、入力と精度と出力、分野の検証に分けて保存すべきである。前の段階の成功は、次の段階の認証ではない。
功績の境界も曖昧にしない
Sammetの1993年の回顧The Beginning and Development of FORMACは、発想、後続開発、関連システム、IBMでのソフトウェア管理、影響を分けて論じた。この分け方は人物史にも有効である。
Sammetはプロジェクトを発案し、方向を定めた。Bondは当時の入門論文を共著し、NASAが参照した初期マニュアルも書いた。Tobeyは基本構想とアルゴリズムに関わった。Zillesと他の著者は実験的コンパイラーの実装と説明に加わった。周辺の研究者も記号処理の可能性を広げた。
FORMACの功績は、機械が数学の真理を宣言したことではない。記号から通常のプログラム実行へ至る経路を現実のものにしたことである。その経路を正しく受け継ぐには、通過点ごとに証拠の意味が変わることも残さなければならない。
出典
- Computer History Museum:Jean E. Sammet
- Sammet、E. R. Bond:Introduction to FORMAC
- Jean E. Sammet:Survey of Formula Manipulation
- Jean E. Sammet:The Beginning and Development of FORMAC
- 1964年の共同著者記録
- Jean E. Sammetオーラルヒストリー
- IBM JournalのFORMAC回顧
- NASA:Use of FORMAC in a Program for Block Diagram Reductions
- FORMACの地球物理応用
- IEEE Computer Society:Jean E. Sammet
- Heng Lu:Running-Code Primacy
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
