目次
新しい機能
本書について
本書の対象読者
前提条件および関連情報
V5R4 における新しい機能
V5R2 および V5R3 以降の本書に対する変更
V5R3 での変更点
V5R2 での変更点
V5R1 での変更点
V4R4 での変更点
V4R2 での変更点
V3R7 での変更点
V3R6/V3R2 での変更点
V3R1 での変更点
工業規格
使用承諾について
ILE COBOL 構文表記法
構文図の読み方
文書化のための構文の識別
制御言語 (CL) 入力コードの解釈
ILE COBOL プログラムのコンパイル、実行、およびデバッグ
はじめに
Integrated Language Environment
実行可能 ILE COBOL プログラム・オブジェクト作成の主要なステップ
ILE COBOL ソース・プログラムの設計
ソース・メンバーへのソース・ステートメントの入力
ソース・プログラムをコンパイルしてモジュール・オブジェクトにする
プログラム・オブジェクトの作成
プログラム・オブジェクトの実行
プログラムのデバッグ
その他の適用業務開発ツール
IBM WebSphere Development Studio for iSeries
WebSphere Development Studio Client for iSeries
ソース・メンバーへのソース・ステートメントの入力
ライブラリーおよびソース物理ファイルの作成
原始ステートメント入力ユーティリティーを用いてソース・ステートメントを入力する
COBOL ソース・ファイルの形式
SEU の開始
SEU で COBOL 構文検査機能を使用する
ソース・メンバーへのソース・ステートメントの入力の例
コード化文字セット ID の使用
CCSID をソース物理ファイルに割り当てる
CCSID の異なる複数のコピー・メンバーをソース・ファイルに含める
SEU での COBOL 構文検査機能用 CCSID の設定
CCSID をロケールに割り当てる
実行時 CCSID に関する考慮事項
ILE ソース・デバッガーで異なる複数の CCSID を処理する
ソース・プログラムのモジュール・オブジェクトへのコンパイル
モジュール・オブジェクトの定義
COBOL モジュールの作成 (CRTCBLMOD) コマンドの使用
プロンプト画面からの CRTCBLMOD コマンドの使用
CRTCBLMOD コマンドの構文
CRTCBLMOD コマンドのパラメーター
ソース・プログラムをコンパイルしてモジュール・オブジェクトにする例
異なるターゲット・リリースの指定
CRTCBLMOD の国別言語ソート・シーケンスの指定
プロファイリング・データの収集
日付、時刻、およびタイム・スタンプのデータ・タイプの指定
PROCESS ステートメントを使用したコンパイラー・オプションの指定
PROCESS ステートメントのオプション
複数のソース・プログラムのコンパイル
PROCESS ステートメント内での COPY の使用
コンパイラー出力について
リストの形式の指定
SEU を使用したコンパイラー・リストのブラウズ
プログラムとリストのサンプル
プログラム・オブジェクトの作成
プログラム・オブジェクトの定義
バインディング・プロセス
プログラム作成 (CRTPGM) コマンドの使用
複数のモジュールをバインドして 1 つのプログラム・オブジェクトにする例
バインド COBOL PGM の作成 (CRTBNDCBL) コマンドの使用
プロンプト画面での CRTBNDCBL コマンドの使用
CRTBNDCBL コマンドの構文
CRTBNDCBL コマンドのパラメーター
CRTBNDCBL からの CRTPGM の暗黙呼び出し
1 つのモジュールをバインドして 1 つのプログラム・オブジェクトにする例
CRTBNDCBL の国別言語ソート・シーケンスの指定
バインダー・リストの読み方
サンプルのバインダー・リスト
モジュール・オブジェクトの修正およびプログラム・オブジェクトの再バインディング
ILE COBOL ソース・プログラムの変更
最適化レベルの変更
モジュール識別情報の除去
パフォーマンス収集の使用可能化
収集レベル
プロシージャー
サービス・プログラムの作成
サービス・プログラムの定義
サービス・プログラムの使用
ILE COBOL サービス・プログラムのバインダー言語コマンドの作成
サービス・プログラム作成 (CRTSRVPGM) コマンドの使用
サービス・プログラムの作成の例
入力としてのバインダー・ソース検索 (RTVBNDSRC) コマンドの使用
サービス・プログラム内のエクスポート済み ILE プロシージャーの呼び出し
サービス・プログラムとのデータの共用
サービス・プログラム内の ILE COBOL プログラムの取り消し
ILE COBOL プログラムの実行
CL CALL コマンドを使用した COBOL プログラムの実行
CL CALL コマンドによる ILE COBOL プログラムへのパラメーターの受け渡し
HLL CALL ステートメントを使用した ILE COBOL プログラムの実行
メニュー方式のアプリケーションからの ILE COBOL プログラムの実行
ユーザー作成コマンドを使用した ILE COBOL プログラムの実行
ILE COBOL プログラムの終了
実行時照会メッセージへの応答
プログラムのデバッグ
ILE ソース・デバッガー
デバッグ・コマンド
デバッグ・セッションのためのプログラム・オブジェクトの準備
リスト・ビューの使用
ソース・ビューの使用
ステートメント・ビューの使用
ILE ソース・デバッガーの開始
STRDBG の例
デバッグ・オプションの設定
デバッグ・セッションでのプログラム・オブジェクトの実行
プログラム・オブジェクトおよびサービス・プログラムのデバッグ・セッションへの追加
プログラム・オブジェクトまたはサービス・プログラムをデバッグ・セッションから除去する
プログラム・ソースの表示
表示されているモジュール・オブジェクトの変更
表示されているモジュール・オブジェクトのビューの変更
停止点の設定と除去
無条件ジョブ停止点の設定と除去
無条件スレッド停止点の設定と除去
条件付きジョブ停止点の設定と除去
条件付きスレッド停止点の設定と除去
すべての停止点の除去
ウォッチ条件の設定と除去
ウォッチの特性
ウォッチ条件の設定
活動状態のウォッチの表示
ウォッチ条件の除去
ウォッチ条件の設定例
停止点後のプログラム・オブジェクトまたは ILE プロシージャーの実行
プログラム・オブジェクトまたは ILE プロシージャーの再開
プログラム・オブジェクトまたは ILE プロシージャーのステップスルー
変数、定数名、式、レコード、グループ項目、および配列の表示
変数および式の表示
レコード、グループ項目、および配列の表示
変数の値の変更
変数、式、またはコマンドに名前を割り当てる
ILE ソース・デバッガーの各国語サポート
ロケールに基づく変数の変更と表示
ユーザー定義データ・タイプについてのサポート
ILE COBOL プログラミング考慮事項
データ項目の処理
ILE COBOL における一般的な数値の表示 (PICTURE 文節)
数字項目の定義
独立の符号位置 (移植性のため)
表示可能記号のための余分の記憶位置 (数字編集)
計算データの表記 (USAGE 文節)
外部 10 進数 (USAGE DISPLAY) 項目
内部 10 進数 (USAGE PACKED-DECIMAL または COMP-3)
2 進数 (USAGE BINARY または COMP-4) 項目
内部浮動小数点 (USAGE COMP-1 および COMP-2) 項目
外部浮動小数点 (USAGE DISPLAY) 項目
ユーザー定義データ・タイプの作成
データ・フォーマットの変換
変換の意味
変換に要する時間
変換と精度
符号表記と処理
*CHGPOSSN コンパイラー・オプションの指定
互換性のないデータのチェック (数値クラス・テスト)
数値クラス・テストの実行方法
算術演算の実行
COMPUTE およびその他の演算ステートメント
演算式
数値組み込み関数
データ項目の変換 (組み込み関数)
データ項目の評価 (組み込み関数)
ロケールに基づいて日付と時刻をフォーマット設定する (LOCALE-DATE、LOCALE-TIME)
固定小数点演算と浮動小数点演算
浮動小数点評価
固定小数点の評価
算術比較 (関係条件)
固定小数点評価と浮動小数点評価の例
テーブル項目の処理
複数テーブル項目の処理 (ALL 添え字)
西暦 2000 年問題について
長期的解決策
短期的解決策
日時データ・タイプを処理する
日時データ項目の MOVE に関する考慮事項
ロケールの処理
iSeries でのロケールの作成
アプリケーション用の現行ロケールの設定
ロケールの識別と有効範囲
LC_MONETARY ロケール・カテゴリー
LC_TIME カテゴリー
LC_TOD カテゴリー
ヌル終了ストリングの操作
例: ヌル終了ストリング
ILE COBOL プログラム相互間での呼び出しとデータ共用
実行時間に関係したさまざまな概念
活動化および活動化グループ
COBOL 実行単位
管理境界
メイン・プログラムとサブプログラム
ストレージの初期設定
他のプログラムへの制御の移動
ILE COBOL プログラムの呼び出し
呼び出し先のプログラムとプロシージャーのリンケージ・タイプの識別
ネストされたプログラムの呼び出し
静的プロシージャー呼び出しと動的プログラム呼び出しの使用
CALL id の使用
CALL プロシージャー・ポインターの使用
再帰呼び出しの使用
ILE COBOL プログラムからの戻り
メイン・プログラムからの戻り
サブプログラムからの戻り
OPM COBOL/400 実行単位で定義された STOP RUN のセマンティクスの維持
ILE COBOL プログラムからの戻りの例
戻りコード情報の受け渡し (RETURN-CODE 特殊レジスター)
プログラム間でのデータの受け渡しと共用
ローカル・データとグローバル・データの比較
CALL...BY REFERENCE、BY VALUE、または BY CONTENT を使用したデータの受け渡し
EXTERNAL データの共用
EXTERNAL ファイルの共用
ポインターを使用したデータの受け渡し
データ域を使用したデータの受け渡し
EXIT PROGRAM、STOP RUN、GOBACK、および CANCEL を内部ファイルで使用した場合の効果
ILE COBOL プログラムの取り消し
別の ILE COBOL プログラムからの取り消し
別の言語からの取り消し
COBOL および eBusiness ワールド
COBOL および XML
COBOL および MQSeries
COBOL および Java プログラム
システム要件
COBOL および PCML
COBOL および JNI
COBOL および Java のデータ・タイプ
COBOL 用の JNI コピー・メンバー
XML 入力の処理
COBOL の XML パーサー
XML 文書へのアクセス
XML 文書の構文解析
XML イベントの処理
XML を処理するプロシージャーの記述
XML 文書のエンコード方式の理解
コード・ページの指定
他のコード・ページの文書の構文解析
XML 文書中のエラーの処理
未処理の例外
例外の処理
構文解析の強制終了
CCSID 矛盾例外
XML 出力の作成
XML 出力の生成
例: XML の生成
XML 出力の拡張
例: XML 出力の拡張
例: エレメント名に含まれるハイフンを下線に変換する
生成された XML 出力のエンコードの制御
XML 出力の生成中のエラーの処理
別の言語によるデータの呼び出しと共用
ILE C および VisualAge C++ プログラムおよびプロシージャーの呼び出し
ILE C プログラムまたはプロシージャーへのデータの引き渡し
ILE C プログラムまたはプロシージャーとの外部データの共用
ILE C プログラムまたはプロシージャーからの制御の戻り
ILE COBOL プログラムからの ILE C プロシージャー呼び出しの例
ILE C プロシージャー呼び出し例 1 のサンプル・コード
ILE C プロシージャー呼び出し例 2 のサンプル・コード
ILE C プロシージャー呼び出し例の作成および実行
ILE COBOL プログラムからの ILE C プログラム呼び出しの例
ILE C プログラム呼び出し例のサンプル・コード
ILE C プログラム呼び出し例の作成および実行
ILE RPG プログラムおよびプロシージャーの呼び出し
ILE RPG プログラムまたはプロシージャーへのデータの引き渡し
ILE RPG プログラムまたはプロシージャーからの制御の戻り
ILE CL プログラムおよびプロシージャーの呼び出し
ILE CL プログラムまたはプロシージャーへのデータの引き渡し
ILE CL プログラムまたはプロシージャーからの制御の戻り
OPM 言語の呼び出し
OPM COBOL/400 プログラムの呼び出し
EPM 言語の呼び出し
ILE COBOL プログラムからの CL コマンドの発行
ILE COBOL プログラムへの構造化照会言語 (SQL) ステートメントの組み込み
現在の西暦を取り出す ILE API の呼び出し
現在の西暦を取り出すための組み込み関数または ACCEPT ステートメントの使用法
IFS API の呼び出し
ILE COBOL プログラムでのポインターの使用
ポインターの定義
ポインターの位置合わせ
ポインター位置合わせを行うための FILE SECTION および WORKING-STORAGE SECTION の書き方
ポインターの再定義
NULL 形象定数を用いてポインターを初期設定する
ポインターの読み取りと書き込み
ポインターと LENGTH OF 特殊レジスターの併用
LINKAGE SECTION 項目のアドレスの設定
ADDRESS OF および ADDRESS OF 特殊レジスターの使用
MOVE ステートメントでのポインターの使用
CALL ステートメントにおけるポインターの使用
ポインターの値の調整
ポインターと API を使用してユーザー・スペースにアクセスする
ポインターを使用してチェーン・リストを処理する
プログラムとプロシージャーとの間でのポインターの受け渡し
チェーン・リストの終わりの検査
次のレコードの処理
別のプログラムから受け取るアドレスの増分
プロシージャー・ポインターによる入り口点アドレスの受け渡し
ILE COBOL プログラムをマルチスレッド化するための準備
マルチスレッド化環境でどのように言語エレメントが解釈されるか
実行単位の範囲を指定したエレメントの処理
プログラム呼び出しインスタンスの範囲を指定した要素の処理
マルチスレッド化サポートのための THREAD の選択
THREAD についての言語に関する制約事項
マルチスレッド化環境での制御転送
マルチスレッド化環境での ILE COBOL の制限
マルチスレッド化環境での ILE COBOL の使用例
マルチスレッド化の例のサンプル・コード
マルチスレッド化の例の作成および実行
ILE COBOL のエラーおよび例外の処理
ILE 条件処理
ILE COBOL プログラムの終了
エラー処理バインド可能アプリケーション・プログラム・インターフェース (API) の使用
意図的なダンプの開始
プログラム状況構造体
ストリング操作中のエラー処理
算術演算のエラー処理
ON SIZE ERROR 句
浮動小数点計算のエラー処理
入出力操作中のエラー処理
入出力 verb の処理
ファイル終了条件の検出 (AT END 句)
無効キー条件の検出 (INVALID KEY 句)
EXCEPTION/ERROR 宣言型プロシージャーの使用 (USE ステートメント)
ファイル状況キーによるエラーのタイプの判別
ソート・マージ操作のエラー処理
CALL ステートメントの例外処理
ユーザー作成のエラー処理ルーチン
一般的な例外とそのいくつかの原因
障害の後でのリカバリー
コミットメント制御によるファイルのリカバリー
TRANSACTION ファイルのリカバリー
ヌル可能フィールドを使用した操作中のエラーの処理
ロケール操作中のエラーの処理
ILE COBOL 入出力考慮事項
ファイルの定義
ファイル記述のタイプ
プログラム記述ファイルの定義
外部記述ファイルの定義
データ記述仕様 (DDS) を使用したファイルの記述
ファイルの処理
ファイルと入出力装置との関連付け
入出力スプールの指定
入力スプール
出力スプール
ファイル属性の指定変更
ファイル入出力の宛先変更
ファイルのロックおよび解放
レコードのロックおよび解放
ファイルにアクセスするためのオープン・データ・パスの共用
入力レコードの非ブロック化および出力レコードのブロック化
ファイル状況とフィードバック域の使用
FILE STATUS
OPEN-FEEDBACK 域
I-O-FEEDBACK 域
コミットメント制御の使用
コミットメント制御の有効範囲の指定
コミットメント制御を使用する例
ファイルのソートおよびマージ
ファイルの記述
ファイルのソート
ファイルのマージ
ソート基準の指定
入力プロシージャーの作成
出力プロシージャーの作成
入力プロシージャーと出力プロシージャーに関する制約事項
ソートまたはマージが正常に実行されたかどうかの判別
ソート操作またはマージ操作の未完終了
可変長レコードのソート
ファイルのソートおよびマージの例
SAA データ・タイプを使用したデータ項目の宣言
可変長フィールド
日付、時刻、およびタイム・スタンプのフィールド
ヌル可能フィールド
DBCS グラフィック・フィールド
可変長 DBCS グラフィック・フィールド
浮動小数点フィールド
外部接続装置へのアクセス
装置ファイルの種類
プリンターへのアクセス
プリンター・ファイルの名前の指定
プリンター・ファイルの記述
プリンター・ファイルへの書き出し
ILE COBOL プログラムでの FORMATFILE ファイルの使用例
テープ装置に保管されているファイルへのアクセス
テープ装置に保管されているファイルの名前の指定
テープ装置に格納されているファイルの記述
テープ装置に保管されているファイルの読み書き
ディスケット装置に保管されているファイルへのアクセス
ディスケット装置に格納されているファイルの名前の指定
ディスケット装置に保管されているファイルの記述
ディスケット装置に保管されているファイルの読み書き
ディスプレイ装置ファイルと ICF ファイルへのアクセス
DISK ファイルおよび DATABASE ファイルの使用
DISK ファイルと DATABASE ファイルの違い
ファイル編成と iSeries ファイル・アクセス・パス
DISK ファイルおよび DATABASE ファイルのファイル処理方法
順次ファイルの処理
相対ファイルの処理
索引付きファイルの処理
キーの降順でのファイル処理
可変長レコード・ファイルの処理
DISK ファイルおよび DATABASE ファイルの処理の例
順次ファイルの作成
順次ファイルの更新および拡張
相対ファイルの作成
相対ファイルの更新
相対ファイルの検索
索引付きファイルの作成
索引付きファイルの更新
i5/OS システム・ファイル
分散データ管理 (DDM) ファイル
非 i5/OS システムでの DDM ファイルの使用
DDM プログラミングに関する考慮事項
DDM 直接 (相対) ファイル・サポート
分散ファイル
データ処理の場合のオープンに関する考慮事項
分散データ処理が指定変更される場合
分散データ処理が指定変更されない場合
分散ファイルの入出力に関する考慮事項
分散データ・ファイル用 SQL ステートメントの追加
分散ファイルの処理例
制約付きファイルの処理
制約事項
制約の追加、修正および除去
制約が正常に追加または除去されたかの検査
操作の順序
検査制約付きヌル・フィールドの処理
制約違反の処理
参照制約または検査制約をサポートするデータベース機能
トランザクション・ファイルの使用
データ記述仕様を使用してトランザクション・ファイルを定義する
外部記述トランザクション・ファイルの処理
トランザクション・ファイルを使用したプログラムの作成
トランザクション・ファイルの名前の指定
トランザクション・ファイルの記述
トランザクション・ファイルの処理
トランザクション・ファイルを使用した基本的な照会プログラムの例
トランザクション・ファイルでの標識の使用
別個の標識域で標識を渡す
レコード域で標識を渡す
ILE COBOL プログラムでの標識の使用例
サブファイル・トランザクション・ファイルの使用
データ記述仕様を使用したサブファイルの定義
ディスプレイ・ファイルのためのサブファイルの使用
単一装置ファイルおよび複数装置ファイルへのアクセス
サブファイル・トランザクション・ファイルを使用したプログラムの作成
サブファイル・トランザクション・ファイルの名前の指定
サブファイル・トランザクション・ファイルの記述
サブファイル・トランザクション・ファイルの処理
発注照会プログラムで WRITE SUBFILE を使用する例
支払更新プログラムで READ SUBFILE...NEXT MODIFIED および REWRITE SUBFILE を使用する例
付録および後付け
付録A. 言語サポートのレベル
COBOL 標準規格
ILE COBOL の言語サポートのレベル
システム・アプリケーション体系 (SAA) 共通プログラミング・インターフェース (CPI) のサポート
付録B. 連邦情報処理標準 (FIPS) 標識機能
付録C. ILE COBOL メッセージ
COBOL メッセージについての説明
重大度レベル
コンパイル・メッセージ
プログラム・リスト
対話式メッセージ
メッセージへの応答
付録D. 2 バイト文字セットを使用する国別言語のサポート
リテラルの中で DBCS 文字を使用する
DBCS 文字を含むリテラルの指定方法
COBOL コンパイラーが DBCS 文字を検査する方法
混合リテラルを次の行に継続する方法
構文検査機能に関する考慮事項
COBOL プログラム内で DBCS 文字を使用できる場所
コメントの書き方
見出し部 (IDENTIFICATION DIVISION)
環境部 (ENVIRONMENT DIVISION)
構成セクション (CONFIGURATION SECTION)
入出力セクション (INPUT-OUTPUT SECTION)
ファイル制御 (FILE CONTROL) 段落
データ部 (DATA DIVISION)
ファイル・セクション (FILE SECTION)
作業用記憶域セクション (WORKING-STORAGE SECTION)
手続き部 (PROCEDURE DIVISION)
組み込み関数
条件式
入出力ステートメント
データ操作ステートメント
プロシージャー分岐ステートメント
テーブル処理 -- SEARCH ステートメント
SORT/MERGE
コンパイラー指示ステートメント
COPY ステートメント
REPLACE ステートメント
TITLE ステートメント
プログラム間の連絡
FIPS 標識機能
COBOL プログラム・リスト
照合順序の関係する組み込み関数
付録E. COBOL 定様式ダンプの例
付録F. XML 参照資料
継続可能な XML 例外
継続不可能な XML 例外
XML 順応
XML 生成例外
付録G. OPM COBOL/400 および ILE COBOL の間のマイグレーションおよび互換性に関する考慮事項
マイグレーションの方法
互換性に関する考慮事項
一般的な考慮事項
CL コマンド
コンパイラー指示ステートメント
環境部 (ENVIRONMENT DIVISION)
データ部 (DATA DIVISION)
手続き部 (PROCEDURE DIVISION)
アプリケーション・プログラミング・インターフェース (API)
実行時
付録H. 略語の用語集
付録I. ILE COBOL の資料
オンライン情報
ハードコピー情報
参照文献
索引
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.