カテゴリ: COBOL 更新日: 2025/12/28

COBOLとJCLのEXEC文を完全ガイド!初心者でもわかるCOBOLプログラムの実行方法

EXEC文の基本構文とCOBOLプログラムの実行方法
EXEC文の基本構文とCOBOLプログラムの実行方法

先生と生徒の会話形式で理解しよう

生徒

「COBOLのプログラムを実行するときにJCLを書くと聞いたんですが、EXEC文って何をするものなんですか?」

先生

「EXEC文は、JCLの中で“どのプログラムを動かすか”を指定する一行だよ。COBOLを実行するときは必ず必要になるんだ。」

生徒

「プログラムを動かす指示、ということですか?どう書けばいいんでしょう?」

先生

「それじゃあ、初心者でも迷わないように、EXEC文の基本から実際の使い方まで順番に見ていこう。」

1. EXEC文とは?COBOLプログラムを動かすための“実行スイッチ”

1. EXEC文とは?COBOLプログラムを動かすための“実行スイッチ”
1. EXEC文とは?COBOLプログラムを動かすための“実行スイッチ”

JCL(Job Control Language)は、メインフレームでCOBOLプログラムを動かすときの「作業指示書」です。その中でEXEC文は、実行したいプログラムを指定する重要な部分になります。

例えば、家で電気をつけるとき、スイッチを押すだけで部屋が明るくなりますよね。EXEC文は、その「スイッチ」のような役割です。「このCOBOLプログラムを実行してください」とコンピュータに伝えます。

EXEC文はJCLの中で非常に重要で、COBOLを学ぶ初心者がまず理解しておくべきポイントです。


//STEP01   EXEC PGM=COBPROG

この一行だけで、「COBPROG」という名前のCOBOLプログラムを実行するように指示できます。

2. EXEC文の基本構文をやさしく解説

2. EXEC文の基本構文をやさしく解説
2. EXEC文の基本構文をやさしく解説

EXEC文は次のような形をしています。シンプルなので初心者でも覚えやすい構造です。


//ステップ名 EXEC PGM=プログラム名

では、この構造の中の各部分について丁寧に説明していきます。

● ステップ名とは?

JCLでは、一連の処理を「ジョブ」と呼び、その中の個々の処理を「ステップ」と呼びます。ステップ名は、そのステップに付けるラベルのようなものです。

例えば、掃除をするときに「台所」「風呂場」「リビング」と区切るイメージです。どの処理がどの部分なのか確認しやすくなります。

● EXEC(エグゼック)とは?

EXECは「実行する(EXECUTE)」という意味を持つキーワードです。「今からこのステップでプログラムを実行しますよ」という合図を出します。

● PGM=プログラム名

PGMは「Program(プログラム)」の略で、実行したいCOBOLプログラムを指定します。ここに書く名前は、リンク編集で作成された実行モジュールの名前です。

3. COBCOLプログラムをEXEC文で実行する流れ

3. COBCOLプログラムをEXEC文で実行する流れ
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文でよく使うパラメータ

4. EXEC文でよく使うパラメータ
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文を書くときの注意点

5. EXEC文を書くときの注意点
5. EXEC文を書くときの注意点

JCLのEXEC文を書く際には決まりごとが多いため、初心者は少し注意が必要です。ここでは、最も大切な注意点を挙げます。

● 半角で正確に書くこと

書き間違いがあるとジョブが実行されず、エラーコードが返ってきます。メインフレームは全角やスペースにとても厳しいため、見た目が同じでも全角だったりすると動きません。

● 位置揃えは厳格

JCLは1行目が「//」で始まる必要があります。ステップ名の位置や、EXECの後のスペースの位置にも決まりがあるため、見本どおりに書くことが大切です。

● プログラム名を間違えない

PGM=で指定する名前は、リンク編集後に作られた実行モジュール名と一致している必要があります。よくあるミスが「拡張子をつけてしまう」ことですが、COBOLの実行モジュールには拡張子はつきません。

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方