※「セキュリティ保護のため...」というメッセージが出る方・日本語が入力できない方へ
COBOL


COBOLは COmmon Business Oriented Languageの略です。FORTRANがIBMと
いうひとつの企業で作られたのに対して、COBOLはCODASYLという公共的な
機関で制定されました。

COBOLは企業の経理や営業などの事務処理に使うことを目的として作られて
います。またFORTRANがどちらかというとコンビュータの動きに合わせて設
計された言語であるのに対して、COBOLは目的とする文書の形式に主眼を置
いています。また、技術計算では誤差はつきものですが、事務計算では1円
でも違いがでては困るので、全て10進整数で処理するという方式を取りまし
た。これはCOBOLの重さの原因にもなっています。

【COBOLの記述例】

     IDENTIFICATION DIVISION.
     PROGRAM-ID.  PROG01.
     AUTHOR.      K-MATUO.
     PROGRAM-WRITTEN. 1990-01-01.

     ENVIRONMNET DIVISION.
     CONFIGURATION SECTION.
     SOURCE-COMPUTER. NEC-SYSTEM3100.
     OBJECT-COMPUTER. NEC-SYSTEM3100.
     
     FILE SECTION.
     FILE-CONTROL.
         SELECT KOKYAKU ASSIGN TO KOKYAKU-RDB
                ORGANIZATION IS INDEXED
                ACCESS MODE IS DYNAMIC
                RECORD KEY KO-KEY.
         SELECT PRINTF ASSIGN TO REPKO-PRN.
     I-O-CONTROL.
         APPLY   SHARED-MODE  ON  KOKYAKU
         APPLY   SHIFT-CODE ON PRINTF.

    DATA DIVISION.
    FILE SECTION.
    FD  KOKYAKU  LABEL RECORD IS STANDARD
                 VALUE OF IDENTIFICAIOTN  IS "KOKYAKU-RDB".
    01  KO-REC.
        02  KO-KEY           PIC  9(04).
        02  KO-NAME          PIC  X(40).
        02  KO-BIRTH.
            03  KO-BIRTH-YY  PIC 9(04).
            03  KO-BIRTH-MM  PIC 9(02).
            03  KO-BIRTH-DD  PIC 9(02).
        02  KO-SEX           PIC  9(01).
        02  KO-TEL           PIC  X(20).
    FD  PRINTF  LABEL RECORD IS OMITTED.
    01  PR-REC               PIC X(135).

    WORKING-STORAGE SECTION.
    01  RP-REC.
        02  RP-KEY           PIC  Z(04).
        02  FILLER           PIC  X(01).
        02  RP-NAME          PIC  X(40).
        02  RP-BIRTH.
            03  RP-BIRTH-YY  PIC  Z(04).
            03  FILLER       PIC  X(02).
            03  RP-BIRTH-MM  PIC  Z(02).
            03  FILLER       PIC  X(02).
            03  RP-BIRTH-DD  PIC  Z(02).
            03  FILLER       PIC  X(02).
        02  FILLER       PIC  X(01).
        02  RP-SEX       PIC  X(04).
        02  FILLER       PIC  X(01).
        02  RP-TEL       PIC  X(20).
        
    01  WORK-AREA.
        02  G-KEY        PIC  9(04).
        (中略)
    
    PROCEDURE DIVISION.
    MAIN SECTION.
    MAIN-10.
        OPEN INPUT  KOKYAKU
             OUTPUT PRINTF.
    MAIN-20.
        READ KOKYAKU
            AT END
                GO TO MAIN-90.
        MOVE  SPACE         TO  RP-REC.
        MOVE  KO-KEY        TO  RP-KEY.
        MOVE  KO-NAME       TO  RP-NAME.
        MOVE  "....年..月..日"  TO  RP-BIRTH.
        MOVE  KO-BIRTH-YY   TO  RP-BIRTH-YY.
        MOVE  KO-BIRTH-MM   TO  RP-BIRTH-MM.
        MOVE  KO-BIRTH-DD   TO  RP-BIRTH-DD.
        IF  KO-SEX = 1
            MOVE  "男性"        TO  RP-SEX
        ELSE IF KO-SEX = 2
            MOVE  "女性"        TO  RP-SEX
        ELSE
            MOVE   KO-SEX       TO  RP-SEX.
        MOVE  KO-TEL        TO  RP-TEL.
        WRITE PR-REC FROM RP-REC BEFORE 1.
        GO TO MAIN-20.
   MAIN-90.
        MOVE SPACE TO PR-REC.
        WRITE PR-REC BEFORE PAGE.
        CLOSE KOKYAKU PRINTF.
        STOP RUN.

COBOLの最大の特徴は構造化したデータを記述できることでした。このため
報告書のフォーマットをこの構造により記述して、まとめて取り扱うことが
できたのです。ここが事務処理をする時にFORTRANに対して誇れるもう一つ
のものでした。

COBOLは企業の事務処理システムに深く浸透し、1960年代後半から1980年代
にかけて作られた企業システムの恐らく3〜4割がCOBOLで構築されたので
はないかと思われます。

当初は「報告書作成」機能がずいぶん強調されたのですが、実際には単純
な報告書を作るだけでしたら、IBMが作成したRPGの方が簡単に組めて
多数動いているものと思われます。そういう意味ではCOBOLの報告書作成
機能は中途半端で使い物になりません。その他各メーカーとも同様の簡易
報告書作成ソフトを開発して提供していました。

1990年代以降、COBOLもその主役の座を降りることになりますが、それは
COBOLが時代に合わなくなってきたためではなく、COBOLが得意とする事務
処理という分野で、データベース・ソフトや事務処理パッケージなどが
十分な機能を持ち、わざわざプログラムを組む必要がなくなったためです。
そのため、日本では1990〜1996年頃、多くのCOBOL専門のソフトハウスが
経営危機に陥っていきます。



(C)copyright ffortune.net 1995-2007 produced by ffortune and Lumi.
お問い合わせはこちらから