JCL(Job Control Language)の役割と基本構文を徹底解説!初心者にもわかるCOBOLとの関係
生徒
「先生、COBOLの勉強をしていたらJCLっていう言葉が出てきたんですけど、これって何ですか?」
先生
「JCLは“Job Control Language”の略で、メインフレームと呼ばれる大型コンピュータに命令を出すための言語なんです。」
生徒
「命令を出す?COBOLのプログラムを作るときに必要なんですか?」
先生
「そうです。COBOLで作ったプログラムを実行するためには、JCLで『このプログラムを動かしてね』とコンピュータに指示する必要があります。」
生徒
「なるほど!じゃあJCLってCOBOLのプログラムの“スタートボタン”みたいな役割なんですね。」
先生
「そういうイメージです。それでは、JCLの役割と基本構文を詳しく見ていきましょう!」
1. JCL(Job Control Language)とは?
JCL(Job Control Language)は、メインフレーム(大型汎用コンピュータ)でプログラムを実行するときに使う命令書のようなものです。私たちが普段パソコンでアプリをダブルクリックして起動する代わりに、メインフレームではこのJCLを使って「どのプログラムを、どんな条件で、どのデータを使って実行するか」を指定します。
例えば、COBOLのプログラムを動かすとき、JCLで「プログラムの名前」「入力ファイルと出力ファイル」「実行環境」などを細かく指示します。これによって、コンピュータが正しく作業を進められるようになります。
身近な例えとしては、料理のレシピに近いです。「何を作るのか」「材料は何か」「どの手順で作るのか」をレシピで書きますよね。それと同じで、JCLはプログラムの実行手順をコンピュータに伝えるレシピの役割をします。
2. JCLの役割
JCLの役割は大きく分けて3つあります。
- プログラムの指定:どのプログラムを実行するかを指示します。
- リソースの指定:使用するファイルやデータセット(データのまとまり)、プリンターなどを指定します。
- 実行条件の設定:いつ実行するか、どんな条件で実行するかを決めます。
このように、JCLは単なる「プログラムの起動スイッチ」ではなく、実行のための細かい準備と段取りをすべて整える司令塔のような存在です。
3. JCLの基本構文
JCLは行単位で命令を書きます。代表的な命令は以下の3種類です。
- //JOBカード:ジョブの開始を宣言します。
- //EXECステートメント:実行するプログラムを指定します。
- //DDステートメント:使用するデータセットやファイルを指定します。
例えば、以下はCOBOLのプログラムを実行するための簡単なJCLの例です。
//MYJOB JOB 1,'COBOL JOB',CLASS=A,MSGCLASS=A
//STEP1 EXEC PGM=MYCOBOL
//INPUT DD DSN=MY.DATA.INPUT,DISP=SHR
//OUTPUT DD DSN=MY.DATA.OUTPUT,DISP=NEW
このJCLでは、以下のような動きをします。
- //MYJOB JOB ...:ジョブの開始を示す。
- //STEP1 EXEC PGM=MYCOBOL:MYCOBOLというCOBOLプログラムを実行する。
- //INPUT DD ...:入力データセットを指定する。
- //OUTPUT DD ...:出力データセットを指定する。
4. JCLの書き方のルール
JCLには独特の書き方のルールがあります。初心者がつまずきやすいポイントは以下の通りです。
- 1行目の先頭は必ず「//」から始める。
- 大文字で書く(メインフレームでは大文字小文字を区別しない場合が多いが、大文字が慣例)。
- 各項目はカンマで区切る。
- 空白や桁位置も意味を持つため、適切にそろえる。
5. COBOLとJCLの関係
COBOLはプログラム本体、JCLはそのプログラムを動かすための指示書です。例えるなら、COBOLが舞台の脚本で、JCLが舞台監督の指示書です。脚本だけでは舞台は始まりませんし、指示書がなければ舞台もスムーズに進みません。
そのため、COBOLを学ぶときは、JCLの基本もあわせて理解すると、実際にプログラムを動かせるようになります。
6. まとめると
JCLはCOBOLをはじめとするメインフレーム上のプログラムを動かすために欠かせない存在です。命令はシンプルですが、書き方やルールを間違えるとプログラムが動かないため、基本構文をしっかり理解することが大切です。初心者はまず、JOBカード・EXEC・DDの3つを押さえれば、簡単なプログラム実行ができるようになります。