パラダイム | 命令型 |
---|---|
登場時期 | 1955 (1955) |
設計者 | レミントンランド、グレース・ホッパー |
影響を受けた言語 | ARITH-MATIC(英語版) |
影響を与えた言語 | MATH-MATIC(英語版)、AIMACO(英語版)、COBOL |
テンプレートを表示 |
FLOW-MATIC(フローマティック)は、世界初の英語に近い表記のデータ処理用プログラミング言語である。元の名称はB-0(Business Language version 0)であった。1955年から1959年にかけて、レミントンランドに所属していたグレース・ホッパーによってUNIVAC I用に開発された。この言語は、COBOLの開発に大きな影響を与えた。
ホッパーは、ビジネスデータ処理を行う顧客が数学的な表記法を不快に感じていることに気づいた。そのことを次のように書き残している[1]。
私は数学の教授でした。当時、数学を学べない学生がかなりいることに気づきました。その後私は、ビジネスマンが私達のコンピュータを簡単に使用できるようにするための仕事を任されました。私は、数学を学べるかどうかが問題なのではなく、彼らが数学を学びたいかどうかが問題であることに気づきました。(中略)彼らは言いました「それらの記号を使わないでください。私はそれらの意味がわかりませんし、私には記号を学ぶ時間がありません。」私は、データ処理のを行う人達に数学記号を使用してもらい、副社長や大佐や提督にそれらの記号を教えることを試みようとしている人達への返信を提案します。私はそれを試したことを保証します。
1953年後半、彼女はデータ処理の問題を英語のキーワードを使用して表現することを提案したが、レミントンランド社の管理者はこの考えは実現不可能だと考えた。1955年初頭、彼女とそのチームはそのようなプログラミング言語の仕様を書き、プロトタイプを実装した[2]。FLOW-MATICのコンパイラは1958年初頭に公開され、1959年にほぼ完成した[3]。
第一に、FLOW-MATICは、英語のような文を使用して操作を表現する(英語版)世界初のプログラミング言語である[3]。
第二に、FLOW-MATICは、データの記述とその操作を明確に分離した最初のシステムである。実行可能な文とは異なり、データ定義言語は英語に似ていなかった。データ構造は事前に印刷されたフォームに記入することによって定義された[3]。
FLOW-MATICは、COBOLの設計に大きな影響を与えた[4]。FLOW-MATICの要素のうち、以下に掲げるものがCOBOLに組み込まれた。
INPUT
ファイルとOUTPUT
ファイルに分けること。IN
句、OF
句)READ
操作におけるIF END OF DATA (AT END)
句ZERO
(オリジナルはZZZ...ZZZ
で、Z
の数で精度を示した)Computer
(環境部(environment division))、Directory
(データ部(data division))、Compiler
(手続き部(procedure division))がある。マーケティングパンフレットに記載されたFLOW-MATICのサンプルプログラム[5][6]を以下に掲げる。
(0) INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICED-INV FILE-D ; HSP D . (1) COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ;IF GREATERGO TOOPERATION 10 ;IF EQUALGO TOOPERATION 5 ; OTHERWISEGO TOOPERATION 2 . (2) TRANSFER A TO D . (3) WRITE-ITEM D . (4)JUMP TOOPERATION 8 . (5) TRANSFER A TO C . (6) MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) . (7) WRITE-ITEM C . (8) READ-ITEM A ;IF END OF DATAGO TOOPERATION 14 . (9)JUMP TOOPERATION 1 .(10) READ-ITEM B ;IF END OF DATAGO TOOPERATION 12 .(11)JUMP TOOPERATION 1 .(12)SETOPERATION 9 TOGO TOOPERATION 2 .(13)JUMP TOOPERATION 2 .(14) TEST PRODUCT-NO (B) AGAINST ;IF EQUALGO TOOPERATION 16 ; OTHERWISEGO TOOPERATION 15 .(15) REWIND B .(16) CLOSE-OUT FILES C ; D .(17) STOP . (END)
このサンプルには、プログラムの実行可能文、すなわちCOMPILER
節のみであることに注意。データ部PRODUCT-NO
およびUNIT-PRICE
はDIRECTORY
節で定義されるが、(前述のように)英語のような構文は使用していない[7]。
この記事は2008年11月1日以前にFree On-line Dictionary of Computingから取得した項目の資料を元に、GFDL バージョン1.3以降の「RELICENSING」(再ライセンス) 条件に基づいて組み込まれている。