COBOLプログラムの作成(COBOLコンパイラー)
COBOLはメインフレーム・コンピューターの業務アプリケーション・プログラムでは最も多く使われているプログラミング言語です。バッチ・オンラインを問わず広く利用されています。基本的なコンパイルを行うためのサンプルJCLを示します。コンパイラーも標準のカタログプロシージャーを提供しています(SYS1.PROCLIB等)からそちらも参考にしてください。ユーザーによっては自社のプログラム開発用に標準化されたJCLを作成していたりします。業務用プログラムの場合はそれらの使用が規定されているかも知れません。
コンパイルオプションや追加のDD文などについては使用するCOBOLのマニュアルを参照して下さい。
MVS Enterprise COBOLのコンパイラーJCLサンプル
//COBOL EXEC PGM=IGYCRCTL,PARM='LIB' //STEPLIB DD DISP=SHR,DSN=IGY.V3R2.SIGYCOMP //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSUT2 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSUT3 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSUT4 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSUT5 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSUT6 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSUT7 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSLIN DD DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(3,3)) //SYSLIB DD DISP=SHR,DSN=MY.PROGRAM //SYSIN DD DISP=SHR,DSN=MY.PROGRAM(COBTEST1) //
//LKED EXEC PGM=IEWL,PARM=('LIST,LET,MAP,XREF') //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSLIB DD DISP=SHR,DSNAME=CEE.SCEELKED //SYSLMOD DD DISP=SHR,DSN=MY.LINKLIB(COBTEST1) //SYSLIN DD DISP=(OLD,DELETE),DSN=*.COBOL.SYSLIN // DD * リンケージエディタ制御文 // //LOADER EXEC PGM=LOADER,PARM='LIST,LET,MAP,XREF' //SYSLIB DD DISP=SHR,DSNAME=CEE.SCEELKED //SYSLOUT DD SYSOUT=* //SYSLIN DD DISP=(OLD,DELETE),DSN=*.COBOL.SYSLIN //
STEPLIBにコンパイラーが格納されたロードモジュール・ライブラリーを指定します。コンパイルされたオブジェクトモジュールはバインダーでロードモジュールにするか、ローダーで直接実行します。
REGIONパラメーターは必要に応じて指定して下さい。コンパイラーオプションはEXEC文のPARMパラメーターで指定します。長すぎて1行に書ききれない場合は以下のように記述して次の行へ継続できます。
----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- //COBOL EXEC PGM=IGYCRCTL, // PARM=('AAA,BBBBBB,CC(99999),DDDD(XXXXX),EEEE,FFF,GGG,HH', // 'II(XXX,YYYY(ZZ)),JJJJJJJ(KKKK)')
富士通COBOL85のコンパイラーJCLサンプル
//COBOL EXEC PGM=JMN000,PARM='XREF,APOST' //SYSPRINT DD SYSOUT=* //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(5,5)) //SYSLIN DD DISP=(,PASS),UNIT=SYSDA,SPACE=(TRK,(3,3)) //SYSLIB DD DISP=SHR,DSN=MY.PROGRAM //SYSIN DD DISP=SHR,DSN=MY.PROGRAM(COBTEST1) //
リンケージエディターはプログラム名をJQALにすればMVSと同じJCLを使えます。ローダーも同じJCLです。ただしSYSLIB DD文で指定するCOBOLの実行時ライブラリー名はSYS1.COBLIBとなります。
日立COBOL85のコンパイラーJCLサンプル
//COBOL EXEC PGM=JOTZ00,PARM='LIST=(S(A),M,R,E(W))' //SYSPRINT DD SYSOUT=* //SYSLIN DD DISP=(,PASS),UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSLIB DD DISP=SHR,DSN=MY.PROGRAM //SYSIN DD DISP=SHR,DSN=MY.PROGRAM(COBTEST1) //
リンケージエディターはプログラム名をJSAXLNKにすればMVSと同じJCLを使えます。ローダーも同じJCLです。ただしSYSLIB DD文で指定するCOBOLの実行時ライブラリー名はSYS1.COBLIBとなります。