レーニングとツィラーシステム

LaningとZierlerのシステム(利用者からは「George」と呼ばれることもある)は、最初の実稼働代数コンパイラであった。つまり、代数記法で数式を受け取り、それと同等の機械語を生成するシステムである(当時は「コンパイラ」という用語はまだ発明されておらず、システムは「解釈型プログラム」と呼ばれていた)。このシステムは1952年[ 1 ]にMIT WHIRLWIND向けにJ. Halcombe LaningとNeal Zierlerによって実装された。UNIVAC IA-0システムのような非代数コンパイラがこれに先行していた。

説明

このシステムは、多かれ少なかれ代数的な記法で書かれた数式を受け入れました。演算子の優先順位に関する標準的な規則を尊重し、括弧のネストを許容し、指数を示すために上付き文字を使用しました。また、シンボリック変数名を許容し、記憶域を自動的に割り当てるプログラミングシステムとしては、最も初期のものの一つでした。

このシステムは、浮動小数点計算、解析 (正弦など) と印刷の基本機能のサブルーチンへのリンク、配列とインデックス作成などの タスクも自動化しました。

このシステムは、Friden Flexowriterによって作成されたパンチテープからの入力を受け付けました。Whirlwind施設で使用されていた文字セットには、「大文字」(上付き文字)の数字とハイフンが含まれており、これらは配列のインデックス、関数コード、および(整数)指数を示すために使用されました。当時の他のプログラミング表記法と同様に、このシステムは1文字の変数名のみを受け付け、乗算はオペランドの並置によって示されました。乗算を明示的に示すために、凸点(コロンの下半分を削って作成された文字)も用意されていました。このシステムはまた、ルンゲ・クッタ法による線形微分方程式の解法もサポートしていました。

このシステムは、数学には詳しいものの、コンピュータには馴染みのない人向けに書かれた18ページのタイプライターで書かれたマニュアルで説明されていました。コンピュータのハードウェアに関する入門的な内容はほとんど含まれていませんでした。

サンプルプログラム

システムのマニュアル11ページから引用した以下の例は、テイラー級数展開を用いてを評価しています。実装はそれほど効率的ではなく、システムには既にサブルーチンライブラリが含まれていますが、この例はシステムの構文の雰囲気を伝えるのに役立ちます。システム内の除算は乗算の後に評価され、CP 1 は最後に計算された量が負の場合に式1への条件分岐となることに注意してください。 コス×{\displaystyle \cos x}×00.11{\displaystyle x=0,0.1,...,1}コス×{\displaystyle \cos x}

x = 0, 1 z = 1 - x 2 /2 + x 4 /2·3·4 - x 6 /2·3·4·5·6 + x 8 /2·3·4·5·6·7·8 - x 10 /2·3·4·5·6·7·8·9·10、 印刷x , z . x = x + .1, e = x - 1.05, CP 1、 停止 

アプリケーション

このシステム向けのアプリケーションはほとんど書かれなかった。文書化されたアプリケーションの一つは、レーニングとツィーラー自身によって書かれたもので、航空学の問題を扱うものだった。この問題は7つの微分方程式系を必要とし、MITの微分解析器では処理しきれないほど大きかったため、ワールウィンドに委ねられていた。著者らは、プログラミングシステムのルンゲ・クッタ法を利用して、97文のプログラムを2時間半で作成した。このプログラムは初回実行時に正常に動作した。

FORTRANへの影響

いくつかの情報源によると、 FORTRANはLaningとZierlerのシステムから着想を得たと言われています。John W. Backus自身も、この誤解を助長したことを認めています。

レーニング・ツィーラー方式がFORTRANの開発に与えた影響については、私の多くの誤った発言によって混乱が生じています。長年、私はMITでレーニング・ツィーラー方式のデモを見て、FORTRANで代数記法を使用するというアイデアを得たと信じていました。(Backus [ 2 ] )

当時の文書を調べた結果、Backus 氏と彼のチームが Laning 氏と Zierler 氏の研究成果を見る機会を得た時点で、FORTRAN プロジェクトは「順調に進んでいた」ことが分かりました。

「我々は、レーニングとツィーラーの先駆的な研究について初めて聞いたときから、代数的入力は彼らのシステムよりもかなり洗練されていると考えていた。…彼らのシステムのデモンストレーションを見て、何か新しいアイデアが得られたかを知ることは難しい。」(バッカス[ 2 ]

参照

参考文献

  1. ^ Jenkins, Dennis (2001-04-01). Dick, Steven J. ; Garbe, Steve (編). 「Advanced Vehicle Automation and Computers Aboard the Shuttle」 . STS-1の飛行:コンピュータ. NASA . 2022年7月14日時点のオリジナルよりアーカイブ。 2022年7月14日閲覧
  2. ^ a b Backus, John Warner . 『FORTRAN I, II, IIIの歴史』。プログラミング言語の歴史に関する第1回ACM SIGPLAN会議議事録。米国カリフォルニア州サンノゼ。 2005年8月27日時点のオリジナルよりアーカイブ。(16ページ)

さらに読む