日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V8.3
ライブラリ

タイトルページ
目次
まえがき
第 1 章:移行プロセスの概要
第 2 章:移行方法の選択
第 3 章:アプリケーションの移行
第 4 章:再コンパイルと再リンクの概要
第 5 章:ページ・サイズの拡大に対するアプリケーションの対応
第 6 章:共有データの整合性の維持
第 7 章:アプリケーション・データ宣言の移植性の確認
第 8 章:アプリケーション内の条件処理コードの確認
第 9 章:アプリケーションのトランスレート
第 10 章: ネイティブなイメージとトランスレートされたイメージの間の相互操作性の確認
第 11 章:OpenVMS Alpha コンパイラ
付録 A :アプリケーション評価チェックリスト
用語集
索引
PDF
OpenVMS ホーム
OpenVMS Alpha オペレーティング・システム | HPE 日本

OpenVMS Alpha
オペレーティング・システム
OpenVMS VAX から OpenVMS Alpha へのアプリケーションの移行


目次 索引



この節では,Digital Fortran 77 for OpenVMS VAX Systems コンパイラのオプションのうち,Digital Fortran for OpenVMS Alpha 修飾子に対応するオプションがないものをまとめます。

表 11-8 は,Digital Fortran 77 for OpenVMS VAX Systems のバージョン 6.4 固有のコンパイル・オプションを示しています。

表 11-8 Digital Fortran for OpenVMS Alpha でサポートされない Digital Fortran 77 for OpenVMS VAX Systems 修飾子
Digital Fortran 77 for OpenVMS VAX Systems 修飾子 説明
/BLAS=(INLINE,MAPPED) Digital Fortran 77 for OpenVMS VAX Systems が Basic Linear Algebra Subroutines (BLAS)を認識し,これらをインラインまたはマッピングするかどうかを指定する。Digital Fortran 77 for OpenVMS VAX Systems の場合にのみ使用できる。
/CHECK=ASSERTIONS アサーション・チェックを許可または禁止する。 Digital Fortran 77 for OpenVMS VAX Systems に対してのみ使用できる。
/DESIGN=[NO]COMMENTS
/DESIGN=[NO]PLACEHOLDERS
設計情報を確認するためにプログラムを解析する。
/DIRECTIVES=DEPENDENCE 指定されたコンパイラ・ディレクティブがコンパイル時に使用されるかどうかを指定する。Digital Fortran 77 for OpenVMS VAX Systems に対してのみ使用できる。
/PARALLEL=(MANUALまたはAUTOMATIC) 並列処理をサポートする。
/SHOW=(DATA_DEPENDENCIES,DICTIONARY,LOOPS) リスト・ファイルに次の情報を登録するかどうかを制御する。

  • ベクタ化または自動分解を禁止するデータ依存性と,依存解析の対象とならないループに関する診断情報(DATA_DEPENDENCIES)。

  • インクルードしたCommon Data Dictionaryレコードからのソース・ライン(DICTIONARY)。

  • コンパイル後のループ構造に関するレポート(LOOPS)。

DATA_DEPENDENCIESおよびLOOPSキーワードはDigital Fortran 77 for OpenVMS VAX Systems に対してのみ使用できる。

/VECTOR ベクタ処理を要求する。Digital Fortran 77 for OpenVMS VAX Systems に対してのみ使用できる。
/WARNINGS=INLINE コンパイラが組み込みルーチンに対する参照のインライン・コードを生成できないときに,情報診断メッセージを印刷するかどうかを制御する。Digital Fortran 77 for OpenVMS VAX Systems に対してのみ使用できる。

要求された(手作業)分解に関連するすべてのCPAR$ディレクティブと特定の CDEC$ディレクティブ,およびそれに関連する修飾子またはキーワードも Digital Fortran 77 for OpenVMS VAX Systems 固有です。 『DEC Fortran Language Reference Manual』 を参照してください。

Digital Fortran 77 for OpenVMS VAX Systems のコンパイル・コマンドとオプションに関する詳しい説明は『DEC Fortran User Manual for OpenVMS VAX Systems』を参照してください。

11.4.3 トランスレートされた共有可能イメージとの相互操作性

Digital Fortran for OpenVMS Alphaを使用すれば,イメージ起動時(実行時) にトランスレートされたイメージと相互操作可能なイメージを作成できます。

トランスレートされた共有可能イメージの使用を可能にするには,次の操作を実行します。

  • FORTRANコマンド行に/TIE修飾子を指定します。

  • LINKコマンド行に/NONATIVE_ONLY修飾子を指定します。

作成された実行可能イメージには,最終的な実行可能イメージが共有可能イメージと相互操作できるようなコードが含まれます。たとえば,Digital Fortran 77 for OpenVMS VAX Systems RTL (FORRTL)が Digital Fortran for OpenVMS Alpha RTL (DEC$FORTRTL)と協調動作できるようにするためのコードが含まれます。ネイティブなプログラム (Digital Fortran for OpenVMS Alpha RTL)とトランスレートされたプログラム (Digital Fortran 77 for OpenVMS VAX Systems RTL)は,ファイルをオープンするRTLがそのファイルのクローズも実行するのであれば,同じユニット番号に対して入出力を実行できます。

プログラムでは,組み込み名を使用しなければならず(接頭辞を除く),完全な名前 (fac$xxxx)でルーチンを呼び出すわけではありません。

プログラムは,完全な (fac$xxxx) 名前によってルーチンを呼び出すのではなく,内部名 (接頭辞を除く名前) を使用しなければなりません。ただし,fac$xxxx という名前を使用できる 1 つの例外があります。トランスレートされたイメージ・プログラムでは,FOR$RAB システム関数を EXTERNAL として宣言できます。ネイティブな Alpha プログラムでは,FOR$RAB を内部関数として使用しなければなりません。

11.4.4 Digital Fortran 77 for OpenVMS VAX Systems データの移植

レコード・タイプは,Digital Fortran 77 for OpenVMS VAX Systems でもDigital Fortran for OpenVMS Alphaでも同じです。必要な場合には,EXCHANGEコマンドと /NETWORK修飾子および/TRANSFER=BLOCK修飾子を使用してデータを移植してください。コピー操作でファイルをStream_LFフォーマットに変換するには, /TRANSFER=BLOCKのかわりに/TRANSFER=(BLOCK,RECORD_SEPARATOR=LF)を使用するか,またはEXCHANGEコマンドで/FDL修飾子を使用して,レコード・タイプや他のファイル属性を変更します。

フォーマッティングされていない浮動小数点データを変換しなければならない場合には,Digital Fortran 77 for OpenVMS VAX Systems プログラム (VAXハードウェァ) が REAL*4 または COMPLEX*8 データをF浮動小数点フォーマットで格納し,REAL*8 または COMPLEX*16 データをD浮動小数点またはG浮動小数点フォーマットで格納し, REAL*16 データをH浮動小数点フォーマットで格納することを念頭においてください。 Digital Fortran for OpenVMS Alphaプログラム (Alphaハードウェアで実行されるプログラム)は,REAL*4,REAL*8,COMPLEX*8,および COMPLEX*16 データをそれぞれ, 表 11-9 に示すフォーマットのいずれかで格納します。

表 11-9 VAXシステムとAlphaシステムでの浮動小数点データ
データ宣言 VAXフォーマット Alphaフォーマット
REAL*4とCOMPLEX*8 VAX F浮動小数点フォーマット IEEE S浮動小数点またはVAX F浮動小数点フォーマット
REAL*8とCOMPLEX*16 VAX D浮動小数点またはG浮動小数点フォーマット IEEE T浮動小数点,VAX D浮動小数点 1またはVAX G浮動小数点フォーマット
REAL*16と COMPLEX*32 VAX H浮動小数点 Digital Fortran for OpenVMS Alphaではサポートされない。おそらくRTLルーチン CVT$CONVERT_FLOATを使用して変換しなければならない。

1Alphaシステムでは,演算を実行するときに VAX D浮動小数点フォーマットを使用することは望ましくない。このような場合には, Digital Fortran for OpenVMS Alphaの変換ルーチンを使用する変換プログラムでD浮動小数点フォーマットをIEEE T浮動小数点(または VAX G浮動小数点)フォーマットに変換することを考慮しなければならない。



この節では,DEC Pascalと他のDECのPascalコンパイラを比較し,VAXシステムと AlphaシステムのDEC Pascalの違いを示します。これらの機能の完全な説明については,『HP Pascal for OpenVMS Language Reference Manual』を参照してください。

11.5.1 DEC Pascal の新機能

表 11-10 は以前 VAX Pascal では提供されていなかった機能を示します。

表 11-10 DEC Pascal の新機能
機能 説明
OpenVMSシステムのサポート OpenVMSプラットフォームで有効なすべてのデータ・タイプを含む。
あらかじめ定義されている定数のうち再定義可能な値 MAXINT,MAXUNSIGNED,MAXREAL,MINREAL,ESPREALの値はプラットフォームによって定義され,コンパイラが整数のサイズや浮動小数点型を指定するために変更する。
COMMON,EXTERNAL,GLOBAL.PSECT,WEAK_EXTERNAL および WEAK_GLOBAL属性への一重引用符で囲まれたオプション・パラメータ 変更されない識別子をリンカへ渡すことを許可する。
二重引用符で囲まれた文字列 DEC Pascalは文字列および文字の区切りとして二重引用符を使用できる。
埋め込まれた文字列の値 二重引用符で囲まれた文字列のなかでは,Cプログラミング言語でラインフィード文字を表わす"/n"のような,バックスラッシュとそのすぐ後に指定された文字をサポートする。
追加されたデータ・タイプと値 DEC Pascalでは次のデータ・タイプをサポートする。ALFA,CARDINAL,CARDINAL16, CARDINAL32,INTEGER16,INTEGER32,INTEGER64,INTSET,POINTER,UNIV_PTR, UNSIGNED16,UNSIGNED32およびUNSIGNED64。
UNSIGNED値とINTEGER変数の割り当て DEC Pascalは,UNSIGNED値が割り当てにおいてINTEGER 変数およびアレイ・インデックスに互換性を持つ。
文字のアンパックされたアレイへの文字列値の割り当て DEC Pascal は CHAR変数のARRAYが固定長の文字列として扱われることを許可する。
追加された文 DEC Pascal では次の文をサポートします。BREAK, CONTINUE, EXIT, NEXT,およびRETURN。
追加されたルーチン DEC Pascal は次の機能やプロシージャをサポートします。 ADDR,ARGC,ARGV,ASSERT,BITAND,BITNOT,BITOR, BITXOR,HBOUND,LBOUND,FIRST,FIRSTOF,LAST, LASTOF,IN_RANGE,LSHIFT,RSHIFT,LSHFT,RSHFT, MESSAGE,NULL,RANDOM,SEED,REMOVE,SIZEOF, SYSCLOCK および WALLCLOCK。
RESET,REWRITE および EXTENDに対するオプションのセカンド・パラメータ DEC Pascal は,ファイル変数に関連したファイル名に対する定数文字列表現であるセカンド・パラメータを使用できる。
コンパイラ・コマンドの切り替え DEC Pascal は,データ・タイプに対する記憶領域およびアラインメントの割り当ての指定を変更するためのスイッチを持つ。またスイッチで最適化のレベルを変更することも可能である。Alphaシステムでは,ひとつのオプションがREALおよび DOUBLEデータ・タイプの省略時の意味を制御する。また,スイッチへの引数でアラインメントに関するメッセージ,および異なるプラットフォーム間でのアラインメントの互換性や特定のプラトフォームで使用できない機能を制御する。



11.5.2 動的条件ハンドラの設定

DEC Pascal では,LIB$ESTABLISH の代わりに使用するために, ESTABLISH と REVERT という組み込みルーチンが提供されます。 LIB$ESTABLISH を宣言して使用しようとすると,コンパイル時に警告が出されます。

11.5.3 レコード・ファイルに対する省略時のアラインメント規則の変更

DEC Pascal では,フィールド・アラインメントの位置や,POS,ALIGNED,DATA属性およびデータ・コンパイラ切り替えの位置を上書きすることが可能です。

11.5.4 あらかじめ宣言されている名前の使用方法

互換性を維持するためにDEC Pascalは, 表 11-11 に示されるあらかじめ宣言されている名前を含むプログラムをコンパイルすることができますが,弊社では以下のように識別子を置き換えて使用されることをお勧めします。

表 11-11 あらかじめ宣言されている名前の使用方法
識別子 望ましい使用法
ADDR ADDRESS 機能をご使用ください
ALFA TYPE ALFA = PACKED ARRAY [1..10]OF CHAR と同じ
BITAND UAND 文と同じ
BITNOT UNOT 文と同じ
BITOR UOR 文と同じ
BITXOR UXOR 文と同じ
EXIT BREAK 文と同じ
FIRST,FIRSTOF LOWER 機能と同じ
HBOUND UPPER 機能と同じ
IN_RANGE サブレンジ・チェックができない場合のみ有効。
IN_RANGE(X) は (X=>LOWER(X))AND(X <=UPPER(X)) と同じ
INTSET TYPE INTSET = SET OF 0 .. 255; と同じ
LAST, LASTOF UPPER 機能と同じ
LBOUND LOWER 機能と同じ
LSHFT LSHIFT 機能と同じ
MESSAGE WRITELN(ERR,expression)と同じ
NEXT CONTINUE 文と同じ
NULL empty 文と同じ
REMOVE DELETE_FILE プロシージャと同じ
RSHFT RSHIFT 機能と同じ
SIZEOF SIZE 機能と同じ
STLIMIT コンパイルするが,エラーを返さない
UNIV_PTR TYPE UNIV_PTR = POINTER; と同じ



11.5.5 プラットフォームに依存する機能

DEC Pascal はコンパイルされたプラットフォームと同じプラットフォーム (オペレーティング・システムとハードウェアの組み合わせ)でのみ環境ファイルを使用できます。

さらに,VAXシステムでのみサポートされるDEC Pascalの機能を以下に示します。

  • QUADRUPLE データ型

  • H浮動小数点データ型

  • VAX Pascal バージョン 1.0 ダイナミック・アレイ

  • MFPR と MTPR という前もって宣言されたルーチン

  • [OVERLAID] 属性

  • Table of contents in listing

  • ルーチン上の最適化属性

以下にAlphaシステムでのみサポートされるDEC Pascalの機能を示します。

  • 列挙されたデータ型を読むときの省略形

  • 索引ファイル編成

  • 相対ファイル編成



11.5.6 古い機能

この節では,サポートされてはいても使用が勧められない機能について説明します。これらは,弊社の他のPascalコンパイラとの互換性のためにのみ提供されます。

/OLD_VERSION 修飾子は,コンパイラにVAX Pascalバージョン1.0の言語の定義を使用して,VAX Pascalバージョン1.0とその後のバージョンの違いを解決させます。この修飾子を指定すれば,既存のプログラムを引き続き使えます。

/G_FLOATING修飾子は,コンパイラにDOUBLE型の値に対してG_floatingの表現と命令を使用することを指定します。[[NO]G_FLOATING] 属性はOpenVMS VAXシステムでも OpenVMS Alphaシステムでも指定できます。

/G_FLOATING修飾子の使用が,ソース・プログラムやモジュール内で指定された倍精度属性と矛盾するときは,エラーとなります。倍精度数の受け渡しを行うルーチンやコンパイル単位間で複数の浮動小数点フォーマットを混在させることはできません。すべてのOpenVMS VAX プロセッサがG浮動小数点データ型をサポートするわけではありません。

これより前に,コンパイラが浮動小数点データ型を指定する方法だった, /FLOAT修飾子の説明も参照してください。/FLOAT修飾子は,AlphaシステムのみでサポートされるIEEE浮動小数点データ型も選択できます。

OVERLAID 属性はコンパイル単位で宣言された変数へ,記憶領域がどのように割り当てられるかを指定します。コンパイル・ユニットでOVERLAID が指定されると,プログラムやモジュール・レベルで宣言された変数は(STATICまたはPSECT属性を持たない限り),すべての他の上書きされたコンパイル・ユニットで,静的変数の記憶領域を上書きします。

この属性は,VAX Pascal バージョン1.0で提供された分割コンパイル機能を用いているプログラムでの使用のみを対象としています。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項