ソフトウェア・バージョン: | OpenVMS AXP V 6.1 |
以下は他社の商標です。
PostScriptは,Adobe Systems Incorporated の商標です。
次へ | 目次 | 索引 | DOC HOME |
本書は,開発者がOpenVMS VAXアプリケーションを OpenVMS AXPシステムに移行する際に役立つように構成されています。
本書は経験の豊富なソフトウェア技術者を対象にしており,特にCやFORTRANなどの高級プログラミング言語や,中級プログラミング言語で作成されたアプリケーションのコードを移植する際の責任者を対象にしています。
本書は6つの章と1つの付録から構成されています。
第 1 章 | アプリケーションが,VAXアーキテクチャに依存している部分を調べる方法について,その概要を示します。 |
第 2 章 | アプリケーションがVAXのページ・サイズに依存しているときの対処方法を示します。 |
第 3 章 | 複数のプロセスによるデータ・アクセスに関して,アプリケーションがVAXアーキテクチャの同期方式に依存しているときの対処方法について説明します。 |
第 4 章 | アラインメントに関する問題も含めて,AXPシステムでのデータ宣言の影響について説明します。 |
第 5 章 | アプリケーションがVAXの条件処理機能に依存しているときの問題への対処方法について説明します。 |
第 6 章 | トランスレートされたVAXイメージを呼び出したり,これらのイメージから呼び出すことができるネイティブな AXPイメージの作成方法について説明します。 |
付録 A | OpenVMS AXPシステムで,Ada,C,Cobol,FORTRANおよびPascalプログラミング言語によってサポートされる,新しい機能と変更された機能を簡単にまとめます。 |
本書はOpenVMS VAXアプリケーションをOpenVMS AXPシステムに移行する際のさまざまな問題を説明したマニュアル・セットの一部です。このマニュアル・セットには,本書の他に次のマニュアルが準備されています。
VAXシステムからAlpha AXPシステムへの移行処理の概要を示し,移行計画の作成に役立つ情報も示します。移行計画を作成するときに判断しなければならない事項について説明し,それらの判断を下すのに必要な情報の入手方法も示します。さらに,さまざまな移行方法について説明し,各方法で必要な作業量を見積もるのに必要な情報と,各アプリケーションにとって最適な移行方法を選択する方法についても説明します。
このマニュアルでは,MACRO-32 Compiler for OpenVMS AXPを使用して VAX MACROコードをAXPシステムに移植する方法およびコンパイラの機能,移植不可能なコーディング様式の識別法,このようなコーディング様式のかわりとなる適切な方法などについて説明します。このマニュアルではまた,コンパイラの修飾子,ディレクティブ,および組み込み機能と,AXPシステムに移植するために作成されたシステム・マクロの詳細な説明を示したリファレンスも記載されています。
また,VAX Environment Software Translator(VEST)に関する次のマニュアルがあります。
このマニュアルでは,VAX Environment Software Translator(VEST)ユーティリティについて説明します。このマニュアルは,オプションとして提供されるレイヤード・プロダクトであるDECmigrate for OpenVMS AXPに添付されており,このレイヤード・プロダクトは,OpenVMS VAXアプリケーションをOpenVMS AXPシステムに移行する処理をサポートします。このマニュアルでは,VESTを使用して大部分のユーザ・モードの OpenVMS VAXイメージを,OpenVMS AXPシステムで実行できるトランスレートされたイメージに変換する方法,トランスレートされたイメージの実行時性能を向上させる方法,VESTを使用して,VAXイメージの中でAXPと互換性のない部分を元のソース・ファイルまでトレースする方法,およびVESTを使用して,ネイティブなランタイム・ライブラリとトランスレートされたランタイム・ライブラリの間で互換性をサポートする方法について説明します。また,このマニュアルには完全なVEST コマンド・リファレンスも記載されています。
本書では次の表記法を使用します。
表記法 | 意味 |
---|---|
[Return] | 四角形で囲まれたこの記号は,キーボードのキーを押すことを示します。たとえば,[Return]は Returnキーを押すことを示します。 |
[Ctrl/x] | [Ctrl/x] の記号は,Ctrl キーを押しながら,同時にあるキーを押すことを示します。たとえば,[Ctrl/c] は Ctrl キーと c 文字キーを同時に押します。 |
... |
例の中で水平反復記号は,次のいずれかを示します。
|
. . . |
垂直反復記号は,コード例やコマンド形式から項目が省略されていることを示します。このように項目が省略されるのは,その項目が説明している内容にとって重要でないからです。 |
() | 括弧は,複数のオプションを選択するときに,選択項目を括弧で囲まなければならないことを示す。 |
<lbrack symbol> <rbrack symbol> | 大括弧は,項目が省略可能であることを示します(しかし,VMSファイル指定のディレクトリ名の構文や,代入文の部分文字列指定の構文では,大括弧は省略可能ではありません)。 |
<lbrace symbol> <rbrace symbol> | 中括弧は,必ず1つを選択しなければならない項目を囲むために使用します。 |
太字 | 太字のテキストは,新しい用語を導入する場合や,引数,属性,条件の名前を示すために使用します。 また,マニュアルのオンライン・バージョンでユーザ入力を示す場合も,太字のテキストを使用します。 |
イタリック体 | イタリック体のテキストは,システム・メッセージやコマンド・ラインの中で,変化する可能性のある情報を表現します。 |
英大文字 | 英大文字は,コマンド,修飾子,パラメータ,ルーチン名,ファイル名,ファイル保護コード名,システム特権の短縮形を示します。 |
− | コード例で使用されているハイフンは,要求に対する追加引数が後続の行に指定されることを示します。 |
数字 | 特に示した場合を除き,説明文の内部で使用している数字はすべて 10 進数です。数値が 10 進数以外(2進数,8進数,16 進数)の場合には,そのことが明記されます。 |
「 」 | かぎ括弧は,この製品のドキュメント構成に含まれるマニュアル名を示します。 |
『 』 | 二重かぎ括弧は,この製品のドキュメント構成に含まれないマニュアル名または,別の製品のマニュアル名を示します。 |
この章では,アプリケーションを構成するソース・ファイルを再コンパイルおよび再リンクすることにより,VAXシステム上で動くアプリケーションをAXPシステムに移行する(migrate)プロセスについて,その概要を説明します。特に,この章では次の内容について説明します。
一般に,アプリケーションが高級プログラミング言語で作成されている場合には,わずかな作業でAXPシステムで実行できるようになります。高級言語では,アプリケーションをマシン・アーキテクチャから分離します。さらに,AXPシステム上のプログラミング環境のほとんどの部分は,VAXシステムのプログラミング環境と同じです。したがって,AXP版の各言語のコンパイラとOpenVMSリンカ・ユーティリティを使用すれば,アプリケーションを構成するソース・ファイルを再コンパイルおよび再リンクでき,ネイティブなAXPイメージを作成できます。
しかし,アプリケーションが高級言語で作成されている場合でも,アーキテクチャ固有の機能に依存している可能性があります。この後の節では,AXPシステム上のプログラミング環境について説明し,アプリケーション・ソース・ファイルの中で,変更しなければAXPシステムに移行できないコードを識別するためのガイドラインを示します。
1.2 ネイティブなAXPコンパイラによるアプリケーションの再コンパイル
VAXシステムでサポートされる言語の多くは,AXPシステムでもサポートされます。たとえばFORTRANやCなどです。AXPシステムでどのプログラミング言語を使用できるかについての詳しい説明は,『OpenVMS AXP オペレーティング・システムへの移行:システム移行の手引き』を参照してください。
AXPシステムで使用出来るコンパイラは,それぞれVAXシステムの対応するコンパイラと互換性(compatibility)を維持するように設計されています。各コンパイラは言語標準規格に準拠し,また,VAXの言語拡張機能の大部分をサポートします。コンパイラは,VAXシステムの場合と同じ省略時のファイル・タイプで,出力ファイルを作成します。たとえば,オブジェクト・モジュールのファイル・タイプは.OBJです。
しかし,VAXシステムのコンパイラがサポートする一部の機能は,AXPシステムの同じコンパイラでサポートされません。さらに,AXPシステムのいくつかのコンパイラは,VAXシステムの対応するコンパイラがサポートしない新しい機能をサポートします。また互換性を維持するために,一部のAXPコンパイラは互換モードをサポートします。たとえば,DEC C for OpenVMS AXP システムのコンパイラはVAX C互換モードをサポートし,このモードは/STANDARD=VAXC修飾子を指定することにより起動されます。付録 A は,VAXシステムとAXPシステムで使用できるコンパイラの機能を示しています。
1.3 アプリケーションにおけるVAXアーキテクチャに依存する部分の識別
ネイティブなAXPコードで生成されたコンパイラを使用して,アプリケーションを正しく再コンパイルできた場合でも,VAXアーキテクチャに依存する部分が含まれている可能性があります。オペレーティング・システムは,高いレベルの互換性を維持するように設計されています。しかし,2つのアーキテクチャには基本的な相違があるため,ある種の矛盾をどうしても避けることができません。次のリストはアプリケーションの中で調べなければならない部分を示しています。本書のこの後の各章では,これらの各項目について詳しく説明します。
さらに,VAXアーキテクチャでは,バイト・サイズおよびワード・サイズのデータを,1つの割り込み不可能な操作で処理できる命令をサポートします。Alpha AXPアーキテクチャはアラインされたロングワード・サイズ,またはアラインされたクォドワード・サイズのデータに対してのみ,割り込み不可能なアクセスをサポートします。この問題がアプリケーションにどのような影響を与えるかについては,第 3 章 と 第 4 章 を参照してください。
ソース・ファイルを正しく再コンパイルした後,アプリケーションを再リンクしてネイティブなAXPイメージを作成しなければなりません。リンカは現在のVAXシステムと同じファイル・タイプで,出力ファイルを作成します。たとえば,省略時の設定では,リンカはイメージ・ファイルのファイル・タイプとして.EXEを使用します。
AXPシステムではある種のリンク作業を実行する方法が異なるため,アプリケーションを構築するために使用するLINKコマンドを変更しなければなりません。次のリストは,アプリケーションのビルド手順に影響を与える可能性のある,これらのリンカの変更点を説明しています。詳しくは『OpenVMS Linker Utility Manual』を参照してください。
リンカはAXPシステム固有の修飾子とオプションをサポートします。これらは 表 1-1 ,表 1-2 に示すとおりです。この表にはまた,VAXシステムでサポートされ,AXPシステムのリンカでサポートされないリンカ修飾子も示されています。
修飾子 | 説明 |
---|---|
/DEMAND_ZERO | リンカがデマンド・ゼロ・イメージ・セクションを作成する方法を制御する。 |
/GST | 共有可能イメージに対してグローバル・シンボル・テーブル(GST)を作成することをリンカに要求する(省略時の設定)。ランタイム・キット用に共有可能イメージを作成する場合には,/NOGSTを指定する方が一般的である。 |
/INFORMATIONALS | リンク操作で情報メッセージを出力することをリンカに要求する(省略時の設定)。/NOINFORMATIONALSを指定する方が一般的であり,その場合には情報メッセージは出力されない。 |
/NATIVE_ONLY | 作成中のイメージ内で,コンパイラが作成したプロシージャ・シグナチャ・ブロック(PSB)情報を渡さないことをリンカに要求する。省略時の設定では,リンク操作に対する入力ファイルとして指定したオブジェクト・モジュールにPSB情報が含まれている場合には,リンカはイメージに PSB情報を含む。イメージ・アクティベータはこの情報を使用して,ジャケット・ルーチンを作成する。ネイティブなAXPイメージがトランスレートされた VAXイメージと協調動作するには,ジャケット・ルーチンが必要である。 |
/REPLACE | コンパイラによって要求された場合,作成中のイメージの性能を向上するための最適化を行うことをリンカに要求する(省略時の設定)。 |
/SECTION_BINDING | 常駐イメージとしてインストール可能な共有可能イメージを作成することをリンカに要求する。 |
/SYSEXE | リンク操作で解釈されなかったシンボルを解釈するために OpenVMSエグゼクティブ・イメージ(SYS$BASE_IMAGE.EXE)を処理することをリンカに要求する。 |
オプション | 説明 |
---|---|
BASEオプション | AXPシステムではサポートされない。 |
DZRO_MINオプション | AXPシステムではサポートされない。 |
ISD_MAXオプション | AXPシステムではサポートされない。 |
SYMBOL_TABLEオプション | 共有可能イメージに関連するシンボル・テーブル・ファイルにユニバーサル・シンボルだけでなく,グローバル・シンボルも登録することをリンカに要求する。省略時の設定では,リンカはユニバーサル・シンボルだけを登録する。 |
SYMBOL_VECTORオプション | AXP共有可能イメージでユニバーサル・シンボルを宣言するために使用する。 |
UNIVERSALオプション | AXPシステムではサポートされない。 |
次へ | 目次 | 索引 |