運用制御言語
操作制御言語(OCL)は、 IBM System/3、System/32、System/34、およびSystem/36 ミニコンピュータ・ファミリーの制御言語です。IBM iのSystem/36環境では、下位互換性のためにサポートされています。OCLは、古い制御言語であるJCL(System/370)に類似しており、後発の制御言語(System/38およびIBM AS/400)やREXX(AS/400)とは無関係です。
概要
OCL文は、ユーザープログラムまたはシステムプログラムをメモリに直接読み込み、システムリソースを割り当て、実行と呼ばれるプロセスでシステム制御をプログラムに移すために使用されます。プログラムがコンピュータのディスクドライブに保存されているという事実自体が、コンピュータにそのプログラムを処理または実行させるわけではありません。
OCL文はキーボードから手動で入力できますが、通常は手続きメンバーとして保存されます。手続きメンバーはライブラリ内の自由に編集可能なメンバーであり、ソースファイルです。S/32、S/34、およびS/36では、手続きはコンパイルされず、解釈されます。
例
OCL文は通常、2つのスラッシュと少なくとも1つのスペース文字で始まります。System/36のPROC1メンバーに格納されているプロシージャの例を以下に示します。
** 手順 PROC1 オプションのドキュメント**** ジョー・ユーザー 2006-05-29 執筆****// * 'PROC1 プロシージャが実行中'// * ' '// IFF ACTIVE-'PROC2,PROC3' が OK になる** IFFは「偽の場合」を意味します** ACTIVE-'name1,name2'はtrueを意味します** リストされているプログラムの少なくとも1つが現在実行されている場合** GOTO xxx はステートメントにスキップすることを意味します** TAG xxxを持ち、処理を再開する// PAUSE '他の給与計算が実行中のため続行できません'** メッセージを表示して実行を停止します// CANCEL このプロシージャの実行を停止します// タグOK// IFF DATAF1-PFILE1 IFF DATAF1-PFILE2 GOTO NODELT// * 「注意、支払データが存在します」端末に情報を表示します// * ' '// * '1 を押して続行し、既存のファイルを削除します'// IFF '1'=?1R? CANCEL パラメータは数字を囲む疑問符で示されます** 疑問符の間に1Rを使用すると、** パラメータは必須です** 処理はユーザー入力を待機します。 ** キャンセルは、直ちにジョブの終了に進むことを意味します。// LOAD $DELET $DELETはファイルを削除するために使用されます// 走る** このプログラムは、** END文までの後続の文をデータとして// IF DATAF1-PFILE1 スクラッチユニットF1、ラベルPFILE1** 既存のディスクファイルを条件付きで削除します// IF DATAF1-PFILE2 スクラッチユニットF1、ラベルPFILE2// 終わり**// タグノード// LOAD PR101 PR101はRPGまたはCOBOLプログラムである可能性があります// ファイル名-PAYMAST、DISP-SHR PAYMASTは給与マスターファイルです// ファイル名-PFILE1、表示-新規、レコード数-100、拡張-100** 新しいファイルPFILE1が作成され割り当てられます** 100件のレコードがPFILE1に割り当てられます** すべて使用されると、システムはさらに100ずつ拡張しようとします** いっぱいになるたびに。// 走る** END文は必須です** 有効になっているプログラムの場合** 以下のステートメントをデータとして処理する** このようなデータはOCLのようなフォーマットにする必要はありません// SWITCH 1XX0XXXX フラグU1からU8をSETON(1)、OFF(0)、または以前の設定(X)のままにします**// LOCAL OFFSET-1,DATA-'PROC1' PROC1をローカルデータエリア(LDA)に配置する// LOCAL OFFSET-101,DATA-'?USER?' オペレータのユーザーIDを代入します ** LDAはRPGプログラム内のデータ構造UDSを介してアクセスされます** LDAとユーザースイッチ(フラグ)は後続のプログラムでも引き続き使用可能です** 別途設定するまで** 呼び出されたサブプロシージャのメンバーとロードされたプログラムのソースコードを検査する必要がある** LDAとユーザースイッチが実際に読み取られたり変更されたりするかどうか// PR102 をロード// FILE NAME-PAYMAST、DISP-SHR DISP-SHRはファイルが共有されているか、排他的アクセスであるかを意味します** 他のプログラムもPAYMASTを同時に使用できます// ファイル名-PFILE、ラベル-PFILE1 NAME/LABELはRPGファイル名参照時に使用されます** 実際のディスクファイルラベルは異なります// 走る// RETURN 呼び出しプロシージャに戻る、そうでない場合はジョブ終了このプロシージャ メンバーには、さまざまな OCL ステートメント、プロシージャ制御式 (PCE)、リソース (主にファイルが割り当てられる)、およびいくつかのジョブ ステップ (プログラムが実行される) が組み込まれています。
コメントは1列目にアスタリスクを付けて表し、それ以外は自由形式です。また、末尾のカンマのように次の行への文の継続を示す指示がない場合、文の論理的な終了位置の後に配置することもできます。
外部リンク
IBM は、OCL 36 を含むマニュアルをオンラインで無料でダウンロードできるようにしています。
- 「System/36 環境プログラミング」(1995)v6r1
- 「System/36 環境リファレンス」(1995)v6r1