COBOLとJCLのEXEC文を完全ガイド!初心者でもわかるCOBOLプログラムの実行方法
生徒
「COBOLのプログラムを実行するときにJCLを書くと聞いたんですが、EXEC文って何をするものなんですか?」
先生
「EXEC文は、JCLの中で“どのプログラムを動かすか”を指定する一行だよ。COBOLを実行するときは必ず必要になるんだ。」
生徒
「プログラムを動かす指示、ということですか?どう書けばいいんでしょう?」
先生
「それじゃあ、初心者でも迷わないように、EXEC文の基本から実際の使い方まで順番に見ていこう。」
1. EXEC文とは?COBOLプログラムを動かすための“実行スイッチ”
JCL(Job Control Language)は、メインフレームでCOBOLプログラムを動かすときの「作業指示書」です。その中でEXEC文は、実行したいプログラムを指定する重要な部分になります。
例えば、家で電気をつけるとき、スイッチを押すだけで部屋が明るくなりますよね。EXEC文は、その「スイッチ」のような役割です。「このCOBOLプログラムを実行してください」とコンピュータに伝えます。
EXEC文はJCLの中で非常に重要で、COBOLを学ぶ初心者がまず理解しておくべきポイントです。
//STEP01 EXEC PGM=COBPROG
この一行だけで、「COBPROG」という名前のCOBOLプログラムを実行するように指示できます。
2. EXEC文の基本構文をやさしく解説
EXEC文は次のような形をしています。シンプルなので初心者でも覚えやすい構造です。
//ステップ名 EXEC PGM=プログラム名
では、この構造の中の各部分について丁寧に説明していきます。
● ステップ名とは?
JCLでは、一連の処理を「ジョブ」と呼び、その中の個々の処理を「ステップ」と呼びます。ステップ名は、そのステップに付けるラベルのようなものです。
例えば、掃除をするときに「台所」「風呂場」「リビング」と区切るイメージです。どの処理がどの部分なのか確認しやすくなります。
● EXEC(エグゼック)とは?
EXECは「実行する(EXECUTE)」という意味を持つキーワードです。「今からこのステップでプログラムを実行しますよ」という合図を出します。
● PGM=プログラム名
PGMは「Program(プログラム)」の略で、実行したいCOBOLプログラムを指定します。ここに書く名前は、リンク編集で作成された実行モジュールの名前です。
3. COBCOLプログラムをEXEC文で実行する流れ
初心者が最もイメージしたいのは、実際に一つのCOBOLプログラムをJCLで動かす流れです。ここでは、最も基本的なJCLの例を見て、EXEC文がどのように使われるか理解しましょう。
//SAMPLE JOB (ACCT),'USER',CLASS=A,MSGCLASS=X
//STEP01 EXEC PGM=HELLOCOB
//SYSOUT DD SYSOUT=*
//SYSIN DD DUMMY
ここで「HELLOCOB」が実行されるCOBOLプログラムです。SYSOUTは実行結果の出力先、SYSINはプログラムに渡す入力です。今回はDUMMYを指定しているので、特別な入力はありません。
プログラムを実行するには、JOBカードを書き、EXEC文でプログラムを指定し、必要なら入力ファイルや出力ファイルも指定します。こうした流れを覚えるとメインフレームでのCOBOL実行の仕組みがはっきり理解できます。
4. EXEC文でよく使うパラメータ
EXEC文にはPGM=以外にもいくつかのオプションがありますが、初心者が最初に理解しておくべき主要パラメータを紹介します。
● PARM=
PARMはプログラムにパラメータ(指示)を渡すときに使う項目です。例えば、「特定のモードで動かしたい」「テスト用のフラグを渡したい」などのときに使われます。
//STEP01 EXEC PGM=HELLOCOB,PARM='TEST'
COBOLの中では、ACCEPT文などでこの値を受け取ることができます。
● COND=
CONDは、前のステップでエラーが出たときに、このステップを実行するかスキップするかを決める条件です。メインフレームのバッチ処理ではよく使われます。
//STEP02 EXEC PGM=NEXTSTEP,COND=(4,LT)
これは「前のステップの戻りコードが4より小さい場合、このステップをスキップする」という意味です。
5. EXEC文を書くときの注意点
JCLのEXEC文を書く際には決まりごとが多いため、初心者は少し注意が必要です。ここでは、最も大切な注意点を挙げます。
● 半角で正確に書くこと
書き間違いがあるとジョブが実行されず、エラーコードが返ってきます。メインフレームは全角やスペースにとても厳しいため、見た目が同じでも全角だったりすると動きません。
● 位置揃えは厳格
JCLは1行目が「//」で始まる必要があります。ステップ名の位置や、EXECの後のスペースの位置にも決まりがあるため、見本どおりに書くことが大切です。
● プログラム名を間違えない
PGM=で指定する名前は、リンク編集後に作られた実行モジュール名と一致している必要があります。よくあるミスが「拡張子をつけてしまう」ことですが、COBOLの実行モジュールには拡張子はつきません。