| パラダイム | 手続き的、命令的 |
|---|---|
| デザイン: | コンピュータサイエンスコーポレーション、ハネウェル |
| 初登場 | 1959 |
| 影響を受けた | |
| コボル | |
FACT は、1959 年にミネアポリス ハネウェル社のデータマティック部門がモデル 800 シリーズ ビジネス コンピュータ用に作成した、初期の廃止されたコンピュータプログラミング言語です。FACT は「Fully Automatic Compiling Technique」の頭字語です。[1]これは、 COBOLプログラミング言語 の設計に影響を与えました。
FACT の設計の一部は、1925 年頃にCK Ogdenによって開発された言語プロジェクトBasic Englishに基づいています。
このソフトウェアは、実際にはハネウェル社のリチャード・クリッピンガーとの契約に基づき、Computer Sciences Corporation ( Fletcher Jones、Roy Nutt、Robert L. Patrick) によって設計されました。
COBOLへの貢献
FACT はCOBOLの設計に影響を与え、すべての COBOL マニュアルに記載されている 3 つの前身言語の 1 つです。
FACT のいくつかの要素が COBOL に組み込まれました。
- グループ項目と基本項目を使用して、データをレベルとして定義します。
- 定義中のデータに初期値を割り当てる (
VALUE句)。 - 特定のフィールド (
88レベル データ項目) で許可されるリテラル値の限定されたリストを指定します。 - 必要なレポートの外観を指定することに基づく非手続き型レポート ジェネレーター (COBOL-66 のレポート セクション)。
- データ名(
INまたはOF句)の修飾。 - 同じ名前のアイテムをまとめて移動します (
MOVE CORRESPONDING)。 - 手続き文(句)の妥当性チェック
ON ERROR。 - 組み込み
SORT関数。
実装
FACTは1960年代に導入され、「FACTの顧客5社がすべてのアプリケーションをFACTで作成している」ほか、「Honeywellの顧客12社もさまざまな程度でFACTを使用している」と報告されています。 [2]これには銀行や軍の在庫管理システムも含まれていました。1960年代から1970年代にかけてオーストラリア国防省で使用されていました。[説明が必要]
サンプルプログラム
FACT 仕様の単純な給与計算アプリケーションからの次のコード サンプルは、FACT の固定形式の性質と COBOL との類似点を示しています。
ファイルの概要:
O 1 RU詳細ファイル、(詳細)、( D ) O 2 日付O 3 月O 4 日O 5 年O 6 *従業員記録O 7 従業員番号、(従業員番号) O 8 *新入社員、( NW ) O 9 名前O 10 レートO 11 免除、(免除) O 12 債券控除、(債券控除) O 13 債券額、(債券額)
O 30 I内部ファイル1 O 31 作業データO 32 11 Dバッチ合計O 33 11 Dバッチ番号O 34 11 DバッチカウントO O 35 11 D 1 時間合計O 36 11 Dバッチ内カードO
ソースステートメント:
P 85結合手順。BONDORDERを書き込み、NUMから1 を減算します。P 86 P 87注。サンプルプログラムのフェーズI。カード読み取りパス中にバッチチェックを行うために、次の手順が使用されます。 P 89 P 90 合計手順。RP時間 数をSUM - OF - HOURSに追加します。CARDS - IN - BATCHに1を追加します。P 92 P 93バッチチェック手順。BATCH - SUM がSUM - OF - HOURS と等しくないか、BATCH - COUNTがCARDS - IN -BATCHと等しくない場合は 、BAD -BATCH を参照してください。SUM-OF-HOURS P 95 とCARDS-IN-BATCH をゼロに設定します。P 96 P 97 バッチ手順が不良です。NEW -MASTERを反転します。ERROR -REPORTのページを閉じます。P 98 P 99 Lです。PRINTLINEにゼロを入力します。NUM を8に設定します。P 100 P 101 ビルドします。EMPLOYNOとRP HOURS を( NUM ) THENとEHに入力します。SUB - P 102 CARDS-IN-BATCHとNUMからTRACT 1を取得します。CARDS -IN-BATCHがゼロの場合は、P 103 ERROR - REPORTを反転して書き込みます。
NEW-MASTER 、プロシージャを終了します。次のグループを取得します。P 104 NUMがゼロの場合はエラー レポートを書き込んでLに進み、それ以外の場合はP 105 BUILD に戻ります。プロシージャの終了。
レポートの説明:
R 1 40エラー レポートA 2ページ見出しHDEJ 2 F 3バッチ番号24バッチ番号. ^ F 4ページ番号1 43エラー ページ 内^ A 5列見出しHD 3 F 6 30 EMP . NO .時間EMP . NO .時間^ F 7 60 EMP . NO .時間EMP . NO .時間^ F 8 90 EMP . NO .時間EMP . NO .時間^ F 9 120 EMP . NO .時間EMP . NO .時間^ A 10エラー行OO 1 F 11 1 ST EN 8 ^ F 12 1 ST RH 14 . ^ F 13 2 ND EN 23 ^ F 14 2 ND RH 29 。^ F 15 3 RD EN 38 ^ F 16 3 RD RH 44 。^
R 101 4 OBONDORDER A 102債券見出しHDEJ 2 F 103 BPAGE 1 A 104債券注文書OO 1 F 105 M EMPLOYNO F 106 M NAME
レポートレイアウト:
L 1 ページ見出しバッチ番号。^エラー ページ内^ L 2 列見出し債券番号。時間。債券番号。時間。債券番号。時間。債券番号。時間。債券番号。時間。債券番号。時間。L 3 エラー行^ . ^ ^ . ^ ^ . ^ ^ . ^ ^ . ^ ^ . ^ ^ . ^ ^ . ^ ^ . ^ L 4 債券見出し債券注文債券番号 。名前。日付 。債券ページ^ L 5 債券注文行^ ^ ^ - ^ - ^ . ^ L 6 削除-見出し 終了EMP . NO .日付氏名 債券CR .合計..総税FICA INSUR RETページ^ L 7削除 -行 ^ ^ - ^ - ^ ^ . ^ . ^ . ^ . ^ . ^ . ^ L 8 エラー-見出しエラー... EMP . NO .日付 タイプ ページ ^ L 9 エラー-行^ ^ - ^ - ^ ^ L 10 タイトル-行小切手用紙をプリンタに挿入L 12 1支払行^ ^ /
^ / ^ 。^ ^ / ^ / ^ L 13 2ペイライン。^ 。^ 。^ 。^ 。^ L 14 3ペイライン^ $ **** 。^ 。^ 。^
出典
- Jean E. Sammet (1969)。プログラミング言語: 歴史と基礎。イングルウッドクリフス、ニュージャージー: Prentice-Hall。pp. 316–324。LCCN 68028110。OL 5619276M 。
- FACT 完全自動コンパイル技術 新しいビジネス言語(PDF) . 1960. 160-2M.
参考文献
