各プラットフォーム向けNetCOBOL製品が提供するCOBOLコマンド間で仕様が異なる翻訳オプションについて、そのサポート状況を一覧で示した上で、その違いについて説明します。
サポート状況
名前 | 機能概要 | OS毎のサポート状況 | |||
---|---|---|---|---|---|
Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux | ||
AIMLIB | サブスキーマ定義ファイルの格納フォルダを指定する。 | ○ | × | × | × |
ALPHAL | 英小文字を英大文字と同一視するかどうかを指定する。 | ○ | ○ | ○ | ○ |
ASCOMP5 | 2進項目の解釈方法を指定する。 | ○ | × | ○ | ○ |
BINARY | 2進項目の割り付け領域長をワード単位、バイト単位にするかを指定する。 | ○ | ○ | ○ | ○ |
CHECK | CHECK機能を使用するかどうかを指定する。 | ○ | ○ | ○ | ○ |
CODECHK | 実行時のコード系チェックの指定。 | × | ○ | ○ | ○ |
CONF | 新/旧規格の非互換を指摘する診断メッセージを出力するかどうかを指定する。 | ○ | ○ | ○ | ○ |
CONVCHAR | コンパイラが文字コード変換に使用するコード変換ライブラリを指定する。 | ○ | ×(注) | ×(注) | ×(注) |
COPY | ソースプログラムリストへの登録集原文を表示するかどうかを指定する。 | ○ | ○ | ○ | ○ |
COUNT | COUNT機能を使用するかどうかを指定する。 | ○ | ○ | ○ | ○ |
CREATE | オブジェクト生成のために翻訳するか、リポジトリ生成のために翻訳するかを指定する。 | ○ | ○ | ○ | ○ |
CURRENCY | 通貨編集用文字を指定する。 | ○ | ○ | ○ | ○ |
DLOAD | プログラム構造を指定する。 | ○ | ○ | ○ | ○ |
DNTB | DISPLAY-OF関数およびNATIONAL-OF関数における後置空白の扱いを指定する。 | ○ | ×(注) | ×(注) | ×(注) |
DUPCHAR | Unicode環境でソースを翻訳する際の全角ハイフン文字の扱いを指定する。 | ○ | ○ | ○ | ○ |
ENCODE | 英数字項目および日本語項目のエンコードを指定する。 | ○ | ×(注) | ×(注) | ×(注) |
EQUALS | SORT文での同一キーデータの処理方法を指定する。 | ○ | ○ | ○ | ○ |
FLAG | 表示する診断メッセージのレベルを指定する。 | ○ | ○ | ○ | ○ |
FLAGSW | COBOL文法の言語要素に対する指摘メッセージを出力するかどうかを指定する。 | ○ | ○ | ○ | ○ |
FORMEXT | 画面帳票定義体ファイルの拡張子を指定する。 | ○ | × | × | × |
FORMLIB | 画面帳票定義体ファイルの格納フォルダを指定する。 | ○ | × | × | × |
GEN | ソースプログラムリストにFCOM及びUWAを表示するかどうかを指定する。 | ○ | × | × | × |
INITVALUE | 作業場所節でのVALUE句なし項目の扱い。 | ○ | ○ | ○ | ○ |
KANA | カナ文字の文字コードの扱いを指定する。 | × | ○ | ○ | ○ |
LALIGN | 連絡節データ宣言の扱いを指定する。 | × | ○ | × | ○ |
LANGLVL | ANSI COBOL規格の非互換項目をどの規格に従って解釈するかを指定する。 | ○ | ○ | ○ | ○ |
LIB | 登録集ファイルの格納フォルダを指定する。 | ○ | × | × | × |
LIBEXT | 登録集ファイルの拡張子を指定する。 | ○ | × | × | × |
LINECOUNT | 翻訳リストの1ページあたりの行数を指定する。 | ○ | ○ | ○ | ○ |
LINESIZE | 翻訳リストの1行あたりの文字数を指定する。 | ○ | ○ | ○ | ○ |
LIST | 目的プログラムリストの出力を出力するかどうかを指定する。 | ○ | ○ | ○ | ○ |
MAIN | 主プログラム/副プログラムの違いを指定する。 | ○ | △ | △ | △ |
MAP | データマップリスト、プログラム制御情報リストおよびセクションサイズリストを出力するかどうかを指定する。 | ○ | ○ | × | ○ |
MESSAGE | オプション情報リスト、翻訳単位統計情報リストを出力するかどうかを指定する。 | ○ | ○ | ○ | ○ |
MODE | ACCEPT文の動作の指定を指定する。 | ○ | ○ | ○ | ○ |
NAME | 翻訳単位ごとにオブジェクトファイルを生成するかを指定する。 | ○ | ○ | ○ | ○ |
NCW | 日本語利用者語の文字集合を指定する。 | ○ | ○ | ○ | ○ |
NSP | Unicodeの日本語項目に対する空白の扱いを指定する。 | ○ | ×(注) | ×(注) | ×(注) |
NSPCOMP | 日本語空白の比較方法を指定する。 | ○ | ○ | ○ | ○ |
NUMBER | 行番号としてソースプログラムの一連番号領域の値を使用するかどうかを指定する。 | ○ | ○ | ○ | ○ |
OBJECT | 目的プログラムを出力するかどうかを指定する。 | ○ | △ | △ | △ |
OPTIMIZE | 広域最適化を行うかどうかを指定する。 | ○ | ○ | ○ | ○ |
各種翻訳リストの出力を出力するかどうかとその出力先を指定する。 | ○ | × | × | × | |
QUOTE/APOST | 表意定数QUOTEの扱いを指定する。 | ○ | ○ | ○ | ○ |
RCS | 実行時コード系を指定する。 | ○ | × | × | △ |
REP | リポジトリファイルの入出力先フォルダを指定する。 | ○ | × | × | × |
REPIN | リポジトリファイルの入力元フォルダを指定する。 | ○ | × | × | × |
RSV | 使用する予約語セットを指定する。 | ○ | ○ | ○ | ○ |
SAI | ソース解析情報ファイルを出力するかどうかを指定する。 | ○ | △ | △ | △ |
SCS | COBOLソースファイルおよび登録集ファイルのコード系を指定する。 | ○ | × | × | × |
SDS | 符号付き10進項目の符号整形を実施するかどうかを指定する。 | ○ | ○ | ○ | ○ |
SHREXT | マルチスレッドプログラムにおける外部属性に関する扱いを指定する。 | ○ | ○ | ○ | ○ |
SMSIZE | PowerSORTが使用するメモリ容量を指定する。 | ○ | ○ | ○ | ○ |
SOURCE | ソースプログラムリストを出力するかどうかを指定する。 | ○ | ○ | ○ | ○ |
SQLGRP | SQLのホスト変数定義の拡張仕様を使用するかどうかを指定する。 | ○ | × | ○ | × |
SRF | 正書法の種類を指定する。 | ○ | ○ | ○ | ○ |
SSIN | ACCEPT文のデータの入力先を指定する。 | ○ | ○ | ○ | ○ |
SSOUT | DISPLAY文のデータの出力先を指定する。 | ○ | ○ | ○ | ○ |
STD1 | 英数字の文字の大小順序の比較方法を指定する。 | ○ | ○ | ○ | ○ |
TAB | ソース中のタブ文字の扱いを指定する。 | ○ | ○ | ○ | ○ |
TEST | 対話型デバッガを使用するかどうかを指定する。 | ○ | ○ | ○ | × |
THREAD | マルチスレッドプログラムの作成を指定する。 | ○ | ○ | ○ | ○ |
TRACE | TRACE機能を使用するかどうかを指定する。 | ○ | ○ | ○ | ○ |
TRUNC | 桁落とし処理を実施するかどうかを指定する。 | ○ | ○ | ○ | ○ |
XREF | 相互参照リストを出力するかどうかを指定する。 | ○ | ○ | ○ | ○ |
ZWB | 符号付き外部10進項目と英数字項目の比較方法を指定する。 | ○ | ○ | ○ | ○ |
注: NetCOBOL V11以降で使用可能な翻訳オプションです。サポート状況は使用する製品のバージョンにより異なります。
各プラットフォーム向けNetCOBOL製品に含まれるCOBOLコマンド間で仕様が異なる翻訳オプション(“表A.9 各OS上のNetCOBOL製品のサポートする翻訳オプション”中ではオレンジ色の網かけで表示)は主に次の3つの種類に分類できます。
Windows版NetCOBOL製品に固有の翻訳オプション。
UNIX系システムのNetCOBOL製品に固有の翻訳オプション。
特定の機能に依存する翻訳オプション。
それぞれについて、以降で詳細を説明します。
Windows版NetCOBOL製品に固有の翻訳オプション
Windows版NetCOBOL製品に固有の翻訳オプションは、更に次の3つに分類されます。
MAIN
Windows版NetCOBOL製品では、作成するプログラムの形態を次のどちらかから選択可能です。
Windowsプログラム:MAIN(WINMAIN)
ACCEPT文、DISPLAY文の入出力先にCOBOLが作成したコンソールウィンドウを、実行時エラーメッセージの出力先にメッセージボックスを使用するプログラム。
コンソールプログラム:MAIN(MAIN)
ACCEPT文、DISPLAY文および実行時エラーメッセージの入出力先としてシステムのコンソール(コマンドプロンプトウィンドウ)を使用するプログラム。
UNIX系システムのNetCOBOL製品によって作成できるプログラムは、常にコンソールプログラムになります。
SCS
Windows版NetCOBOL製品では、ソースファイルのコード系を次のどちらかから選択可能です。
シフトJIS:SCS(SJIS)
UTF-8:SCS(UTF8)
UNIX系システムのNetCOBOL製品では、ロケールと同じコード系のソースファイルのみ指定可能です。
Windows版NetCOBOL製品は、OSIV系システムのCOBOL85向けのプログラムの分散開発をサポートしています。この際に使用するオプションとして、次のものがあります。
AIMLIB
GEN
FLAGSW(GSW/GSS)
翻訳オプションの指定を格納したファイルをオプションファイルと呼びます。NetCOBOLのコンパイラは翻訳時にこのオプションファイルを受け取って(-iオプションに続けて指定する)、オプションファイルの指定に従って、翻訳処理を行うことができます。
Window版 NetCOBOL製品のコンパイラは、翻訳時の資源や出力ファイルに関するオプションを、オプションファイルから受け取ることができますが、UNIX系システムのNetCOBOL製品のコンパイラは、環境変数や翻訳コマンドのコマンドラインオプションとして受け取る必要があります。以下に、その対応関係を示します。
名前 | 代替方法 | 備考 | |
---|---|---|---|
コマンド行オプション | 環境変数 | ||
FORMEXT | - | SMD_SUFFIX | |
FORMLIB | -m フォルダ名 | FORMLIB | |
LIB | -I フォルダ名 | COB_COBCOPY | |
LIBEXT | - | COBLIB_SUFFIX | |
OBJECT | -do フォルダ名 | - | オブジェクトファイルの出力の有無の指定はUNIX系システムのNetCOBOL製品でも有効 |
-dp フォルダ名 | - | ||
REP | -dr フォルダ名 | - | |
REPIN | -R フォルダ名 | COB_REPIN | |
SAI | -ds フォルダ名 | - | ソース解析情報ファイルの出力の有無の指定はUNIX系システムのNetCOBOL製品でも有効 |
UNIX系システムのNetCOBOL製品に固有の翻訳オプション
CODECHK
UNIX系システムのNetCOBOL製品では、環境変数LANGの設定により以下のことを自動的に決定します。
翻訳時:COBOLソース中で使用されている文字のコード系
実行時:COBOLプログラムの使用する文字のコード系
通常のCOBOLプログラムの実行時には、上記の2つの文字コード系が等しいかどうかのチェックが行われ、異なる場合には次のメッセージが出力されて、プログラムを正常に実行することができません。
JMP0029I-U [PID: xxxxxxxx TID:yyyyyyyy] 環境変数(LANG)とプログラムのコード系が一致していません.PGM=プログラム名
翻訳オプションNOCODECHKは、このチェックの実施を制御します。通常の設定ではチェックを行う(CODECHK)です。
チェックを行わない(NOCODECHK)を選択することで、日本語文字のコード系に依存しないプログラムを作成することができるようになります。
KANA
実行時の文字コード系としてEUCを使用する場合の文字定数および英字・英数字項目内のカナ文字のコード系を指定します。JISカナ文字(半角カナ文字)は、文字コード系がEUCである場合、2バイトの領域を占める文字として扱われます。このため、文字コード系がEUCである場合、次の記述は正常に翻訳することができません。
01 KANA-DATA PIC X(5) VALUE “アイウエオ”.
このオプションでKANA(JIS8)を指定することにより、COBOLプログラム内でJISカナ文字を文字コード系がEUCである場合でも、1バイトの領域を占める文字として扱わせることができます。
LALIGN
連絡節に定義されたデータ項目が8バイトの整列境界にあっていることを前提としたオブジェクトの生成を指定します。
Solaris 32bit版 NetCOBOLおよびLinux(Itanium) 64bit版 NetCOBOLでは、データ項目が整列境界にあっているか/いないかで、データ項目を参照する際の性能が異なるため、このオプションの指定によりプログラムの性能の向上が期待できます。
特定の機能に依存する翻訳オプション
ASCOMP5
NetCOBOLは、USAGE句の指定により2進項目の内部表現形式を変更することができます。
USAGE句の指定 | 2進項目の内部表現形式 |
---|---|
COMPUTATIONAL(COMP) | 規格2進 |
COMPUTATIONAL-4(COMP-4) | |
BINARY | |
COMPUTATIONAL-5(COMP-5) | システム2進 |
規格2進は、システムのアーキテクチャに依存しないように決められた2進項目の内部表現形式です。
この翻訳オプションは、その指定に従って規格2進として定義された2進項目をシステム2進として扱うためのオプションです。規格2進とシステム2進の形式が異なるWindowsおよびLinux向けのNetCOBOL製品では、このオプションを指定することによってプログラムの性能の向上が期待できます。Solarisでは、規格2進とシステム2進の形式が一致しているため、このオプションは効果を持ちません。
SQLGRP
COBOLソースプログラム中に埋め込みSQL文を記述する際、ホスト変数の定義方法を拡張するかどうかを指定するものです。COBOLソースプログラム中の埋め込みSQL文をパーザ方式で処理する場合のみ有効になります(“表A.7 各NetCOBOL製品における埋め込みSQL文の処理方式のサポート状況”参照)。
翻訳オプションのデフォルト値
稀に、すべてのNetCOBOL製品でサポートされているが、そのデフォルト値が異なるという翻訳オプションがあります。以下にその一覧を示します。
No | オプションの選択形式 | 製品毎のデフォルト値 | |||
---|---|---|---|---|---|
Windows 32bit版 NetCOBOL | Solaris 32bit版 NetCOBOL | Linux 32bit版 NetCOBOL | Linux(Itanium) 64bit版 NetCOBOL | ||
1 | {OPTIMIZE | NOOPTIMIZE} | NOOPTIMIZE | OPTIMIZE | OPTIMIZE | OPTIMIZE |
2 | DUPCHAR( { STD | EXT } ) | EXT | STD | STD | STD |