使用手引書 - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M060009/J2UZ...ii 第14章...

702
J2UZ-7131-01Z0(A) NetCOBOL V9.0 使用手引書

Transcript of 使用手引書 - Fujitsusoftware.fujitsu.com/jp/manual/manualfiles/M060009/J2UZ...ii 第14章...

  • J2UZ-7131-01Z0(A)

    NetCOBOL V9.0

    使用手引書

  • i

    まえがき

    本書の目的 本書は、NetCOBOLを利用したCOBOLプログラムの作成、そのプログラムの実行およびデバッグ

    の方法について説明しています。

    また、COBOLを使用したオブジェクト指向プログラミング機能についても説明しています。

    COBOLの文法規則については、“COBOL文法書”をお読みください。

    本書の読者 本書は、NetCOBOLを使用してCOBOLプログラムを開発する方を対象に書かれています。本書を

    読むためには、以下の知識が必要です。

    ● COBOLの文法に関する基本的な知識

    ● ご使用になるOSに関する基本的な知識

    本書の構成 本書の構成と内容は、以下のとおりです。

    第1章 概要

    この製品の動作環境および機能について説明しています。

    第2章 プログラムの書き方

    COBOLプログラムの書き方について説明しています。

    第3章 プログラムの翻訳とリンク

    COBOLプログラムを翻訳・リンクする方法について説明しています。

    第4章 プログラムの実行

    翻訳・リンクしたCOBOLプログラムを実行する方法について説明しています。

    第5章 プログラムのデバッグ

    この製品のデバッグ機能について説明しています。

    第6章 ファイル処理

    ファイルを使用する方法について説明しています。

    第7章 印刷処理

    データや帳票を印刷する方法について説明しています。

    第8章 サブプログラムを呼び出す~プログラム間連絡機能~

    プログラムからプログラムを呼び出す方法について説明しています。

    第9章 ACCEPT文およびDISPLAY文の使い方

    ACCEPT文およびDISPLAY文を使った機能として、小入出力機能、コマンド行引数の操作機能、

    および環境変数の操作機能の使い方について説明しています。

    第10章 SORT文およびMERGE文の使い方~整列併合機能~

    SORT文およびMERGE文を使って整列併合(ソート・マージ)を行う方法について説明しています。

    第11章 システムプログラムを記述するための機能

    システムプログラムを記述する場合に有効となる機能について説明しています。

    第12章 オブジェクト指向プログラミングとは

    オブジェクト指向プログラミングの概念について説明しています。

    第13章 オブジェクト指向プログラミング機能~基本的な使い方~

    オブジェクト指向プログラミング機能の基本的な使い方について説明しています。

  • ii

    第14章 オブジェクト指向プログラミング機能~さらに進んだ使い方~

    オブジェクト指向プログラミング機能のさらに進んだ使い方について説明しています。

    第15章 オブジェクト指向プログラムの開発と実行

    オブジェクト指向プログラムの開発方法および実行について説明しています。

    第16章 マルチスレッド

    マルチスレッドプログラムについて説明しています。

    第17章 Unicode

    Unicodeで動作するCOBOLアプリケーションの作成方法について説明しています。

    第18章 デバッガの使い方

    システムの標準のデバッガであるgdbを使ったデバッグについて説明しています。

    第19章 ファイルユーティリティ

    ファイルユーティリティの使い方について説明しています。

    第20章 分散開発支援機能

    UNIX系システムのアプリケーションの開発をWindows版製品を使用して行う場合の分散開発に

    ついて説明しています。

    付録A 翻訳オプション

    COBOLコンパイラに与える翻訳オプションについて説明しています。

    付録B 入出力状態一覧

    入出力文を実行したときに返却される入出力状態を示す値およびその意味について説明して

    います。

    付録C 広域最適化

    COBOLコンパイラが翻訳時に行う最適化の内容について説明しています。

    付録D 組込み関数の使用

    COBOLで使用できる組込み関数について説明しています。

    付録E 環境変数一覧

    この製品で使用する環境変数の一覧を記述しています。

    付録F 特殊な定数の書き方

    システム固有の定数の書き方について説明しています。

    付録G COBOLが提供するサブルーチン

    COBOLが提供するサブルーチンについて説明しています。

    付録H オブジェクト指向と従来機能の組合せ

    オブジェクト指向と従来機能の組合せについて説明しています。

    付録I データベース連携

    この製品をデータベースと連携して使用する場合の注意事項について説明しています。

    付録J 日本語コード系

    この製品で日本語処理を行う場合のコード系について説明しています。

    付録K ldコマンド

    COBOLコンパイラが生成した再配置可能プログラムを結合するときのldコマンドの入力形式お

    よび使い方について説明しています。

    付録L makeコマンドの活用

    COBOL開発でmakeコマンドを活用する方法について説明しています。

    付録M メッセージ一覧

    翻訳時、実行時に出力されるメッセージの意味および処置について説明しています。

  • iii

    付録N セキュリティ

    セキュリティについて概要を説明しています。

    本書の読みかた 本書は、目的別に次のようにお読みください。

    ● 本製品をはじめてお使いになる方 … 第1章

    ● COBOLプログラムの生成から実行までの操作を知りたい方 … 第2章~第4章

    ● COBOLの各種機能の使い方を知りたい方 … 第5章~第11章

    ● オブジェクト指向プログラミング機能の使い方を知りたい方 … 第12章~第15章

    ● この製品が提供するユーティリティの使い方を知りたい方 … 第18章

    本書の位置付け この製品および関連製品のマニュアルには、本書のほかに以下のマニュアルがあります。

    ● “COBOL文法書”

    ● “COBOL ファイルアクセスルーチン使用手引書”

    ● “例題プログラム”

    ● “MeFt説明書”

    ● Windows®版の“FORM説明書”

    ● Windows®版の“FORMのヘルプ”

    ● Windows®版の“PowerFORMのヘルプ”

    ● “PowerSORT 使用手引書”

    本文中では、OS名は略記しています。

    注意事項 本書の情報は、プログラミングサービス情報です。COBOLを使用してプログラムを開発する際

    に使用することができます。

    表記上の規約 本書は次の表記の規約で書かれています。

    書体および記号 意 味

    [参照] 参照先を示します。

    → 操作結果を示します。

    $ Bourne シェルのプロンプトを示します。

    % C シェルのプロンプトを示します。

    … この記号の直前の項目を、繰り返して指定できる

    ことを示します。

    あいうえお プログラム例中で、可変文字列を示します。可変

    文字列は、実際にはほかの文字列に置き換えます。

    例: PROGRAM-ID. プログラム名.

    → PROGRAM-ID. SAMPLE1.

    あい うえお

    または

    {あい |うえお}

    { }で囲まれた文字列の1つを選択することを示

    します。省略した場合、“_”(アンダーライン)の文

    字列が選択されたものとして扱われます。

    [ あいうえお ] [ ]で囲まれた文字列は省略できることを示しま

    す。

    その他の注意事項 ● 本書では、“COBOL文法書”で“原始プログラム”と記述されている用語を“ソースプログ

    ラム”と記述しています。

    ● 本書では、“Interstage Charset Manager”の“標準コード変換”を、“標準コード変換”

  • iv

    と記述しています。

    印刷マニュアル情報 本製品は以下の印刷マニュアルを提供しています。(有料)

    マニュアルコードを指定のうえ、ご購入ください。

    項番 マニュアル名称 マニュアルコード

    1 COBOL文法書 J2UZ-7121-01

    2 NetCOBOL 使用手引書 J2UZ-7131-01

    登録商標について Linuxは、Linus Torvalds氏の米国およびその他の国における登録商標あるいは商標です。

    UNIXは、米国およびその他の国におけるオープン・グループの登録商標です。

    Red Hat、RPMおよびRed Hatをベースとしたすべての商標とロゴは、Red Hat, Inc.の米国およ

    びその他の国における登録商標あるいは商標です。

    Intel、Itaniumは、Intel Corporationの登録商標です。

    その他の会社名または製品名は、それぞれ各社の商標または登録商標です。

    2006年 4月

    2006年 4月 初 版

    お願い

    ● 本書を無断で他に転載しないようお願いします。

    ● 本書は予告なしに変更されることがあります。

    All Rights Reserved,Copyright(C) 富士通株式会社 2005-2006

  • v

    謝辞

    COBOLの言語仕様は、データシステムズ言語協議会(COnference on DAta SYstems Languages)

    の作業によって開発された原仕様に基づくものであり、本書で記述される仕様もまたそれに由来

    する。データシステムズ言語協議会の要求によって、以下の文章を掲げる。

    COBOLは産業界の言語であって、いかなる会社、組織、団体等の占有物でもない。COBOLの委員

    会は、このプログラミング言語方式及び言語の正確さと機能について、いかなる保証を与えるも

    のでもなく、またそれに関連して、いかなる責任を負うものでもない。

    次に示す著作権者は、原仕様書の作成に当たって、それぞれの著作物の一部分を利用すること

    を承認した。この承認は、原仕様書をほかのCOBOLの仕様書で利用する場合にまで拡張されるも

    のである。

    ● FLOW-MATIC(スペリランド社の商標),Programming for the Univac(R) I and II, Data

    Automation Systems,スペリランド社 1958年,1959年,著作権.

    ● IBM Commercial Translator,図書番号 F28-8013,IBM社 1959年,著作権.

    ● FACT,図書番号 27A5260-2760,ミネアポリスハニウェル社1960年,著作権.

  • vi

  • vii

    目次 第1章 概要......................................................................................... 1 1.1 機能......................................................................................... 2

    1.1.1 COBOLの機能.............................................................................. 2

    1.1.2 この製品が提供するプログラムおよびユーティリティ......................................... 2

    1.2 開発環境..................................................................................... 4

    1.2.1 関連製品................................................................................. 4

    1.3 資源一覧..................................................................................... 6

    第2章 プログラムの書き方........................................................................... 9 2.1 プログラムの作成と編集...................................................................... 10

    2.1.1 ソースプログラムの作成.................................................................. 10

    2.1.2 登録集原文の作成........................................................................ 11

    2.2 プログラムの形式............................................................................ 12

    2.3 翻訳指示文.................................................................................. 13

    第3章 プログラムの翻訳とリンク.................................................................... 15 3.1 翻訳とリンク................................................................................ 16

    3.1.1 翻訳時に設定する環境変数................................................................ 16

    3.1.2 基本操作................................................................................ 17

    3.1.3 登録集(COPY文)を使ったプログラムの翻訳方法............................................ 18

    3.1.4 副プログラムを呼び出すプログラムの翻訳・リンク方法...................................... 20

    3.1.5 COBOLコンパイラが使用するファイル....................................................... 21

    3.1.6 COBOLコンパイラが出力する情報........................................................... 23

    3.2 実行可能プログラムの構造.................................................................... 37

    3.2.1 概要.................................................................................... 37

    3.2.2 結合の種類とプログラム構造.............................................................. 37

    3.2.3 単純構造の実行可能プログラムの作成方法.................................................. 40

    3.2.4 動的リンク構造の実行可能プログラムの作成方法............................................ 41

    3.2.5 動的プログラム構造の実行可能プログラムの作成方法........................................ 42

    3.3 cobolコマンド............................................................................... 43

    3.3.1 翻訳に関するオプション.................................................................. 43

    3.3.2 リンクに関するオプション................................................................ 48

    3.3.3 cobolコマンドの復帰値................................................................... 49

    第4章 プログラムの実行............................................................................ 51 4.1 実行環境の設定.............................................................................. 52

    4.1.1 実行環境................................................................................ 52

    4.1.2 実行環境の設定方法...................................................................... 54

    4.1.3 副プログラムのエントリ情報.............................................................. 58

    4.2 実行操作.................................................................................... 62

    4.2.1 プログラムの実行形式.................................................................... 62

    4.2.2 実行時オプションを指定する.............................................................. 62

    4.2.3 実行用の初期化ファイルを指定する........................................................ 63

    4.3 実行時メッセージの出力方法の指定............................................................ 65

    4.3.1 実行時メッセージの重大度指定............................................................ 65

    4.3.2 実行時メッセージのファイル出力.......................................................... 66

    4.3.3 実行時メッセージのSyslog出力............................................................ 66

    4.3.4 実行時メッセージのInterstage Business Application Serverの汎用ログへの出力.............. 67

    4.4 終了ステータス.............................................................................. 68

    4.5 注意事項.................................................................................... 69

    4.5.1 COBOLプログラムの実行時にスタックオーバーフローが発生する場合........................... 69

    4.5.2 COBOLプログラムの実行時に仮想メモリ不足が発生する場合................................... 74

  • viii

    4.5.3 英語環境下でのフォントについて.......................................................... 74

    第5章 プログラムのデバッグ........................................................................ 75 5.1 デバッグ機能の種類.......................................................................... 76

    5.2 TRACE機能の使い方........................................................................... 78

    5.2.1 デバッグ作業の流れ...................................................................... 78

    5.2.2 トレース情報............................................................................ 78

    5.2.3 注意事項................................................................................ 80

    5.3 CHECK機能の使い方........................................................................... 81

    5.3.1 デバッグ作業の流れ...................................................................... 81

    5.3.2 出力メッセージ.......................................................................... 81

    5.3.3 CHECK機能の使用例....................................................................... 83

    5.3.4 注意事項................................................................................ 87

    5.4 COUNT機能の使い方........................................................................... 89

    5.4.1 デバッグ作業の流れ...................................................................... 89

    5.4.2 COUNT情報............................................................................... 89

    5.4.3 COUNT機能を使用したプログラムのデバッグ................................................. 93

    5.4.4 注意事項................................................................................ 93

    5.5 メモリチェック機能の使い方.................................................................. 94

    5.5.1 デバッグ作業の流れ...................................................................... 94

    5.5.2 出力メッセージ.......................................................................... 95

    5.5.3 注意事項................................................................................ 95

    5.6 異常終了時の障害発生箇所の特定方法.......................................................... 96

    5.6.1 デバッグ作業の流れ...................................................................... 96

    5.6.2 障害発生箇所の特定方法.................................................................. 97

    第6章 ファイル処理............................................................................... 109 6.1 ファイルの種類............................................................................. 110

    6.1.1 ファイルの種類と特徴................................................................... 110

    6.1.2 レコードの設計......................................................................... 112

    6.1.3 ファイルの処理方法..................................................................... 113

    6.2 レコード順ファイルの使い方................................................................. 115

    6.2.1 レコード順ファイルの定義............................................................... 115

    6.2.2 レコード順ファイルのレコードの定義..................................................... 116

    6.2.3 レコード順ファイルの処理............................................................... 118

    6.3 行順ファイルの使い方....................................................................... 120

    6.3.1 行順ファイルの定義..................................................................... 120

    6.3.2 行順ファイルのレコードの定義........................................................... 120

    6.3.3 行順ファイルの処理..................................................................... 121

    6.3.4 注意事項............................................................................... 124

    6.4 相対ファイルの使い方....................................................................... 125

    6.4.1 相対ファイルの定義..................................................................... 125

    6.4.2 相対ファイルのレコードの定義........................................................... 127

    6.4.3 相対ファイルの処理..................................................................... 127

    6.5 索引ファイルの使い方....................................................................... 133

    6.5.1 索引ファイルの定義..................................................................... 133

    6.5.2 索引ファイルのレコードの定義........................................................... 135

    6.5.3 索引ファイルの処理..................................................................... 136

    6.6 入出力エラー処理........................................................................... 142

    6.6.1 AT END指定............................................................................. 142

    6.6.2 INVALID KEY指定........................................................................ 142

    6.6.3 FILE STATUS句.......................................................................... 142

    6.6.4 誤り処理手続き......................................................................... 143

    6.6.5 入出力エラーが発生したときの実行結果................................................... 143

  • ix

    6.7 ファイル処理の実行......................................................................... 145

    6.7.1 ファイルの割当て....................................................................... 145

    6.7.2 ファイル処理の結果..................................................................... 148

    6.7.3 ファイルの排他制御..................................................................... 149

    6.8 その他のファイル機能....................................................................... 153

    6.8.1 性能向上のための機構................................................................... 154

    6.8.2 ファイル書込みに関する機構............................................................. 155

    6.8.3 COBOLファイルアクセスルーチン.......................................................... 156

    6.8.4 ファイル追加書き....................................................................... 156

    6.8.5 ファイルの連結......................................................................... 157

    第7章 印刷処理................................................................................... 159 7.1 印刷方法の種類............................................................................. 160

    7.1.1 各印刷方法の概要....................................................................... 160

    7.1.2 印刷装置............................................................................... 162

    7.1.3 印字文字............................................................................... 162

    7.1.4 環境変数の設定......................................................................... 166

    7.1.5 印刷情報ファイル....................................................................... 169

    7.1.6 FCB.................................................................................... 173

    7.1.7 フォームオーバレイパターン............................................................. 175

    7.1.8 帳票定義体............................................................................. 176

    7.1.9 フォントテーブル....................................................................... 176

    7.1.10 特殊レジスタ.......................................................................... 179

    7.1.11 印刷ファイル/表示ファイルの決定方法................................................... 180

    7.1.12 帳票設計について...................................................................... 180

    7.1.13 印刷不可能な領域について.............................................................. 181

    7.1.14 I制御レコード/S制御レコード........................................................... 182

    7.1.15 Unicode(UTF-8)印刷について.......................................................... 186

    7.2 行単位のデータを印刷する方法............................................................... 188

    7.2.1 概要................................................................................... 188

    7.2.2 プログラムの記述....................................................................... 188

    7.2.3 プログラムの翻訳・リンク............................................................... 190

    7.2.4 プログラムの実行....................................................................... 190

    7.3 フォームオーバレイおよびFCBを使う方法...................................................... 192

    7.3.1 概要................................................................................... 192

    7.3.2 プログラムの記述....................................................................... 193

    7.3.3 プログラムの翻訳・リンク............................................................... 195

    7.3.4 プログラムの実行....................................................................... 195

    7.4 帳票定義体を使う印刷ファイルの使い方....................................................... 198

    7.4.1 概要................................................................................... 198

    7.4.2 プログラムの記述....................................................................... 202

    7.4.3 プログラムの翻訳・リンク............................................................... 205

    7.4.4 プログラムの実行....................................................................... 205

    7.5 表示ファイル(帳票印刷)の使い方........................................................... 207

    7.5.1 概要................................................................................... 207

    7.5.2 作業手順............................................................................... 207

    7.5.3 帳票定義体の作成....................................................................... 207

    7.5.4 プログラムの記述....................................................................... 209

    7.5.5 プログラムの翻訳・リンク............................................................... 211

    7.5.6 プリンタ情報ファイルの作成............................................................. 211

    7.5.7 プログラムの実行....................................................................... 212

    第8章 サブプログラムを呼び出す~プログラム間連絡機能~........................................... 213 8.1 呼出し関係の形態........................................................................... 214

  • x

    8.1.1 COBOLの言語間の環境.................................................................... 214

    8.1.2 動的プログラム構造..................................................................... 217

    8.2 COBOLプログラムからCOBOLプログラムを呼び出す............................................... 223

    8.2.1 呼出し方法............................................................................. 223

    8.2.2 二次入口............................................................................... 223

    8.2.3 制御の復帰とプログラムの終了........................................................... 223

    8.2.4 パラメタの受渡し....................................................................... 223

    8.2.5 データの共用........................................................................... 225

    8.2.6 復帰コード............................................................................. 227

    8.2.7 内部プログラム......................................................................... 228

    8.2.8 注意事項............................................................................... 229

    8.3 C言語プログラムとのリンク.................................................................. 231

    8.3.1 COBOLプログラムからCプログラムを呼び出す方法........................................... 231

    8.3.2 CプログラムからCOBOLプログラムを呼び出す方法........................................... 234

    8.3.3 データ型の対応......................................................................... 236

    8.3.4 C言語プログラムとのデータの共用........................................................ 238

    8.3.5 翻訳・リンク方法....................................................................... 239

    8.3.6 注意事項............................................................................... 242

    第9章 ACCEPT文およびDISPLAY文の使い方............................................................ 245 9.1 小入出力................................................................................... 246

    9.1.1 概要................................................................................... 246

    9.1.2 入出力先の種類と指定方法............................................................... 246

    9.1.3 システムの標準入出力(stdin/stdout)を使うプログラム................................... 247

    9.1.4 Systemwalkerのコンソールを使うプログラム............................................... 249

    9.1.5 Interstage Business Application Serverの汎用ログを使うプログラム....................... 252

    9.1.6 システムの標準エラー出力(stderr)を使うプログラム..................................... 254

    9.1.7 ファイルを使うプログラム............................................................... 254

    9.1.8 現在の日付および時刻の入力............................................................. 257

    9.1.9 任意の日付の入力....................................................................... 258

    9.2 コマンド行引数の取出し..................................................................... 260

    9.2.1 概要................................................................................... 260

    9.2.2 プログラムの記述....................................................................... 260

    9.2.3 プログラムの翻訳・リンク............................................................... 262

    9.2.4 プログラムの実行....................................................................... 262

    9.3 環境変数の操作機能......................................................................... 263

    9.3.1 概要................................................................................... 263

    9.3.2 プログラムの記述....................................................................... 263

    9.3.3 プログラムの翻訳・リンク............................................................... 265

    9.3.4 プログラムの実行....................................................................... 265

    第10章 SORT文およびMERGE文の使い方~整列併合機能~............................................... 267 10.1 ソート・マージ処理の概要.................................................................. 268

    10.2 ソートの使い方............................................................................ 269

    10.2.1 ソート処理の種類...................................................................... 269

    10.2.2 プログラムの記述...................................................................... 269

    10.2.3 プログラムの翻訳・リンク.............................................................. 272

    10.2.4 プログラムの実行...................................................................... 272

    10.3 マージの使い方............................................................................ 273

    10.3.1 マージ処理の種類...................................................................... 273

    10.3.2 プログラムの記述...................................................................... 274

    10.3.3 プログラムの翻訳・リンク.............................................................. 276

    10.3.4 プログラムの実行...................................................................... 276

    第11章 システムプログラムを記述するための機能.................................................... 277

  • xi

    11.1 SD機能の種類.............................................................................. 278

    11.2 ポインタ付けの使い方...................................................................... 279

    11.2.1 概要.................................................................................. 279

    11.2.2 プログラムの記述...................................................................... 279

    11.2.3 プログラムの翻訳・リンク.............................................................. 280

    11.2.4 プログラムの実行...................................................................... 280

    11.3 ADDR関数とLENG関数の使い方................................................................ 281

    11.3.1 概要.................................................................................. 281

    11.3.2 プログラムの記述...................................................................... 281

    11.3.3 プログラムの翻訳・リンク.............................................................. 281

    11.3.4 プログラムの実行...................................................................... 281

    11.4 終了条件なしのPERFORM文の使い方........................................................... 282

    11.4.1 概要.................................................................................. 282

    11.4.2 プログラムの記述...................................................................... 282

    11.4.3 プログラムの翻訳・リンク.............................................................. 282

    11.4.4 プログラムの実行...................................................................... 282

    第12章 オブジェクト指向プログラミングとは........................................................ 283

    12.1 オブジェクト指向の歴史的背景.............................................................. 284

    12.1.1 ソフトウェア工学以前.................................................................. 284

    12.1.2 構造化プログラミングの出現............................................................ 284

    12.1.3 モジュール化.......................................................................... 284

    12.1.4 抽象データ型.......................................................................... 285

    12.1.5 オブジェクト指向の誕生................................................................ 286

    12.2 オブジェクト指向の基本的な考え方.......................................................... 288

    12.2.1 オブジェクトとクラス.................................................................. 288

    12.2.2 オブジェクトインスタンスの作成・参照.................................................. 289

    12.2.3 メソッドの呼出し...................................................................... 290

    12.2.4 継承.................................................................................. 290

    12.2.5 多態と動的束縛........................................................................ 293

    12.3 オブジェクト指向のメリット................................................................ 295

    第13章 オブジェクト指向プログラミング機能 ~基本的な使い方~..................................... 297 13.1 ソース定義................................................................................ 298

    13.1.1 クラス定義............................................................................ 298

    13.1.2 ファクトリ定義........................................................................ 300

    13.1.3 オブジェクト定義...................................................................... 301

    13.1.4 メソッド定義.......................................................................... 303

    13.2 オブジェクトインスタンスの操作............................................................ 306

    13.2.1 メソッドの呼出し...................................................................... 306

    13.2.2 オブジェクトの寿命.................................................................... 310

    13.3 継承...................................................................................... 312

    13.3.1 継承の概念と実現...................................................................... 312

    13.3.2 FJBASEクラス.......................................................................... 315

    13.3.3 メソッドの上書き...................................................................... 317

    13.4 適合...................................................................................... 319

    13.4.1 適合の概念............................................................................ 319

    13.4.2 オブジェクト参照項目と適合チェック.................................................... 321

    13.4.3 翻訳時の適合チェックと実行時の適合チェック............................................ 322

    13.5 リポジトリ................................................................................ 324

    13.5.1 リポジトリファイルの概要.............................................................. 324

    13.5.2 リポジトリファイル更新の影響.......................................................... 325

    13.6 メソッドの束縛............................................................................ 327

    13.6.1 メソッドの静的束縛.................................................................... 327

  • xii

    13.6.2 メソッドの動的束縛と多態.............................................................. 327

    13.6.3 定義済みオブジェクト一意名SUPER....................................................... 330

    13.6.4 定義済みオブジェクト一意名SELF........................................................ 330

    13.7 少し進んだ使い方.......................................................................... 333

    13.7.1 メソッドのPROTOTYPE宣言............................................................... 333

    13.7.2 多重継承.............................................................................. 335

    13.7.3 行内呼出し............................................................................ 336

    13.7.4 オブジェクト指定子.................................................................... 338

    13.7.5 PROPERTY句............................................................................ 339

    13.7.6 初期化処理メソッドと終了処理メソッド.................................................. 343

    13.7.7 間接参照クラス........................................................................ 344

    13.7.8 相互参照クラス........................................................................ 346

    第14章 オブジェクト指向プログラミング機能 ~さらに進んだ使い方~................................. 353 14.1 例外処理.................................................................................. 354

    14.1.1 概要.................................................................................. 354

    14.1.2 例外オブジェクト...................................................................... 354

    14.1.3 RAISE文の動作......................................................................... 355

    14.1.4 RAISING指定のEXIT文の動作............................................................. 355

    14.2 C++プログラムとの連携..................................................................... 358

    14.2.1 概要.................................................................................. 358

    14.2.2 C++連携の方法......................................................................... 358

    14.2.3 C++連携の概要......................................................................... 358

    14.2.4 C++連携のプログラム手順............................................................... 361

    14.2.5 COBOLからの利用....................................................................... 363

    14.2.6 サンプルプログラム.................................................................... 363

    14.3 オブジェクトの永続化...................................................................... 367

    14.3.1 オブジェクトの永続化とは.............................................................. 367

    14.3.2 概要.................................................................................. 367

    14.3.3 クラス構造の例........................................................................ 367

    14.3.4 索引ファイルとオブジェクトの対応...................................................... 368

    14.3.5 オブジェクトの保存/復元............................................................... 371

    14.3.6 処理の流れ............................................................................ 373

    14.4 ANY LENGTH句を使用したプログラミング...................................................... 375

    14.4.1 文字列を扱うクラス.................................................................... 375

    14.4.2 ANY LENGTH句の使用.................................................................... 376

    第15章 オブジェクト指向プログラムの開発と実行.................................................... 379 15.1 オブジェクト指向プログラミングで使用する資源.............................................. 380

    15.2 開発手順.................................................................................. 381

    15.3 クラスの設計.............................................................................. 382

    15.4 使用するクラスの選定...................................................................... 383

    15.5 プログラム構造............................................................................ 385

    15.5.1 翻訳単位とリンク単位.................................................................. 385

    15.5.2 プログラム構造の概要.................................................................. 385

    15.6 翻訳処理.................................................................................. 391

    15.6.1 リポジトリファイルと翻訳の手順........................................................ 391

    15.6.2 動的プログラム構造での翻訳処理........................................................ 395

    15.7 リンク処理................................................................................ 398

    15.7.1 リンク関係とリンクの手順.............................................................. 398

    15.7.2 動的プログラム構造でのリンク処理...................................................... 402

    15.7.3 共用オブジェクトファイルの構成とファイル名............................................ 402

    15.7.4 クラスとメソッドのエントリ情報........................................................ 402

    15.8 クラスの公開.............................................................................. 406

  • xiii

    15.9 実行時の注意事項.......................................................................... 407

    15.9.1 スタックオーバーフロー................................................................ 407

    15.9.2 オブジェクトインスタンスのブロック化.................................................. 407

    第16章 マルチスレッド............................................................................ 411 16.1 概要...................................................................................... 412

    16.1.1 特徴.................................................................................. 412

    16.2 マルチスレッドのメリット.................................................................. 413

    16.2.1 スレッドとは.......................................................................... 413

    16.2.2 マルチスレッドモデルとプロセスモデル.................................................. 413

    16.2.3 マルチスレッドの効果.................................................................. 414

    16.3 COBOLプログラムの動作..................................................................... 416

    16.3.1 実行環境と実行単位.................................................................... 416

    16.3.2 マルチスレッドモデルのプログラムのデータの扱い........................................ 418

    16.4 スレッド間の資源の共有.................................................................... 426

    16.4.1 資源の共有............................................................................ 426

    16.4.2 競合状態.............................................................................. 426

    16.4.3 COBOLでの資源の共有................................................................... 428

    16.5 基本的な使い方............................................................................ 434

    16.5.1 動的プログラム構造.................................................................... 434

    16.5.2 入出力機能の利用...................................................................... 434

    16.5.3 印刷機能の利用........................................................................ 437

    16.5.4 DISPLAY文およびACCEPT文の利用......................................................... 437

    16.5.5 オブジェクト指向プログラミング機能の利用.............................................. 440

    16.5.6 連携機能の利用........................................................................ 440

    16.5.7 多重動作ができないプログラムの呼出し.................................................. 441

    16.6 少し進んだ使い方.......................................................................... 442

    16.6.1 入出力機能の利用...................................................................... 442

    16.6.2 CプログラムからCOBOLプログラムをスレッドとして起動する方法............................ 448

    16.6.3 スレッド間で実行単位の資源を引き継ぐ方法.............................................. 452

    16.7 翻訳から実行までの方法.................................................................... 459

    16.7.1 翻訳とリンク.......................................................................... 459

    16.7.2 実行.................................................................................. 460

    16.7.3 マルチスレッドモデルとプロセスモデルの混在チェック.................................... 461

    16.8 マルチスレッドモデルのプログラムのデバッグ方法............................................ 462

    16.8.1 マルチスレッドモデルのデバッグ........................................................ 462

    16.8.2 マルチスレッドモデルのデバッグ機能.................................................... 462

    16.9 スレッド同期制御サブルーチン.............................................................. 466

    16.9.1 データロックサブルーチン.............................................................. 466

    16.9.2 オブジェクトロックサブルーチン........................................................ 468

    16.9.3 エラーコード.......................................................................... 470

    第17章 Unicode................................................................................... 473 17.1 背景...................................................................................... 474

    17.2 Unicodeとは............................................................................... 475

    17.3 表現形式.................................................................................. 477

    17.4 Unicodeサポート概要....................................................................... 478

    17.4.1 資源.................................................................................. 478

    17.4.2 表現形式.............................................................................. 478

    17.4.3 言語要素.............................................................................. 479

    17.4.4 コード系の混在........................................................................ 480

    17.5 Unicodeアプリケーションの作成............................................................. 482

    17.5.1 プログラムの作成、編集................................................................ 482

    17.5.2 翻訳、結合、実行...................................................................... 482

  • xiv

    17.6 コーディング上の注意点.................................................................... 483

    17.6.1 半角カナについて...................................................................... 483

    17.6.2 文字定数.............................................................................. 483

    17.6.3 項目の再定義.......................................................................... 483

    17.6.4 転記.................................................................................. 484

    17.6.5 比較.................................................................................. 485

    17.6.6 ACCEPT/DISPLAY文...................................................................... 485

    17.6.7 COBOLファイル......................................................................... 486

    17.7 実行時の注意点............................................................................ 490

    17.7.1 メッセージを出力するファイル.......................................................... 490

    17.7.2 フォントについて...................................................................... 490

    17.8 関連製品連携.............................................................................. 491

    17.8.1 FORM/MeFt............................................................................. 491

    17.8.2 他言語間結合.......................................................................... 491

    第18章 デバッガの使い方.......................................................................... 493 18.1 デバッガの概要............................................................................ 494

    18.1.1 実行プログラムのデバッグ.............................................................. 494

    18.1.2 coreファイルの解析.................................................................... 494

    18.1.3 実行中のプロセスのデバッグ............................................................ 494

    18.2 デバッグ作業の準備........................................................................ 495

    18.2.1 デバッガの環境設定.................................................................... 495

    18.2.2 翻訳時のオプション、および、ソースプログラムの記述がデバッグに与える影響について...... 495

    18.2.3 デバッグするために必要な資源.......................................................... 496

    18.2.4 デバッグしやすいプログラムを作成するための注意事項.................................... 497

    18.2.5 デバッガを使用する場合の注意事項...................................................... 497

    18.3 デバッグの手順............................................................................ 498

    18.4 デバッガの起動............................................................................ 499

    18.4.1 実行プログラムデバッグ時のデバッガの起動.............................................. 499

    18.4.2 coreファイル解析時のデバッガの起動.................................................... 499

    18.4.3 実行中プロセスデバッグ時のデバッガの起動.............................................. 499

    18.5 デバッガの操作............................................................................ 500

    18.5.1 中断点の設定.......................................................................... 500

    18.5.2 中断点一覧の表示...................................................................... 501

    18.5.3 中断点の削除.......................................................................... 501

    18.5.4 実行の開始............................................................................ 501

    18.5.5 実行の再開............................................................................ 502

    18.5.6 データ(式)の表示.................................................................... 502

    18.5.7 データ一覧の表示...................................................................... 505

    18.5.8 メモリの表示.......................................................................... 505

    18.5.9 呼び出し経路の表示.................................................................... 506

    18.5.10 ソースファイルの表示................................................................. 506

    18.5.11 ヘルプ............................................................................... 506

    18.5.12 デバッガの終了....................................................................... 507

    18.6 デバッグの例.............................................................................. 508

    18.6.1 ソースプログラムでのデバッグ.......................................................... 509

    18.6.2 アセンブラを使ったデバッグ............................................................ 511

    第19章 ファイルユーティリティ.................................................................... 515 19.1 概要...................................................................................... 516

    19.2 ファイルユーティリティの機能.............................................................. 517

    19.2.1 機能概要.............................................................................. 517

    19.2.2 ファイルの操作方法.................................................................... 517

    19.3 コマンドモードの使い方.................................................................... 521

  • xv

    19.3.1 変換.................................................................................. 521

    19.3.2 ロード................................................................................ 522

    19.3.3 アンロード............................................................................ 523

    19.3.4 表示.................................................................................. 524

    19.3.5 整列.................................................................................. 527

    19.3.6 属性.................................................................................. 529

    19.3.7 復旧.................................................................................. 530

    19.3.8 再編成................................................................................ 530

    第20章 分散開発支援機能.......................................................................... 533 20.1 分散開発の概要............................................................................ 534

    20.1.1 分散開発のメリット.................................................................... 534

    20.1.2 分散開発の機能範囲.................................................................... 534

    20.2 分散開発支援機能.......................................................................... 537

    付録A 翻訳オプション............................................................................. 539 A.1 翻訳オプション一覧......................................................................... 539

    A.2 翻訳オプションの指定形式................................................................... 540

    A.2.1 ALPHAL (英小文字の扱い).............................................................. 540

    A.2.2 ASCOMP5 (2進項目の解釈の指定)........................................................ 541

    A.2.3 BINARY (2進項目の扱い)............................................................... 541

    A.2.4 CHECK (CHECK機能の使用の可否)........................................................ 542

    A.2.5 CODECHK (実行時のコード系チェックの指定)............................................. 543

    A.2.6 CONF (規格の違いによるメッセージの出力の可否)........................................ 544

    A.2.7 COPY (登録集原文の表示).............................................................. 544

    A.2.8 COUNT (COUNT機能の使用の可否)........................................................ 544

    A.2.9 CREATE (創成ファイルの指定).......................................................... 545

    A.2.10 CURRENCY (通貨編集用文字の扱い)..................................................... 545

    A.2.11 DLOAD (プログラム構造の指定)........................................................ 545

    A.2.12 DUPCHAR (重複文字の扱い)............................................................ 546

    A.2.13 EQUALS (SORT文での同一キーデータの処理方法)......................................... 546

    A.2.14 FLAG (診断メッセージのレベル)....................................................... 547

    A.2.15 FLAGSW (COBOL文法の言語要素に対しての指摘メッセージ表示の可否)...................... 547

    A.2.16 INITVALUE (作業場所節でのVALUE句なし項目の扱い)..................................... 548

    A.2.17 KANA (文字コードの扱い)............................................................. 548

    A.2.18 LALIGN (連絡節のデータ宣言の扱い)................................................... 548

    A.2.19 LANGLVL (ANSI COBOL規格の指定)...................................................... 550

    A.2.20 LINECOUNT (翻訳リストの1ページあたりの行数)......................................... 550

    A.2.21 LINESIZE (翻訳リストの1行あたりの文字数)............................................ 550

    A.2.22 LIST (目的プログラムリストの出力の可否)............................................. 551

    A.2.23 MAIN (主プログラム/副プログラムの指定).............................................. 551

    A.2.24 MAP (データマップリスト、プログラム制御情報リストおよびセクションサイズリストの出力の可

    否)......................................................................................... 551

    A.2.25 MESSAGE (オプション情報リスト、翻訳単位統計情報リストの出力の可否).................. 552

    A.2.26 MODE (ACCEPT文の動作の指定)......................................................... 552

    A.2.27 NAME (翻訳単位ごとのオブジェクトファイルの出力の可否)............................... 553

    A.2.28 NCW (日本語利用者語の文字集合の指定)................................................ 553

    A.2.29 NSPCOMP (日本語空白の比較方法の指定)................................................ 554

    A.2.30 NUMBER (ソースプログラムの一連番号領域の指定)....................................... 555

    A.2.31 OBJECT (目的プログラムの出力の可否)................................................. 555

    A.2.32 OPTIMIZE (広域最適化の扱い)......................................................... 556

    A.2.33 QUOTE/APOST (表意定数QUOTEの扱い)................................................... 556

    A.2.34 RCS(Unicode環境での日本語項目の扱い)................................................ 556

    A.2.35 RSV (予約語の種類).................................................................. 557

  • xvi

    A.2.36 SAI (ソース解析情報ファイルの出力の可否)............................................ 557

    A.2.37 SDS (符号付き10進項目の符号の整形の可否)............................................ 558

    A.2.38 SHREXT (マルチスレッドモデルのプログラムの外部属性に関する扱い)..................... 558

    A.2.39 SMSIZE (PowerSORTが使用するメモリ容量を指定)........................................ 558

    A.2.40 SOURCE (ソースプログラムリストの出力の可否)......................................... 559

    A.2.41 SRF (正書法の種類).................................................................. 559

    A.2.42 SSIN (ACCEPT文のデータの入力先)..................................................... 560

    A.2.43 SSOUT (DISPLAY文のデータの出力先)................................................... 560

    A.2.44 STD1 (英数字の文字の大小順序の指定)................................................. 561

    A.2.45 TAB (タブの扱い).................................................................... 561

    A.2.46 THREAD (マルチスレッドモデルのプログラム作成の指定)................................. 561

    A.2.47 TRACE (TRACE機能の使用の可否)....................................................... 562

    A.2.48 TRUNC (桁落とし処理の可否).......................................................... 562

    A.2.49 XREF (相互参照リストの出力の可否)................................................... 563

    A.2.50 ZWB (符号付き外部10進項目と英数字項目の比較)........................................ 563

    A.3 プログラム定義にだけ指定可能な翻訳オプション............................................... 564

    A.4 メソッド原型定義と分離されたメソッド定義間での翻訳オプション............................... 564

    付録B 入出力状態一覧............................................................................. 565 付録C 広域最適化................................................................................. 569 C.1 最適化の項目............................................................................... 569

    C.2 共通式の除去............................................................................... 569

    C.3 不変式の移動............................................................................... 570

    C.4 誘導変数の最適化........................................................................... 570

    C.5 PERFORM文の最適化.......................................................................... 571

    C.6 隣接転記の統合............................................................................. 571

    C.7 無駄な代入の除去........................................................................... 571

    C.8 広域最適化での注意事項..................................................................... 571

    付録D 組込み関数の使用........................................................................... 573 D.1 関数の型と記述の関係....................................................................... 573

    D.2 引数の型によって決定される関数の型......................................................... 575

    D.3 CURRENT-DATE関数を利用した西暦の取得....................................................... 575

    D.4 任意の基準日からの通日計算................................................................. 576

    D.5 組込み関数一覧............................................................................. 577

    付録E 環境変数一覧............................................................................... 579 付録F 特殊な定数の書き方......................................................................... 587 F.1 プログラム名定数........................................................................... 587

    F.2 原文名定数................................................................................. 587

    F.3 ファイル識別名定数......................................................................... 587

    F.4 外部名を指定するための定数................................................................. 587

    付録G COBOLが提供するサブルーチン................................................................ 589 G.1 システム情報を取得するサブルーチン......................................................... 589

    G.1.1 プロセスID取得サブルーチン............................................................. 589

    G.1.2 スレッドID取得サブルーチン............................................................. 590

    G.2 他言語連携で使用するサブルーチン........................................................... 590

    G.2.1 実行単位の開始サブルーチン............................................................. 590

    G.2.2 実行単位の終了サブルーチン............................................................. 591

    G.2.3 実行環境の閉鎖サブルーチン............................................................. 592

    G.3 日本語内部表現のコードセット(COBOL独自の16ビットワイドキャラクタ)操作.................... 593

    G.3.1 mbston16s.............................................................................. 593

    G.3.2 n16stombs.............................................................................. 595

    G.4 ファイルアクセスルーチン................................................................... 597

    付録H オブジェクト指向と従来機能の組合せ......................................................... 599

  • xvii

    H.1 クラス定義で使用できない機能............................................................... 599

    H.2 分離されたメソッド定義で使用できない機能................................................... 600

    付録I データベース連携........................................................................... 601 I.1 機能概要................................................................................... 601

    I.1.1 Oracle連携............................................................................. 601

    I.1.2 Symfoware連携.......................................................................... 602

    I.2 埋込みSQL文のデバッグまでの流れ............................................................ 602

    I.2.1 埋込みSQL文のデバッグ方法.............................................................. 604

    I.3 デッドロック出口........................................................................... 604

    I.3.1 デッドロック出口スケジュールの概要..................................................... 604

    I.3.2 デッドロック出口スケジュールサブルーチン............................................... 605

    I.3.3 注意事項............................................................................... 606

    付録J 日本語コード系............................................................................. 607 J.1 日本語処理のコード系....................................................................... 607

    J.1.1 概要................................................................................... 607

    J.1.2 プログラムごとのコード系と実行時のコード系............................................. 607

    J.1.3 コード系の一致チェック................................................................. 608

    J.2 日本語文字の種類と表現..................................................................... 609

    J.2.1 日本語文字の種類....................................................................... 609

    J.2.2 日本語文字の表現形式................................................................... 609

    J.3 他システムからの移行上の注意............................................................... 610

    J.3.1 日本語空白と英数字空白の文字コード..................................................... 610

    J.3.2 英数字項目のカナ文字の扱い............................................................. 611

    付録K ldコマンド................................................................................. 613 K.1 入力形式................................................................................... 613

    K.2 ldコマンドの使い方......................................................................... 614

    K.2.1 リンクをcobolコマンドで行う場合との比較................................................ 614

    K.2.2 プログラム構造ごとのldコマンドの使い方................................................. 615

    付録L makeコマンドの活用......................................................................... 617 L.1 makeコマンドについて....................................................................... 617

    L.2 Makefileの記述方法......................................................................... 617

    L.2.1 基本的な記述方法....................................................................... 617

    L.2.2 COBOL資源の依存関係.................................................................... 618

    L.2.3 クラスが相互に参照している場合の依存関係............................................... 618

    L.2.4 Makefile作成支援コマンド............................................................... 621

    L.2.5 Makefileのサンプル..................................................................... 621

    付録M メッセージ一覧............................................................................. 623 M.1 cobolコマンドのメッセージ.................................................................. 623

    M.2 翻訳時メッセージ........................................................................... 625

    M.3 実行時メッセージ........................................................................... 625

    M.4 COBOLファイルシステムのエラーコードの説明.................................................. 665

    付録N セキュリティ............................................................................... 669 N.1 資源の保護................................................................................. 669

    N.2 アプリケーション作成のための指針........................................................... 669

    索引............................................................................................. 671

  • xviii

  • 第1章 概要

    本章では、この製品の機能および動作環境について説明します。この製品をはじめてお使いに

    なる方は、必ずお読みください。

    ● 1.1 機能

    ● 1.2 開発環境

    ● 1.3 資源一覧

  • 第1章 概要

    2

    1.1 機能

    ここでは、この製品が持つ機能、この製品が提供する各種ユーティリティについて説明します。

    1.1.1 COBOLの機能

    この製品は、以下に示すCOBOLの機能を持っています。

    ● 中核機能

    ● 順ファイル機能

    ● 相対ファイル機能

    ● 索引ファイル機能

    ● プログラム間連絡機能

    ● 整列併合機能

    ● 原始文操作機能

    ● 表示ファイル機能

    ● システムプログラム記述向け(SD)機能

    ● コマンド行引数の操作機能

    ● 環境変数の操作機能

    ● 報告書作成機能

    ● 組込み関数機能

    ● 浮動小数点数機能

    ● オブジェクト指向プログラミング機能

    これらの機能を使用するためのCOBOLの文の書き方は、“COBOL文法書”に規定されています。

    また、以下に示すサーバサイドアプリケーション(注)で有効となる機能を提供しています。

    ● マルチスレッド機能

    注: サーバセントリックな環境で運用するアプリケーションを示します。たとえば、Webサー

    バアプリケーションがこれに該当します。

    1.1.2 この製品が提供するプログラムおよびユーティリティ

    この製品は、プログラム開発を行うために、“表1-1 この製品が提供するプログラムおよびユ

    ーティリティ”に示すプログラムおよびユーティリティを提供しています。

    表1-1 この製品が提供するプログラムおよびユーティリティ

    名 称 使 用 目 的

    COBOL コンパイラ COBOL を使って記述したプログラムの翻訳

    COBOL ランタイムシステム COBOL アプリケーションの実行

    COBOL ファイルユーティリティ COBOLファイルの処理

    以下に、プログラムおよびユーティリティの概要を説明します。

    COBOLコンパイラ COBOLコンパイラは、COBOLソースプログラムを翻訳し、目的プログラムを生成します。COBOL

    コンパイラは、以下のサービス機能を提供しています。

    ● 翻訳リストの出力

    ● 規格仕様のチェック

    ● 広域最適化

    ● FORM(画面・帳票定義)との連携

  • 1.1 機能

    3

    これらの機能は、ソースプログラムを翻訳する場合に、翻訳オプションによって指示します。

    COBOLランタイムシステム COBOLランタイムシステムは、COBOLを使って作成したアプリケーションプログラム(以降、

    COBOLアプリケーションと略します)を実行する場合に呼び出され、動作します。

    COBOLファイルユーティリティ COBOLファイルシステムが使用できるファイルの処理を、COBOLアプリケーションを介すること

    なく、ユーティリティのコマンドによって行うためのものです。

  • 第1章 概要

    4

    1.2 開発環境

    この製品を利用したプログラムの開発環境の概要を“図1-1 COBOLの開発環境”に示します。

    図1-1 COBOLの開発環境

    注: FORMおよびFORMオーバレイオプションは、Windows製品です。

    1.2.1 関連製品

    “表1-2 関連製品”にこの製品を使ってプログラム開発を行うときに使用する関連製品を示し

    ます。

    表1-2 関連製品

    製品名 機 能

    FORM (注) プログラムが出力する画面や帳票の定義および帳票設計

    ツール(PowerFORM)の提供

    FORMオーバレイオプション (注) プログラムが出力するオーバレイパターンの定義

    MeFt 帳票の出力

    注: FORMおよびFORMオーバレイオプションは、Windows製品です。

  • 1.2 開発環境

    5

    以下に各製品の概要を示します。

    FORM FORMは、COBOLプログラムが表示・印刷する画面や帳票を設計するために使用します。利用者

    は、FORMを利用して、対話的に画面や帳票のレイアウトなどをデザインすることができます。

    また、新しい帳票設計ツール(PowerFORM)では、Windows®の各OSのスタイルガイドに準拠し、

    ウィザード機能を装備してユーザへの使いやすさを配慮しています。

    FORMオーバレイオプション FORMオーバレイオプションは、COBOLプログラムが印刷するオーバレイパターンを設計するた

    めに使用するFORMのオプション製品です。利用者は、対話的にオーバレイパターンのレイアウト

    などをデザインすることができます。

    MeFt MeFtは、帳票の出力を行うプログラムを実行するときに使用されます。MeFtは、プログラムが

    発行する帳票の出力要求に対して、フォーマット編集を行います。

  • 第1章 概要

    6

    1.3 資源一覧

    “表1-3 資源一覧”にこの製品での資源の一覧を示します。

    表1-3 資源一覧

    資源名 内 容 主なコンポーネント ファイル名

    命名規約

    推奨

    拡張子

    雛形

    ファイル名

    COBOLソース COBOLソースプログラム コンパイラ 任意 cob

    cobol

    -----

    COBOL登録集 COBOL登録集原文 コンパイラ 任意 cbl -----

    帳票定義体 帳票の定義情報 FORM

    MeFt

    任意 smd

    pmd

    pxd

    -----

    フォームオー

    バーレイ

    フォームオーバーレイパタ

    ーン情報

    FORM

    MeFt

    任意 ovd -----

    Makefile Makeに関する依存関係など

    の記述

    cobmkmf 任意 Mk -----

    翻訳オプショ

    COBOL翻訳オプション文字

    コンパイラ 任意 cbi -----

    リポジトリ クラス関連情報 コンパイラ ク ラ ス

    名.rep

    rep -----

    ソース解析情

    報ファイル

    ソース解析情報 コンパイラ ソ ー ス

    名.sai

    sai -----

    オブジェクト 目的プログラム コンパイラ ソース名.o o -----

    共用オブジェ

    クト

    副プログラムの共用オブジ

    ェクトプログラム

    コンパイラ libライブ

    ラリ名.so

    so -----

    実行形式 実行形式プログラム コンパイラ 任意

    (a.out)

    out

    exe

    -----

    翻訳リスト 翻訳リスト情報 コンパイラ 任意 lst -----

    テキスト COBOL行順ファイルなど ランタイムシステム 任意 txt -----

    順 COBOL順ファイル ランタイムシステム 任意 seq -----

    相対 COBOL相対ファイル ランタイムシステム 任意 rel -----

    索引 COBOL索引ファイル ランタイムシステム 任意 idx -----

    実行用の初期

    化ファイル

    COBOLの実行時に設定する

    環境変数の定義

    ランタイムシステム COBOL.CBR

    (任意)

    CBR -----

    印刷情報 プリンタ種別などの印刷フ

    ォーマット定義

    ランタイムシステム 任意 --- prtinffile

    フォントテー

    ブル

    印刷ファイルで使用する書

    体番号の定義

    ランタイムシステム 任意 --- fonttable

    FCB 1ページ分の行数、行間隔、

    開始行などの定義

    ランタイムシステム 任 意 (4 文

    字)

    --- FCB1

    クラス情報 実行時に獲得するオブジェ

    クトインスタンス数などの

    指定

    ランタイムシステム 任意 --- -----

    トレース情報

    (最新)

    トレース機能で出力される

    実行経路情報

    ランタイムシステム 実 行 形 式

    名.trc

    trc -----

    トレース情報

    (一世代前)

    トレース情報の一世代前の

    情報

    ランタイムシステム 実 行 形 式

    名.tro

    tro -----

    COUNT情報 COUNT機能による統計情報 ランタイムシステム 任意 --- -----

  • 1.3 資源一覧

    7

    資源名 内 容 主なコンポーネント ファイル名

    命名規約

    推奨

    拡張子

    雛形

    ファイル名

    プリンタ情報 帳票印刷時での各種プリン

    タ情報

    MeFt 任意 --- meftprc

  • 第1章 概要

    8

  • 第2章 プログラムの書き方

    本章では、プログラムの作成と編集、登録集原文の作成、プログラムの形式および翻訳指示文

    について説明します。

    ● 2.1 プログラムの作成と編集

    ● 2.2 プログラムの形式

    ● 2.3 翻訳指示文

  • 第2章 プログラムの書き方

    10

    2.1 プログラムの作成と編集

    COBOLソースプログラム(以降の説明では、単にソースプログラムともいいます。)および登録

    集原文は、エディタを使用して作成することができます。ここでは、ソースプログラムの作成・

    編集方法および登録集原文の作成について説明します。

    2.1.1 ソースプログラムの作成

    ここでは、ソースプログラムを作成・編集する方法を説明します。

    ソースプログラムの1行の形式は、正書法としてCOBOLの文法で規定しています。エディタを使

    ってソースプログラムを作成する場合、行番号やCOBOLの文および手続き名など、正書法に従っ

    た位置に入力する必要があります。行番号やCOBOLの文および手続き名などは、エディタの編集

    画面に以下の形式で入力してください。

    [1] 一連番号領域(カラム1~6)

    一連番号領域には、行番号を指定します。行番号を指定しない(空白のままとする)ことも可能

    です。

    [2] 標識領域(カラム7)

    標識領域は、行を継続する場合や行を注記行にするために使用します。

    [3] A領域(カラム8~11)

    カラム8~11をA領域と呼びます。COBOLの部、節、段落およびプログラムの終わり見出しなど

    は、この領域から書きます。レベル番号が77や01のデータ項目もこの領域から書き始めます。

    [4] B領域(カラム12以降)

    カラム12以降をB領域と呼びます。通常、COBOLの文、注記項およびレベル番号が77や01でない

    データ項目などは、この領域から書き始めます。

    [5] 改行文字(行の終わり)

    各行の終わりには、改行文字を入力します。

    [備考]

    ソースプログラムの文字定数には、TAB文字(ASCII X”09”)を指定することもできます。TAB文字

    は、文字定数中で1バイトを占めます。

  • 2.1 プログラムの作成と編集

    11

    2.1.2 登録集原文の作成

    COBOLの原始文操作機能では、COPY文を使って、ソースプログラム中に登録集原文を取り込む

    ことができます。登録集原文は、ユーティリティを利用したり、ソースプログラムを作成する場

    合と同様にviなどのエディタを利用して作成します。

    登録集原文の正書法の形式は、その登録集原文を取り込むソースプログラムの形式と同一にする

    必要はありません。ただし、一つのプログラムで複数の登録集原文を取り込む場合には、すべて

    の登録集原文の正書法の形式を同一にする