COBOL ====== 歴史 ----- * 1960年アメリカ 4つの部 ------- * IDENTIFICATION DIVISION プログラム全体の見出し * ENVIRONMENT DIVISION データベースへのアクセスのための記述など (DB名とテーブル名) * DATA DIVISION データの型、変数宣言など * PROCEDURE DIVISION 処理する内容 ファイル、レコード、項目 ------------------------ * ファイル レコードの集合 * レコード 1件分のデータ * 項目 基本項目と集団項目 「20191120」→「2019」年「11」月「20」日 コーディング ------------ * 1〜6桁目 一連番号 * 7桁目 標識領域 * アスタリスク=コメント * スラッシュは改ページ * ハイフンは継続行(通常使用しない) * 8から11桁目 = A領域 部、節、段落、FD項、01レベルのレベル番号を記述する場合 FD項=ファイルを使用する場合の宣言など * 12〜72桁目 = B領域 固定形式と可変形式によって違う 可変形式は(富士通の場合)223桁 * 行内コメントは *> で書く 利用できる語 ------------ ```` 文字の組 - 文字列 - 予約語 利用者語 定数 (数字定数/文字定数/表意定数) 分離符 利用者語 ```` 予約語= MOVE, WRITE, SECTION, DIVISION, ... 利用者語=プログラマが自由に定義できる * プログラム名 * ファイル名 * ファイル識別名 * レコード名 * データ項目名 * 節名 ```` MOVE ZERO TO WORK-AREA (数値としてのゼロクリア) MOVE SPACE TO WORK-AREA (文字列としての空白) INITIALIZE WORK-AREA (型に応じたクリア) ```` 予約語 ------ データ部 ```` PICTURE 01 9が数字 999V999 X(5) 文字列5桁 N(8) 日本語の桁数 ```` * OCCURS その回数くり返す(配列のようにまとめて確保) 01 WORK-YOJI-DATA OCCURS 10. 02 HYOJI-ID PIC 99. 02 HYOJI-DATE PIC 99(8). 02 HYOJI-NAIYO PIC X(20). 手続部 ------ ```` MOVE a TO b. READ URIAGE-F. MOVE URIAGE-TOKUI TO GOKEI-TOKUI. COMPUTE var = exp. DISPLAY value " and " 123 ```` ```` PERFORM PERFORM SUBROUTINE 10 TIMES. PERFORM SUBROUTINE UNTIL VAR >= 10. PERFORM SUBROUTINE. SUBROUTINE. 処理. 処理. NEXTROUTINE. PERFORMにWHILEはない PERFORM VARYING PERFORM VARYING FROM 1 BY 1 UNTIL WORK-COUNTER > 10 処理 END-PERFORM. ADD 1 TO VAR SUBTRACT 1 TO VAR DIVIDE 除数 INTO HOGE-A GIVING HOGE-AMARI. 被除数の変数は必ず破壊される NOT = NOT EQUAL ```` IF文 ---- ```` IF HOGE-AMARI = 1 THEN DISPLAY 'KISU' ELSE DISPLAY 'GUSU' END-IF. ```` EVALUATE ---------- ```` MOVE 60 TO HOGE-A. EVALUATE HOGE-A WHEN 0 THRU 50 処理 WHEN 50 THRU 100 WHEN OTHER 処理 END-EVALUATE. ```` Hello, world -------------