第 1 章 : ようこそ

Server Express をお買い上げいただき、ありがとうございます。この強力なソフトウェアツールのセットを使用して、さまざまな UNIX オペレーティングシステムに対応する COBOL アプリケーションを開発できます。

他の多くのシステムや方言 (IBM メインフレーム COBOL を含む) から COBOL アプリケーションを移行することもできます。

1.1 Server Express の機能

Server Express には、Micro Focus Object COBOL Developer Suite で使用できた機能とツールが含まれています。また、Server Express では、アプリケーションを改善するための開発ツールやディプロイツールが拡張され、開発や保守の負担が軽減されます。

Server Express の最も重要な構成要素は次のとおりです。

これらの機能に加え、コマンド行インターフェイスも利用できます。特に重要な点は、次のとおりです。

1.2 Server Express の使用方法

Server Express の主な機能は、Server Express 開発環境で表示されるメニューから使用します。このメニューは画面の一番下に表示され、必要な機能に対応するキーが示されます。

この機能は現在、英語版コンポーネントを評価目的で提供しているものであり、日本語環境はサポートしていません。Server Express のアプリケーション開発には、Windows上の Net Expressをお使い頂くことを標準でお奨めしています。

Server Express の開発環境からアクセスできない機能は、この後の項で説明する Interface Mapper Toolkit です。Interface Mapper Toolkit には、グラフィックユーザインターフェイスを使用した独自の開発環境があります。

1.2.1 編集、コンパイル、およびデバッグ

このシステムの中心的な機能は、COBOL エディタです。COBOL エディタには、Server Express メニューからアクセスします。このエディタを使用して、プログラムを作成または変更し、ソースファイルにプログラムを保存します。

原始プログラムを作成したら、COBOL エディタ内からコンパイラを起動して、プログラムが有効な COBOL プログラムであるかどうかをチェックできます。コンパイラで構文エラーが検出された場合は、すぐに COBOL エディタに戻ることができます。カーソルは自動で、エラーのある行に配置されます。エラーを修正して、コンパイラを再度起動します。

COBOLエディタは、英語版コンポーネントを評価目的で提供しているものであり、日本語の編集はサポートしていません。

プログラムにエラーがないことをチェックしたら、アニメータを使用してプログラムを実行、デバッグ、およびテストします。アニメータは、COBOL エディタ内から起動することもできます。アニメータでは、プログラムの動作を監視および制御できます。COBOL ソースとしてプログラム全体を確認できるため、テストとデバッグを非常に効率よく実行できます。

テスト中にエラーが検出された場合は、すぐに COBOL エディタに戻ることができます。カーソルは自動で、エラーが検出された行に配置されます。エラーを修正して、コンパイラとアニメータを再度起動します。

コンパイラとアニメータには、COBOL エディタを終了した後に Server Express メニューから直接アクセスすることもできます。

プログラムが正常に動作している場合は、メインメニューの [実行] 機能を使用してプログラムを実行できます。プログラムに必要なすべてのサブプログラムとランタイムサポートモジュールは、必要に応じて自動的に読み込まれます。

Server Express でサポートされる形式 (中間コード、生成コード、呼び出し可能共有オブジェクトコード、または、システム実行形式コード) にコンパイルまたはリンクされたプログラムに、アニメータを使用することができます。アニメータでは、サポートされるすべての実行形式をデバッグできるので、アプリケーション開発サイクルのどの段階でもプログラムをデバッグできます。

1.2.2 最適化と配布

アプリケーションが正常に動作することを確認したら、そのアプリケーションを最適化したり、ユーザに配布したりする作業を行います。

コンパイラの構文チェック段階では、中間コードが生成されます。これは、Micro Focus 専用のコードで、ファイル名の拡張子が .int のファイルに格納されます。中間コードは、アニメータおよび [実行] 機能で解釈できます。より高速に実行するには、次の 2 つのネイティブマシンコード形式の、最適化オブジェクトコードを作成できます。

どちらの形式のファイルも中間コードと同じ方法で実行できます。

生成コードまたは呼び出し可能共有オブジェクトは、Server Express メニューまたは cob コマンドを使用して作成できます。

ネイティブマシンコードを作成して、ファイル名拡張子が .o の実行形式ファイルを作成し、このファイルをラインタイムサポートファイルとリンクさせて、システムの実行可能ファイル (通常は拡張子のない a.out ファイルと呼ばれる) を作成することもできます。 この実行形式ファイルは、必要に応じて .so.int、および .gnt ファイルを呼び出すことができます。

このシステムのコンポーネントは、使用許諾契約に基づいてユーザに配布します。詳細については、『ライセンスとディプロイ』の章を参照してください。

1.3 重要な機能

Server Express の重要な機能の概要について、次に説明します。

1.3.1 Interface Mapping Toolkit と Enterprise Server

Interface Mapping Toolkit を使用すると、Web サービスや EJB などの技術を使用して、COBOL 以外で作成したクライアントに既存の COBOL アプリケーションをエクスポーズできます。その場合は、Interface Mapping Toolkit のグラフィックユーザインターフェイスを使用して、COBOL プログラムのエントリポイントと連絡節を外部インターフェイスにマッピングします。 その後で、Enterprise Server (EJB の場合は Java アプリケーションサーバが必要) 環境でアプリケーションをサービスとしてディプロイできます。 この操作により、どのクライアントでもそのアプリケーションを使用できるようになります。 クライアントを作成する場合は、サービスを起動するインターフェイスについて理解するだけでかまいません。

クライアントから Web サービスまたは EJB を介して呼び出された COBOL アプリケーションは、Enterprise Server 環境で実行されます。これによって、マッピングしたインターフェイス経由でクライアントから受け取る要求が処理されます。Enterprise Server は、この要求を COBOL アプリケーションに渡し、応答をインターフェイス経由でクライアントに返します。

1.3.2 Web プログラミング

Server Express を使用すると、最も古いものから最新のものまでさまざまな種類の COBOL アプリケーションを開発できます。Server Express は、特にクライアントサーバアプリケーションの開発に適しています。 クライアントサーバアプリケーションでは、ほとんどのデータが中央のコンピュータ (サーバ) に保存され、多くの他のコンピュータ (クライアント) からアクセスされます。このようなアプリケーションでは、クライアントでクエリーを入力すると、それらのクエリーがローカルで実行されているソフトウェアからサーバに転送され、そのサーバのソフトウェアによりデータが照会または更新されて、応答が返されます。

Web アプリケーションは、クライアントサーバアプリケーションの典型例です。 Server Express には、Web アプリケーションを作成するための 2 つの機能があります。

1.3.3 Micro Focus Server

Server Express には、Micro Focus Server for UNIX と呼ばれるコンポーネントグループが同梱されています。Micro Focus Server の目的は、オペレーティングシステム上にシェルを提供し、さまざまなオぺレーティングシステムに同じ環境を提供することです。これにより、種類の異なるオぺレーティングシステム間で COBOL アプリケーションを簡単に移行できます。

Micro Focus Server には Enterprise Server と呼ばれる機能コンポーネントが含まれています。 Enterprise Server で提供される COBOL 環境は、Java アプリケーションサーバで提供される Java 環境と対比できます。

1.3.4 Net Express と Server Express

Net Express は、Server Express と密接に統合されています。最新の Net Express COBOL 開発環境を Server Express の高度な COBOL 開発機能と組み合わせて使用すると、分散エンタープライズ環境用の基幹クライアントサーバアプリケーションまたは Web アプリケーションを簡単に開発、デバッグ、およびディプロイできます。

1.3.4.1 Net Express の開発環境

Net Express では、次の機能を利用できます。

1.3.4.2 インターフェイスマッピングと互換性

Net Express でプログラムを開発し、Interface Mapping Toolkit を使用して UNIX 上の Enterprise Server にディプロイする場合は、Net Express と Server Express で Interface Mapping Toolkit および Enterprise Server に互換性の限度があることを理解しておく必要があります。

1.3.5 オブジェクト指向プログラミング

Server Express の COBOL 言語には、COBOL でオブジェクト指向プログラミングを使用できるようにする言語拡張機能があります。オブジェクト指向プログラミングについては、『OO Programming with COBOL』を参照してください。

オブジェクト指向型ではなく、従来型の COBOL プログラミングを使用することもできます。

1.3.6 32 ビットおよび 64 ビットプログラミング

このバージョンの Server Express では、64 ビットの実行形式プログラムとして (64 ビットアドレス空間で) 実行できるアプリケーションを作成できます。64 ビットアプリケーションを作成するには、64 ビットの実行可能プログラムをサポートする UNIX システムに Server Express をインストールする必要があります。64 ビットの実行可能プログラムのサポートは、UNIX オペレーティングシステムによっては、オプションである場合があります。 オプションである場合は、オペレーティングシステムのインストール時に 64 ビットのカーネルのインストールを選択する必要があります。

UNIX オペレーティングシステムで、32 ビットおよび 64 ビットの実行形式プログラムの両方をサポートできる場合は、32 ビットと 64 ビットの両バージョンの Server Express をシステムにインストールします。これにより、64 ビットと 32 ビットの両方で実行するアプリケーションを作成したり、アプリケーションを 32 ビットの実行モードから 64 ビットの実行モードに移行したりすることもできます。

1.3.7 AppTrack

Micro Focus AppTrack は、COBOL アプリケーションの使用を追跡する、簡単でコスト効率のよいシステムを提供します。AppTrack では、組織内のアプリケーションをモニタすることができます。また、企業が ISV または VAR である場合は、顧客がシステム上のユーザ数に対応する正しい数のライセンスを購入しているかを確認できます。AppTrack には、次の高度な機能があります。

Apptrack の詳細については、『ディプロイライセンスガイド』を参照してください。

1.4 他の機能

この付録では、『ようこそ』の章で紹介した主な機能以外の機能を説明します。ただし、Server Express のすべての機能が網羅されているわけではありません。 主に他の COBOL システムから移行するための機能は、この付録の末尾にある『A.2』で説明します。

ここでは、Server Express の主なツールをアルファベット順、次いで五十音順にリストします。これらの機能のほとんどは、Server Express の統合環境内からアクセスできますが、オペレーティングシステムのプロンプトからのみ実行できる機能もあります。機能はアルファベット順に説明します。


COBOL エディタ

COBOL エディタは、COBOL プログラマ向けに設計されたエディタです。このエディタは、COBOL 原始プログラムを作成するために使用しますが、ドキュメントやその他のテキストファイルの作成にも使用することができます。

COBOL エディタ内からコンパイラおよびアニメータを起動できるため、このエディタはソースコードを処理する統合環境になります。また、COBOL のソース情報にアクセスしてプログラムの詳細を参照したり、オンラインリファレンスにアクセスして COBOL 言語やシステムの詳細を参照することもできます。

この機能は現在、英語版コンポーネントを評価目的で提供しているものであり、日本語環境はサポートしていません。Server Express のアプリケーション開発には、Windows上の Net Expressをお使い頂くことを標準でお奨めしています。


COBOL システムライブラリルーチン

COBOL システムライブラリルーチンをプログラムから直接呼び出して、COBOL 言語自体では利用できない多くの操作を実行することができます。

Server Express には、Micro Focus COBOL で提供されるルーチン以外にもルーチンがあります。追加のルーチンにはクロスシステムの互換性に必要な汎用画面属性などの機能があります。


COBOL ソース情報

COBOL ソース情報 (CSI) 機能では、プログラムソースの静的解析を実行できます。プログラム内のデータ項目、COPY ファイル、節、および段落に関する幅広い情報が提供されます。これらの機能を使用すると、ソースを非常にすばやく確認でき、特に既存のプログラムの保守に役立ちます。この情報は、COBOL エディタおよびアニメータ内から利用できます。

この機能は現在、英語版コンポーネントを評価目的で提供しているものであり、日本語環境はサポートしていません。Server Express のアプリケーション開発には、Windows上の Net Expressをお使い頂くことを標準でお奨めしています。


Dialog System

Dialog System では、COBOL アプリケーション用に文字ベースのユーザインターフェイスを作成します。インターフェイスがすべて自動的に処理されるので、プログラムではデータ処理に集中できます。

この機能は現在、英語版コンポーネントを評価目的で提供しているものであり、日本語環境はサポートしていません。


DBCS 透過性サポート

DBCS 透過性は、DBCS コードセットを使用する各国語アプリケーションの作成をサポートする、DBCS サポートのレベルです。たとえば、繁体字中国語、簡体字中国語、韓国語をシステムで使用している場合は、このレベルのサポートは、そのシステムロケールの元で使用できます。このサポートレベルでは、各国語をサポートするアプリケーションプログラムの作成および保守ツール (アニメータ、エディタなど) を使用すると、1 バイトおよび 2 バイトの文字列を使用できます。


EBCDIC サポート

Server Express システムを使用すると、UNIX システムで EBCDIC データを使用できます。そのため、使用中のコンピュータと IBM のメインフレームとの間で、アプリケーションの動作に高い互換性を持たせることができます。 このオプションを選択した場合は、プログラムのデータはすべて EBCDIC 形式で保存され、比較やソートなどの操作では EBCDIC の文字の大小順序が使用されます。


Fileshare

Fileshare は、入出力要求をパケットとして圧縮し、ネットワークを介して送信することで、ネットワーク入出力を高速にします。そのため、ファイル処理はファイルが存在するサーバ上で実行されます。また、複数のファイルをまとめて論理データベースにリンクすることもできます。 データベースのアクセス中に回復ログを設定でき、データの高度な完全性を提供します。

Fileshare には、トランザクションをログに記録して、すべての情報が完結するまで変更のファイルへの書き込みを遅延させる機能があります。 COMMIT で変更を保証し、ROLLBACK で変更をキャンセルできます。


Header-to-COPY

Header-to-COPY ユーティリティは、C 言語のヘッダーファイルを対応する COBOL COPY ファイルに変換します。このユーティリティは、主に、基本的な定義が C プログラムにのみ指定されているシステムライブラリを使用する場合に COBOL プログラミングを簡略化するために使用します。たとえば、UNIX TP システムや UNIX 上のさまざまなリレーショナルデータベースのインターフェイスなどです。


Infomgr

Infomgr では、デモンストレーションプログラムおよび関連する Readmeファイルを検索して読み取ることができます。

この機能は現在、英語版コンポーネントを評価目的で提供しているものであり、日本語環境はサポートしていません。


Profiler

Profiler は、COBOL プログラムの実行時性能に関する詳細な統計データを収集できる機能です。


SCP

SCP プログラムは、 NET Express の UNIX オプションと UNIX オペレーティングシステムおよび COBOL 製品の間の標準インターフェイスです。 パブリッシャを使用するには、SCP をインストールする必要があります。 SCP は、Server Express のインストール時に、インストールされます。

SCP プログラムは、Net Express の UNIX オプションで UNIX リモートシェル (RSH) プロトコルを使用して実行します。ほとんどすべての UNIX システムは、デフォルトで RSH サーバプログラムを使用できます。他の特別なサーバソフトウェアをインストールしたり、構成したりする必要はありません。ただし、UNIX オプションを使用するには、PC から SCP プログラムを実行できるように RSH セキュリティを構成するか、または、SCP をデーモンとして実行するように構成する必要があります。

SCP 構成の詳細については、Net Express の『UNIX オプションガイド』の付録『デーモンとして実行する SCP の構成』と付録『SCP の構成』を参照してください。


Session Recorder

Session Recorder を使用すると、COBOL プログラムを実行中のすべてのキー操作と画面イメージを記録できます。これらの画面イメージとキー操作は、デモ用に後で再生したり、対話型アプリケーションの回帰試験で以前の組み合わせと比較したりできます。

Server Express の Session Recorder は、文字モードでしか使用できません。


アプリケーション構成システム

アプリケーション構成システムでは、プログラムで標準の構成方法を使用してプログラムの動作を制御できます。このプログラムは、Server Express 自体で排他的に使用され、この項で説明する多くのツールを構成できます。


ウィンドウ操作サポート

ウィンドウ操作サポートは COBOL 構文で構成され、線やボックスを画面に描いたり、物理画面に仮想ウィンドウを作成したりすることができます。 この構文では、基礎となる表示を保存して復元することもできます。 ACU COBOL と互換性があります。

この機能は現在、英語版コンポーネントを評価目的で提供しているものであり、日本語環境はサポートしていません。


外部ファイル名マッピングのサポート

ファイル名のマッピングを使用すると、実行時にプログラムからアクセスする物理的なファイル名の変更、UNIX パイプへのファイルの割り当て、索引ファイルの索引やデータファイルの別のディレクトリへの割り当て、プリンタへのファイルの割り当てを実行できます。


各国語サポート

NLS (National Locale Support; 各国語サポート) を使用すると、プログラムの実行時に、文字集合、通貨記号、および、編集記号がユーザの国の言語に合わせて自動的に変換されます。また、各国語文字の正しい大小関係と変換 (アクセントなど) を確認し、ライブラリルーチンを提供して、メッセージファイルから対応する国の言語でメッセージを取り込みます。

この機能は、オペレーティングシステムのサポートによって異なります。


画面とキーボードの構成ツール

画面とキーボードの構成ツールは、画面とキーボードの操作を独自の環境や条件に合わせるように、または、他の COBOL システムとの互換性を持たせるように、構成するためのユーティリティです。


画面とキーボードのハンドラ

画面とキーボードのハンドラは、Adis と呼ばれ、拡張された (全画面) の ACCEPT/DISPLAY 動詞と、このシステムで使用できるスクリーン節の機能をランタイムにサポートするためのモジュールです。


クライアントサーバ結合

クライアントサーバ結合は、クライアントをサーバに接続する簡単で効率的な方法です。通信コードを作成しないで、分散アプリケーションを作成できます。


クラスライブラリ

クラスライブラリは、オブジェクト指向プログラミングを使用して独自のアプリケーションを構築する際に、基礎として使用できる定義済みオブジェクトのセットです。


ソートモジュール

ソートモジュールは、データファイルをソートおよび再配列できるスタンドアロンのソートルーチンです。 デフォルトの COBOL ソート機構を使用するより高速です。このインターフェイスにより、データのソートがより柔軟になり、別のソートモジュールのかわりに使用することもできます。


データファイルエディタ

順・相対・索引編成の COBOLデータファイルを対話型で編集する機能です。

この機能は現在、英語版コンポーネントを評価目的で提供しているものであり、日本語環境はサポートしていません。 同等の機能が Windows上の Net Expressでサポートされています。


統合プリプロセッササポート

統合プリプロセッサは、コンパイラの拡張機能です。統合プリプロセッサを使用すると、コンパイラでユーザ定義の言語プロセッサを起動し、COBOL 以外の構文を COBOL 構文に変換することができます。

アニメータを使用している場合は、元のソースが表示されます。元のソースは、文がこのプリプロセッサで変更される前の状態を表します。


ディレクトリ機能

ディレクトリ機能は、Server Express でファイル名の入力プロンプトが表示される場合に使用されます。ディレクトリ機能では、ディレクトリリスト、ライブラリファイルやファイル内容のリスト、および機能の削除と名前の変更を実行できます。ディレクトリ機能は、CALL 文を使用してプログラムから直接呼び出すことができます。


デバイス操作と Terminfo サポート

デバイス操作と Terminfo サポートにより、ランタイムシステムおよびランタイムサポートモジュールで UNIX デバイスを使用できます。


デモンストレーションプログラム

特定のコンポーネントのマニュアルを補足したり、Server Express の機能を実証するために、多くのデモンストレーションプログラムが提供されています。デモンストレーションプログラムと付属のマニュアルを検索するには、Infomgr を使用します。


ファイルハンドラ

ファイルハンドラは、COBOL ファイルのランタイムサポートを提供するモジュールです。

ファイルハンドラには、プログラムで CALL 文を使用して呼び出すことができるインターフェイスが含まれます。 すべての COBOL 編成のファイルを下位レベルで制御できるので、ファイルやデータベースを処理するための高度なプログラムを作成できます。 C またはアセンブラなどの他の言語から COBOL 形式のファイルにアクセスする場合にも使用できます。


ヘルプ

ヘルプには、使用中のメニューにあるファンクションキーに関する情報が記載されています。ヘルプはすべてのメニューに F1=help として表示されます。


マルチスレッドサポート

Server Express では、スレッドを使用しないアプリケーションまたはマルチスレッドのアプリケーションを作成できます。マルチスレッドを使用すると、アプリケーションを真のマルチプロセス環境で実行し、プロセッサの性能を活用できます。

プログラムをマルチスレッドと単一のスレッドのどちらにするかは、コンパイラ指令を使用して指定します。実行サポートは、マルチスレッドバージョンのコマンドで指定します。 たとえば、cobrun に対応するマルチスレッドバージョンは、cobrun_t です。


ライブラリ

ライブラリは、個別のファイルを 1 つのグループにまとめ、管理しやすくするためのユーティリティです。


ランタイム構成サポート

ランタイム構成サポートは、ランタイム構成ファイル内の環境変数とチューナで構成され、特定のランタイムの動作に影響を与えるように構成できます。


1.5 キー割り当て

UNIX は端末の種類が豊富なため、このマニュアルで説明するキーが、実際に使用するキーボードにない場合があります。また、ほとんどの UNIX 端末では、Alt または Ctrl キーを押しても認識されないため、Server Express ではこれらのキーを検出できません。付録『UNIX のキー割り当て一覧』には、特定の UNIX 端末で検出できないキーの代替キーがリストされています。また、構成可能なキーも示されています。

この付録では、Alt および Ctrl キーのソフト操作またはハード操作の選択方法についても説明しています。ソフト操作の場合は、Alt キーや Ctrl キーは、次のキー操作後に自動でオフになります。つまり、Alt メニューにある機能が必要な場合は常に、Alt キーをもう一度押して Alt メニューを表示する必要があります。 Ctrl キーの場合も同じです。ハード操作では、Alt キーと Ctrl キーは Caps Lock キーと同様に機能します。 つまり、一度押すと、これらのキーを次に押すまで効果が持続します。

キーボードの構成方法については、『Utilities Handbook』にある『Development Environment Menu System』の章および『Programmer's Guide to Creating User Interfaces』にある『Configuring Your Keyboard』の章を参照してください。

1.6 Server ExpressにおけるシフトJIS、EUCロケールのサポート

この項では、この製品におけるシフトJIS、EUCロケールのサポートについて説明します。

1.6.1 概要

このバージョンの Server Express は、アプリケーション開発時に シフトJISとEUCの両方のロケールのいずれか一方を使用できる機能を装備しています。ただしオペレーティングシステムがサポートしていない場合にはこの限りではありません。

この、両方のロケールに対応した Server Express製品では、実行時システムが動的にシフトJISかEUCかどちらかのコンポーネントを呼び出します。実行時システム中でこのようにロケールに依存して切り替わるモジュールとしては、ADIS、_CODESET があります。これらのモジュールはシフトJIS版とEUC版の両方が用意されており動的に切り替わります。

利用者はCOBOL製品の使用時に正しいロケールを設定しておく必要があります。設定されたロケールに応じてシフトJISかEUCのいずれかのコンポーネントが呼び出されます。

1.6.2 シフトJIS・EUC対応製品の英語版との変更点

COBOL製品をシフトJIS・EUC対応にするために加えられた変更点は以下の通りです。

1.6.3 Server ExpressにおけるシフトJIS、EUC機能の実装

1.6.3.1 ロケールの設定

オペレーティングシステムには、ロケールモデルと呼ばれる機能が含まれています。ロケールモデルは、言語や文化に依存するさまざまな属性をひとまとめにして定義しておくための機能です。こういった属性には、一文字を表現するバイト数、日付や時刻の表現形式、数字の表記法、通貨記号などがあります。文字を表現するコードセットもその一つです。

通常ロケールは2つの部分に分割されます。第一の部分は言語と文字集合であり、第二の部分は国です。例えば、ja_JPは日本国内で使用される日本語文字集合を表わします。

一例として、ロケールを示す LANG環境変数の値は、OS 毎に以下のように定められています。

EUCシフトJIS
AIXja_JPJa_JP
Solarisjaja_JP.PCK
HP-UXja_JP.eucJPja_JP.SJIS
Linuxja_JP.eucJPja_JP.SJIS

このほかに提供されているロケールはすべて英語であり、C、en_US.iso88591、en_US.roman8、en_GB.iso88591、en_GB.roman8 が用意されています。

開発時にシフトJISまたはEUCのロケールを設定すると、ソースプログラム中の文字定数などの取り扱いに影響が出てきます。従って、アプリケーションの開発時と実行時に同じロケールを設定しなければなりません。

1.6.3.2 シフトJISでの実行とEUCでの実行の相違点

シフトJIS環境でアプリケーションを実行する場合とEUC環境での実行との相違点を理解しておくことが重要です。

1.7 Server Expressにおける UTF-8ロケールのサポート

この項では、この製品における UTF-8 ロケールのサポートについて説明します。

1.7.1 概要

このバージョンの Server Express は、コンパイル時と実行時に UTF-8ロケールを使用することがサポートされています。

コンパイラは UTF-8 エンコーディングで保存された COBOLソースファイルをコンパイルすることができ、コンパイルされたプログラムは UTF-8 ロケールのもとで動作します。UTF-8 ソースファイルのコンパイルは、ENCODINGコンパイラ指令によって実現されています。指令の詳細は次項で説明します。

COBOL言語がデータ型として UTF-8 をサポートしているわけではないことには注意が必要です。UTF-8エンコーディングでは、一文字は 1バイトから 4バイトまでの可変長で表現されますので、これを特殊な PICTUREで宣言することは不可能です。COBOL言語としての UNICODE対応は、PICTURE N USAGE NATIONALとして、UCS-2 形式のデータ型がサポートされています。

UTF-8 エンコーディングのテキストデータは、したがって PICTURE X(nn) のデータ項目に格納され、バイトデータとしてのみ扱うことができます。

1.7.2 ENCODINGコンパイラ指令

UTF-8 ロケールの元で、UTF-8エンコーディングのソースファイルをコンパイルする場合には、ENCODING(UTF8) コンパイラ指令を指定する必要があります。

UTF-8エンコーディングのソースファイルには、ファイルの先頭にバイトオーダーマーク (BOM) と呼ばれる識別コードが格納されていることがあり、これでファイルのエンコーディングを指定しています。ENCODING(UTF8) 指令を指定する場合には、これに矛盾する BOMを持つソースファイルをコンパイルしてはなりません。

ENCODING(UTF8) 指令は、プログラムの全実行単位内で一貫していなければなりません。 ENCODING(UTF8) 指令を指定してコンパイルしたプログラムと、指定しないでコンパイルしたプログラムとを、実行単位内で混在させることはできません。

1.7.3 UTF-8サポートの制限事項

このバージョンの Server Express のキャラクタツールは、UTF-8 の非ASCII文字をサポートしません。Animator によるデバッグ、拡張ADISなどでは、日本語を含むソースファイル、データは文字化けします。

UTF-8 ロケールのソースコードでは、NSYMBOL(NATIONAL) 指令による UNICODEデータ項目と UNICODE定数のみがサポートされます。NSYMBOL(DBCS) 指令による2バイト文字支援はサポートされません。

UTF-8 ロケールの元では、コンパイラは UTF-8エンコーディングの日本語メッセージを出力します。しかし、その他すべての製品コンポーネントが UTF-8の日本語メッセージを出力するわけではありません。


Copyright © 2006 Micro Focus (IP) Ltd. All rights reserved.