ポータブル Natural 生成プログラム

Natural バージョン 5 以降では、Natural 生成プログラム(GP)を UNIX、OpenVMS、および Windows のプラットフォーム間で移植可能です。

このドキュメントでは、次のトピックについて説明します。


互換性

Natural バージョン 5 以降では、Natural でサポートされる UNIX、OpenVMS、および Windows の任意のプラットフォームでカタログされたソースは、これらすべてのオープンシステムプラットフォームで再コンパイルなしで実行できます。この機能によって、オープンシステムプラットフォーム間でのアプリケーションの展開が容易になります。

Natural バージョン 4 または Natural バージョン 3 で生成された Natural アプリケーションは、再カタログしなくても Natural バージョン 5 以降で実行できます(上位互換性)。この場合には、ポータブル GP 機能は有効ではありません。ポータブル GP およびその他の改良点を利用するには、Natural バージョン 5 以降でカタログする必要があります。

コマンドプロセッサ GP は移植できません。ポータブル GP 機能は、メインフレームプラットフォームでは使用できません。このことは、メインフレームコンピュータで生成された Natural GP は、アプリケーションを再コンパイルしない場合、UNIX、OpenVMS、および Windows プラットフォームで実行できないことを意味します。逆の場合も同様です。

エンディアンモードについて

Natural バージョン 5 の時点で、Natural は次のように動作します。UNIX、OpenVMS、または Windows プラットフォームのどれが実行中であるかに応じて、マルチバイトの数値が GP に保存されるときのバイト順序が考慮されます。2 つのバイト順モードがあり、"リトルエンディアン" と "ビッグエンディアン" と呼ばれています。

  • "リトルエンディアン" とは、数値の下位バイトがメモリの最下位アドレスに格納され、上位バイトが最上位アドレスに格納されることを意味します(小さな桁が最初に来ます)。

  • "ビッグエンディアン" とは、数値の上位バイトがメモリの最下位アドレスに格納され、下位バイトが最上位アドレスに格納されることを意味します(大きな桁が最初に来ます)。

UNIX、OpenVMS、および Windows プラットフォームでは、両方のエンディアンモードが使用されます。Intel プロセッサおよび AXP コンピュータのバイト順は "リトルエンディアン" であり、HP-UX、Sun Solaris、RS6000 などその他のプロセッサでは "ビッグエンディアン" モードが使用されています。

Natural では、必要に応じて、ポータブル GP を実行プラットフォームのエンディアンモードに自動的に変換します。GP がすでにプラットフォームのエンディアンモードで 生成されている場合、このエンディアン変換は実行されません。

ENDIAN パラメータ

ポータブル GP の実行パフォーマンスを拡張するために、プロファイルパラメータ ENDIAN が導入されました。ENDIAN は、コンパイル中に GP が生成されるエンディアンモードを決定します。

DEFAULT GP が生成されるマシンのエンディアンモード
BIG ビッグエンディアンモード(上位バイトが最初に来ます)
LITTLE リトルエンディアンモード(下位バイトが最初に来ます)

DEFAULTBIG、および LITTLE の値のうち 1 つを選択します。デフォルト値は DEFAULT です。

ENDIAN モードパラメータは次の方法で設定できます。

  • Natural コンフィグレーションユーティリティを使用して、プロファイルパラメータとして設定

  • 開始パラメータとして設定

  • セッションパラメータとして、または GLOBALS コマンドを使用して設定

Natural 生成プログラムの転送

異なるプラットフォーム(UNIX、OpenVMS、および Windows)でポータブル GP を利用するには、生成された Natural オブジェクトをターゲットプラットフォームに転送するか、または NFS などを経由してターゲットプラットフォームからアクセス可能にする必要があります。

Natural 生成オブジェクト、または Natural アプリケーション全体を配布するには、Natural オブジェクトハンドラの使用をお勧めします。手順としては、ソース環境のオブジェクトをワークファイルにアンロードし、このワークファイルをターゲット環境に転送して、ワークファイルからオブジェクトをロードします。

Start of instruction setオープンシステムプラットフォーム間で Natural 生成オブジェクトを展開するには

  1. Natural オブジェクトハンドラを開始します。必要なすべてのカタログオブジェクトを PORTABLE タイプのワークファイルにアンロードします。

    必要であれば、エラーメッセージもワークファイルにアンロードできます。

    重要:
    指定するワークファイルタイプは PORTABLE でなければなりません。PORTABLE は、ワークファイルが異なるマシンに転送されるときに、ワークファイルの自動エンディアン変換を実行します。『ステートメント』ドキュメントの「DEFINE WORK FILE」ステートメントの説明にあるワークファイルタイプの情報も参照してください。

  2. ワークファイルをターゲット環境に転送します。ネットワーク、CD、フロッピーディスク、テープ、電子メール、ダウンロードなど使用する転送メカニズムによっては、ZIP ファイルなどの圧縮アーカイブの使用や、UUENCODE/UUDECODE などによるエンコードが有効な場合もあります。FTP 経由のコピーでは、バイナリ転送タイプが必要です。

    注意:
    使用する転送メソッドによっては、ロード機能を続行する前に、転送するワークファイルのレコードフォーマットと属性またはブロックサイズを、特定のターゲットプラットフォームに応じて調整する必要があります。ターゲットプラットフォームでのワークファイルのフォーマットと属性は、そこで生成された同じタイプのワークファイルと同じものにする必要があります。適応が必要な場合は、オペレーティングシステムツールを使用してください。

  3. ターゲット環境で Natural オブジェクトハンドラを開始します。ワークファイルタイプとして PORTABLE を選択します。Natural オブジェクトおよびエラーメッセージをワークファイルからロードします。

Natural オブジェクトハンドラの使用法の詳細については、『ユーティリティ』ドキュメントの「オブジェクトハンドラ」を参照してください。

上述の推奨される方法に加えて、オペレーティングシステムツールや別の転送方法を使用することにより、単一の Natural 生成オブジェクトだけでなく、ライブラリ全体やその一部を "移動" またはコピーするためのさまざまな方法があります。これらすべての場合について、オブジェクトを Natural で実行できるようにするには、オブジェクトを Natural システムファイル FUSER にインポートして FILEDIR.SAG 構造に適合させる必要があります。FNAT または FUSER ディレクトリの詳細については、『オペレーション』ドキュメントの「システムファイル FNAT と FUSER」を参照してください。

この作業には、次のいずれかの方法を使用します。

  • SYSMAIN ユーティリティのインポート機能を使用する。

  • FTOUCH ユーティリティを使用する。このユーティリティは、Natural に入らずに使用できます。

同じことが、NSF やネットワークファイルサーバーなどを経由して、ターゲットプラットフォームからソース環境で生成されたオブジェクトへの直接アクセスが可能な場合にも当てはまります。この場合は、オブジェクトをインポートする必要があります。

移植可能な FILEDIR.SAG ファイルとエラーメッセージファイル

Natural バージョン 6.2 以降では、FILEDIR.SAG ファイルおよびエラーメッセージファイルはプラットフォームに依存しません。したがって、共通の FUSERシステムファイルをさまざまなオープンシステムプラットフォームで共有できます。例えば、1 つのオープンシステムプラットフォームから一連の Natural ライブラリをコピーし、オペレーティングシステムのコピー手順を使用して別のプラットフォームにコピーすることができます。ただし、FNAT システムファイルの共有はお勧めしません。移植可能な FILEDIR.SAG に関する詳細については、『オペレーション』ドキュメントの「Natural の移植可能なシステムファイル」を参照してください。