KCORAL/NCORAL/CANOAID言語
コンバージョン・サービス(IBM・IMS版)

KCORAL/NCORAL/CANOAID言語をIBM・IMS/DB/DC対応のCOBOLに変換します。

CORAL言語はオンライン処理やバッチ処理を簡便に記述できる簡易言語で、日立の汎用機ユーザーでよく使われています。

当社ツールではCORAL/CANOAIDのシンタックス(文法)からCOBOL言語プログラムを自動生成することができます。


以下にKCORAL言語をCOBOL言語に変換した例を掲載します。

このページのトップへ戻る

プログラム例

変換前 KCORALソース

      
000100IONLINE  サンプルオンライン             GAMENA MPPR        
000200DGAMEN          Iガメン                                             
000300DWRKDB          IサンプルDB                                         
000400*                                                                 
000500T        DFCセット ...  #20-10                           
000600*        -------------------------------------------------------- 
000700*                       ワ-ク  エリア                     
000800*        -------------------------------------------------------- 
000900V01 キ-1                 X(06)   'TEST'
001000V 01 フラグ                                                   
001100V  02 エラーフラグ           9(01)    ZERO.                           
001200 #10.                                                         
001300*        -------------------------------------------------------- 
001400*                       メイン       ル-チン                            
001500*        -------------------------------------------------------- 
001600*                                                                 
001700   #10-10.                                                        
001800         ガメン                オ    ヨム.                             
001900         イジヨウ                   ナラ       シユウリヨウ-シヨリ.
002000         #10-20     オ    ジツコウ   スル.
002100         #20        ヘ    イク.
002200*                                                                 
002300   #10-20.                                                        
002400         サンプルDB(キ-1)       オ    ヨム.
002500         モシ  セイジヨウ  ナラ  
002600             #10-20  オ  デル,
002700         デナケレバ
002800             1        --->  エラーフラグ.
002900*                                                                 
003000 #20.                                                            
003100         DFCセット    オ    ジツコウ   スル.
003200         ガメン      オ   カク.                                      
003300                                 END.                             
003400*                                                                 
003500  #20-10.                                                         
003600         'DFC'(DFCAREAA,HIGH,BLINK)            オ    ヨブ.

      
    

このページのトップへ戻る

変換後 COBOLソース(一部割愛)

      
       IDENTIFICATION        DIVISION.
       PROGRAM-ID.           ONLINE.
       ENVIRONMENT           DIVISION.
       CONFIGURATION         SECTION.
       SPECIAL-NAMES.
       INPUT-OUTPUT          SECTION.
       FILE-CONTROL.
       DATA                  DIVISION.
       FILE                  SECTION.
       WORKING-STORAGE       SECTION.
           COPY      WRKDB  ・・・・・
           COPY      GAMENSPA.
           COPY      GAMENQ.
           COPY      CONVWRK.
           COPY      CONVWRKC.
           COPY      COR0COMM.
           COPY      ACDATETI.
           COPY      DFCLIST.
       01  MAPI-REC.
           02  MAPI-LEN                     PIC S9(04) COMP-4.
           02  MAPI-ZZ                      PIC S9(04) COMP-4 VALUE ZERO.
           02  MAPI-AREA.
             03  MAPI-ID                    PIC X(04).
             03  MAPI-CLR                   PIC X(01).
             03  MAPI-PFK                   PIC X(01).
             03  FILLER                     PIC X(2000).
       01  MAPO-REC-GRP.
           02  MAPO-REC.
             03  MAPO-LEN                   PIC S9(04) COMP-4.
             03  MAPO-ZZ                    PIC S9(04) COMP-4 VALUE ZERO.
             03  MAPO-AREA.
               04  MAPO-LIN                 PIC S9(04) COMP-4.
               04  MAPO-COL                 PIC S9(04) COMP-4.
               04  FILLER                   PIC X(2000).
           02  MAPO-DFC                     PIC X(900).
           02  MAPO-GAMEN-DFC               REDEFINES MAPO-DFC.
             03  DFCAREA-DFC                PIC X(03).
       01  WRKDB-SSA.
           02  FILLER                       PIC X(08) VALUE 'WRKDB'.
           02  FILLER                       PIC X(01) VALUE '('.
           02  WRKDB-SSA-KEY                PIC X(08) VALUE 'WRKDBCTRL'.
           02  WRKDB-SSA-OP                 PIC X(02) VALUE '= '.
           02  WRKDB-SSA-VALUE              PIC X(10) VALUE SPACE.
           02  FILLER                       PIC X(01) VALUE ')'.
       01  GAMENO                           PIC X(08) VALUE 'GAMENO'.
      *        --------------------------------------------------------
      *                       ワ-ク  エリア
      *        --------------------------------------------------------
       01  KI-1                             PIC X(06) VALUE 'TEST'.
       01  FLG.
           02  ERRFLG                       PIC 9(01) VALUE ZERO.
       LINKAGE                SECTION.
       01  IO-PCB.
           02  IO-NAME                      PIC X(08).

          中略

       01  WRKDB-PCB.
           02  WRKDB-NAME                   PIC X(08).
           02  WRKDB-LEV                    PIC X(02).
           02  WRKDB-STS                    PIC X(02).
           02  WRKDB-OPT                    PIC X(04).
           02  FILLER                       PIC X(04).
           02  WRKDB-SEG                    PIC X(08).
       PROCEDURE                DIVISION
           USING IO-PCB WRKDB-PCB.
       MAIN-RTN SECTION.
       MAIN-RTN-START.
           PERFORM INIT-RTN
           PERFORM L10
           PERFORM FINAL-RTN.
       MAIN-RTN-EXT.
           EXIT.
       L10 SECTION.
       L10-START.
      *        --------------------------------------------------------
      *                       メイン       ル-チン
      *        --------------------------------------------------------
      *
       L10-10.
      *    画面入力
      *    ガメン                オ    ヨム.
           CALL 'CBLTDLI'         USING GU
                                        IO-PCB
                                        GAMENSPA
           CALL 'CBLTDLI'         USING GN
                                        IO-PCB
                                        MAPI-REC
           CALL DSPAPI            USING DSPAPI-CTLI
                                        GAMEN-INF
                                        MAPI-REC
                                        GAMENSPA
           MOVE IO-STS               TO WK-STATUS
           IF  WK-STATUS NOT = SPACE
           THEN
      *     シユウリヨウ-シヨリ
               PERFORM FINAL-RTN
               GOBACK
           END-IF
           PERFORM L10-20
              THRU L10-20-EXT
           GO  TO  L20.
      *
       L10-20.
      *    DB処理
      *    サンプルDB(キ-1)       オ    ヨム.
           MOVE KI-1                 TO WRKDB-SSA-VALUE
           CALL 'CBLTDLI'         USING GHU
                                        WRKDB-PCB
                                        SAMPLEDB-REC
                                        WRKDB-SSA
           MOVE WRKDB-STS            TO WK-STATUS
           IF  WK-STATUS = SPACE
           THEN
               GO  TO  L10-20-EXT
           ELSE
               MOVE 1                TO ERRFLG
           END-IF.
       L10-20-EXT.
           EXIT.
      *
       L20 SECTION.
       L20-START.
           PERFORM L20-10
              THRU L20-10-EXT
      *    画面出力
      *    ガメン      オ   カク.
           MOVE LENGTH OF MAPO-REC   TO MAPO-LEN
           CALL DSPAPI            USING DSPAPI-CTLO
                                        GAMEN-INF
                                        MAPO-REC
                                        GAMENSPA
           CALL 'CBLTDLI'         USING ISRT
                                        IO-PCB
                                        GAMENSPA
           CALL 'CBLTDLI'         USING ISRT
                                        IO-PCB
                                        MAPO-REC
                                        GAMENO
           MOVE IO-STS               TO WK-STATUS
           PERFORM FINAL-RTN
               GOBACK.
      *
       L20-10.
      *    DFC処理
           MOVE DFC-HIGH-BLINK       TO DFCAREA-DFC
       L20-10-EXT.
           EXIT.
      *--------------------------------------------
      * PGM開始処理
      *--------------------------------------------
       INIT-RTN SECTION.
       INIT-RTN-START.
           CONTINUE.
       INIT-RTN-EXT. EXIT.
      *--------------------------------------------
      * PGM終了処理
      *--------------------------------------------
       FINAL-RTN SECTION.
       FINAL-RTN-START.
           CONTINUE.
       FINAL-RTN-EXT. EXIT.

      
    

このページのトップへ戻る