• 検索結果がありません。

野 崎 剛 一 1.

N/A
N/A
Protected

Academic year: 2021

シェア "野 崎 剛 一 1."

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)

FORTRAN 7 7 文法と FORTRAN GE/HE 文法との相違点について

量豊里豊

情報処理センタ一 野 崎 剛 一 1 .   FORTRAN  77 について

F  ACOM OSIV  I F 4   FORTRAN77 標 準 型 は 新 し 心 概 念 に 基 づ く 言 語 仕 様 を 持 つ FORTRAN システムであり,高速翻訳,デバッグ作業,一般パッチジョプ,会話型ジョプなどの広範朗の用 途をカバーする標準 FORTRAN システムである。乙のプログラムは,新しい国際規格 rANS

FORTRAN X3.9 ー 1978JI C 準拠し,かっ FORTRAN GE/HE の言語機能を包含し,更に いくつかの機能を拡張している。これらの関係を図示すると以下の通りである。

また,原始プログラムの組込み,新しいディバッグ用オプション,動的なデータセット割当て などの豊富なサポート機能をもっている。

そ乙で,近い将来 FORTRAN というと. FORTRAN  7 7 を示す乙とになると思うので富士通提 供の資料等を参考 ICFORTRAN77 の特長を簡単に解説する。

なお,詳細な点については. F  ACOM OSIV FORTRAN 77 文法書を参照されたい。

2 .   FORTRAN 77 の拡張機能

OSIV FORTRAN  77 の言語仕様は. OSIV FORTRA N l V   (GE/HE用)から以下の機能が拡張 されている。

文字型の変数及び関数の定義ができ,乙れにより文字部分列が導入され, ζ れらの組合せで 文字式や文字関係式が繕成できる。

配列宣言における寸法宣言子は,整数式である寸法の下限及び上限を指定できる。

‑101‑

(2)

亙亙亙豆

・ 式の使用場所の増加(出力並び) ,複素数データの比較し EQ. 及 び . NE.) ,論理演算 子 (.EQV. 及 び . NEQV.  )の追加がある。

手続き副プログラムの呼出し後のデータの値を保障するための SAVE 文がある

0

.  定数に対して名前を付けるための PARAMETER 文がある。

条件に従って複数個の実行文を制御するための文として,ブロック I F 文 , ELSE I F 文 , E L ‑ SE 文及び ENDI F 文がある。

• DO 文の制御変数は整数型,実数型,倍精度実数型及び 4 倍精度実数型の変数名が許される。

また,各パラメタとしては,整数型,実数型,倍精度実数型及び 4 倍精度実数型の算術式が許 される。

データセットの存在,創成及び削除,並びにデータセットとデータセット識別番号の結合な どの新しい入出力の概念が導入され,入出力処理の機能が大幅に拡張されている。また,出力 並びに式を書く乙とができる。

書式仕様は文字式で与える乙とができる。また,新しい編集記述子として,符号編集,空白 制御及びコロン編集などがあり,他の編集記述子も機能拡張されている。

新しい入出力文として,内部データセット入出力文, OPEN 文 , CLOSE 文及び INQUIRE 文 がある。

組込み関数はすべて実引数として指定でき,その場合には INTRINSIC 文で指定する。

引数のない文関数及び関数副プログラムの定義と引用ができる。

・ 算術式におけるべき乗演算の底とべき指数の型の組み合わせは,算術型なら何でも許される。

拡張された DO 文として, DO WHILE 文及び DOUNTIL 文がある。

3 .   コンパイラの機能

OSIV /F4 FORTRAN 77 コンノ f イラシステムは前述の言語の面からだけでなく,プロセッサの 函からも,多様なユーザのニーズに応じた使い易いシステムとするために,各種の機能がサポー

トされている。

FORTRAN77 コンパイラシステムは,既存の FORTRANGE 及び HE のサポート機能を包含し,

さらにいくつかの機能を拡張している。

次の表 l

FORTRAN77 コンパイラのサポート機能を示す。

‑102‑

(3)

豊重量並

機 能 項 目 機 能 概 要 GE HE 77  備 考 自由形式の原始プログラムが扱える。 O  × 

原始プログラム (FREE オプション)

の入力 仮想記憶領域上の原始プログラムを入力す O  × 

る乙とができる。 ( I NLIST オプション)

原始プログラムを 1 文づっ構文検査しなが O  O  O 

ら作成する乙とができる。

(シンタックスチェッカ)

データセット内のメンバを原始プログラム ×  ×  O 

中l ζ 組込むととができる。 (INCLUDE 機能)

DO 文で構成されるループ内の配列要素の O  O  FORTRAN 77 の 目的プログラム ヨ l 用に関して,ループ内で変化しない演算を OPT  場合には部分列の

の最適化 ( 1 )  

引用も対象となる。

ループ外に出したり,ループ内で使用頻度の 高いデータをレジスタ上に割り付けたりして,

ループ内の実行命令の最適化を図る。

上記の最適化はもち論,原始プログラムの ×  O  O 

論 理 構 造 を 解 析 し レ ー プ 構 造 や デ ー タ の 使 OPT OPT 

( 2 )   ( 2 )  

用頻度に基づいて最大限の最適化を行うもの . 

で,非常に実行効率の良いオブジェクトモジ ュ‑)レが得られる。

オブジェクトモジュールを仮想記憶域内に O  × 

GO オプション 作り,ローターによりロードモジュールの作成 と実行を直ちに行うものであり. 1 ジョブス

テップで翻訳から実行まで行うので,大幅な . 

効率向上となる。

リエントラント 再入力可能な FORTRAN プログラ.ムを簡単 O  O  O 

プログラム に作成できる。 (RENT オプション)

自動精度拡張 翻訳時のオプションの指不により,原始プ O  O  O 

機能 ログラムで指定した型の定数,変数,配列及 び関数を一段高い型の定数,変数,配列及び 関数として翻訳する構能である。

上記の機能と,更に EQUIVALENCE 文に ×  O  O 

よるメモリ共用関係の是正を指定できる。

︒ δ

n U

 

(4)

量宣豊塾

機 能 項 目 機 能 概 要 GE HE 77  備 考 自動精度縮少 実数型及び複素数型の演算は,数学でいう O  O  O 

機 能 実数及び複素数の演算を近似するもので,修 (PR オプション)

正演算どとに丸め誤差が入り最終結果の精度 が問題となる乙とがある。演算精度を微小変 動すれば,結果もそれにつれて変動すると考 えられ,丸め誤差の影響を知る乙とができる。

との機能は通常の精度から 0‑15 ビット精度 を縮少し 2 回以上実行して丸め誤差の影響 を知るものである。

ドキュメンテー 相互参照表 (XREF) .マップリスト (M O  O  O 

ション AP) 及 び 統 計 情 報 な ど の 印 刷 情 報 を 合 わ せ て,優れたドキュメントが得られ,プログラ ムの保守性を高める乙とができる。

原始プログラムの論理構造を明確に表現し ×  O  O  O P T ( 2 ) の場合だけ

たリストを得る乙とができる。

(FORMAT オプション)

言語間結合 アセンブラ. P L l I 及 び COBOL な ど の 他 言 O  O  O  ( L I L オプ、ンョン) 語プログラムとの結合を行うことができる。

デバッグ機能 デバッグ文により添字式の検査,値の代入 O  × 

等デバッグ作業が柔軟に行える。

DEBUG オプションの指定により,上記の ム ×  O  GE は ARGCHK オ 機能のほかに,実引数と仮引数の対応の検査 プションにより引

が行える。 数の個数の対応だ

けを検査する。

TEST オ プ シ ョ ン の 指 定 に よ り

y

会 話 形 式 O  × 

で動的なデバッグ作業が行える。

(FORTRAN インタラクティプデバッガ)

エラーモニタ 実行時に検出される各種のエラーに対して O  O  O 

最大限の標準修正を行う。またユーザによる 独自のエラー修正も簡単に行える。

一 104‑

(5)

E 宣車亙

機 能 項 目 機 能 概 要 GE HE 77  備 考 動的なデータセ ジョプの実行中に動的にデータセットを割 ×  ×  O 

ットの割当て 当てる乙とができる。

翻訳時には,コンパイラのための DD 文と して SYSIN だけの定義でコンパイラは動作可 能である。

実行時には,必要になった時点でデータセ ットを割当てたり,不要になった時点で解放 するなど,プログラム内で容易に各種データ セットの生成及び削除を行うととができる。

TSS  コンパイラの起動から目的プログラムの実 O  HE では実行まで

行までをプロンプタを介して行うコマンドが を 1 コマンドで行

用意されている。 えない。

実行時に入力データの促進や誤ったデータ O  O  O 

入力 i ζ対する再入力などを行える。

リエントラント コンパイラ,会話プロセッサ及びライプラ O  ~ HE コンノ f イラは

なシステムプロ リはすべてリエ y トラントなプログラムとな リエントラント構 グラム っている。従 ρ てコンパイラをリンクパック .  造でない。

エリアに置けば,複数ジョブ聞における共用 が可能になり,システムのスループットの向 上が図れる。

備考1. 0 はサポートされているととを示す。

×はサポートされていないととを示す。 . 

ムは条件付きでサポートされている乙とを示す。

4 .   文法の相違点

ζ ζ では, FORTRAN GE 又は HE で作られた FORTRAN プログラムを, FORTRAN 7 7 コン パイラシステムで実行する場合の注意事項について述べる。

1 .   1  原始プログラム

伊 A ∞ M OS/IV FORTRAN 文法書 J で規定される言語仕様にのっとって記述された l ORTRAN プログラムは,ほとんどのものが何の変更もしないで, FORTRAN 77 コンパイラ

システムで実行することができるが,以下の項目を含むプログラム l ζ 対しては,原始プログ ラムの修正が必要となる。

( 1 )   基本外部関数名が指定された EXTERNAL 文

基本外部関数名がアンパサンドなしで EXTERNAL 文に指定された場合,すなわち基本

1 0 5  ‑

(6)

豆査重重

外部関数名を実引数として使用したい場合 K は,その関数名を INTRINSIC 文で指定するよ うに修正する必要がある。

また,基本外部関数名がアンパサンドっきで EXTERNAL 文に指定された場合には,そ の関数名をアンパサンドなしで EXTERNAL 文に指定するように修正する必要がある。

( 2 )   DO ループの繰返し回数

FORTRAN GE 及び HE では. DO ループの繰返し回数rは次の式で求めている。

r=MAX((ffi2 ‑f f i l  ) / f f i 3   +  1 . ム )

( ζ 乙で. f f i l .   f f i 2   • f f i 3は各々初期値,終値,増分値ノマラメタである。) 乙れは,との DO 文で定義される DO の範聞が 1 回は必ず実行される ζ とを意味している。

乙れに対して. FORTRAN 77 での繰返し回数r

I

は次の式で求めている。

= MAX  CINT  ( ( f f i 2  ‑f f i l   +  f f i 3  )  I  f f i 3 )   • Q )  

すなわち. FORTRAN 77 では DO の範囲が 1 回も実行されない場合があるので,そのよ うな場合には原始プログラムの修正が必要となる。

( 3 )   単純並びに括孤でくくった入出力並び

FORTRAN 77 では,括孤でくくられた単純並びを入出力並びとして指定する乙とはで きないので,乙の場合には,原始プログラムの修正が必要となる。例えば,

WRITE (  6. 1  0  0)  (A. B  • C)  は,次のように修正する必要がある。

WRITE (6  • 1  0  0 )   A  • B  • C 

( 4 )   空白欄記述子

FORTRANN の空白欄記述子 (nX) は. FORTRAN 77 では位置設定編集記述子と呼ば れ,出力における書式仕様の要素として使用された場合には,その動作が FORTRANN と 異なる。

FORTRAN では. nX は n 個の空白を FORTRAN 記録に挿入するが. FORTRAN 77 では,

FORTRAN 記録の文字の位置を n 文字だけ進んだ位置に設定するだけで,空白は挿入され なし、。

ただし. FORTRAN 77 においても最初に用意される FORTRAN 記録は,空白で埋めら れているので,一般の使用法では問題はなく,次のような場合にだけ FORTRANN と異な る 。

出力の書式仕様が次の形式の場合 ζ l ,

FORMAT (  5H  w  FFFF  • 1  4  • T  2  • 4X  • 1  2 )  

FORTRAN 77 では,】 FFFFjjii /ii  は I4 1C対応する変数 7 ¥ FORTRAN  N では, u W

L...J山

I j j i i j j は 1 2 1 ζ対応する変数 ! 

となる。 ¥ の 値 と す る 。 /

‑106‑

(7)

藍査璽亙

ζ の例のような使用をしているプログラムの場合には, nX を n 個の空白文字に修正変吏 する必要がある。

( 5 )   総称名としての REAL 及 び CMPLX

REAL 及ひ 'CMPLX の組込み関数名を総称名として使用している場合, FORTRANN と FORTRAN  77 では,選択される組込関数の機能が異なるので,固有名による組込み関数 の引用に修正する必要がある。

( 6 )   FORTRAN  77 互換仕様

FORTRAN  77 互換仕様とは, FORTRANN では標準仕様(文法書で規定)の機能では あるが, FORTRAN 77 の新しい機能で代替できるので, FORTRAN 77 の文法書では規定 されていない機能の乙とである。

乙れらの機能を使用すると, FORTRAN  77 コンパイラは響告のメッセージを出力し,

原始プログラムの修正を促す。乙れは,今後の原始プログラムのポータビリティを考えた 場合 l ζ ,できれば原始プログラムを修正した方が望ましいと考えるからである。

FORTRAN 77 互換仕様には,以下のものがある。

a)  DEFINEFILE 文と直接入出力文

DEFINEFILE を削除して,直接入出力文は FORTRAN 77 の新しい形式に変換する必 要がある。

b)  GENERIC 文

GENERIC 文がなくても,総称名の扱いとなる。

c)文字列の比較と代入文

新機能である文字型を使用して,比較と代入を行う乙とができる。

d)  ENCODE/DECODE 文

新機能である内部データセット入出力文に変換できる。

( 7 )   FORTRAN 77 でサポートされない機能

FORTRANN で互換仕様(文法書で規定されていない)の機能の中で,以下のものは F ‑ ORTRAN  77 ではサポートされない。

• 2 バイトの論理型

• DOUBLE INTEGER 及 び DOUBLE PRECISION  COMPLEX の型指定 .I=&n の形式の文番号代入文

• ASSIGN 文で指定する 2 バイトの整数型の変数名

・割当て形 GOTO 文で指定する 2 バイトの整数型の変数名 .二分岐論理 I F 文

• 2 バイトの整数型の変数名である書式識別子

• UNLOAD 文

‑107‑

(8)

亙査董韮

‑DCLOG  • DCEXP  • DCSQRT  • DCSIN  • DCCOS  • COT  • DCOT  • DCABS  • LABS  • DMAXO  • LMAX  0  • LMAX  1  • DMIN  0  • LMIN 0  • LMIN 1  • LMOD  • LINT  • LDINT. 

IDFIX • LFIX  • LDFIX  • LSIGN  • LDIM  • ISNGL  • IDBLE の基本外部関数

‑TYPE 文

1 . 2  オブジェクトモジュー J

FORTRAN  77 コンパイラで作られたオプジェクトモジュールと FORTRANGE 又は HE コンパイラで作られたオプジェクトモジュールの結合は,ライブラリとして FORTRAN 77  ライブラリを使用すれば,原始プログラムに何の手も加えずにできる。

ただし,乙のような使用法をする場合には. FORTRAN  77 のシステム編集時に. FORT‑

RAN  77 インタフェースルーチンを組込む必要がある。(詳細は I システム編集の方法」

を参照されたい。

1 . 3  オプション

FORTRAN  GE/HE コンパイラのオプションの中で,以下のものは FORTRAN 77 ではサ ポートされない。

a)  ISN/NOISN 

MAP/NOMAP で代替できる。

b)  STATIS/NOSTATIS 

PRINT  INOPRINT で代替できる。

c)  DECK/NODECK 

OBJECT/NOOBJECT で代替できる。

d)  NAME  (プログラム名) PROGRAM 文で代替できる。

e)  DPROF/NODPROF 

FORTUNE を使用する乙とにより代替できる。

f)  DOV  AL (0  I  1  I  2  I  3)  言語仕様の相違から意味がない。

g)  INLOG 2/NOINLOG 2  言語仕様の相違から意味がない。

h) DOUBLE/NODOUBLE. QUADINOQUAD  AUTODBL で代替できる。

i)  JISF 

言語仕様の相違から意味がない。

108‑

参照

関連したドキュメント

スライダは、Microchip アプリケーション ライブラリ で入手できる mTouch のフレームワークとライブラリ を使って実装できます。 また

災害発生当日、被災者は、定時の午後 5 時から 2 時間程度の残業を命じられ、定時までの作業と同

大阪府では、これまで大切にしてきた、子ども一人ひとりが違いを認め合いそれぞれの力

私たちは主に 2019

一︑意見の自由は︑公務員に保障される︒ ントを受けたことまたはそれを拒絶したこと

都調査において、稲わら等のバイオ燃焼については、検出された元素数が少なか

た意味内容を与えられている概念」とし,また,「他の法分野では用いられ

2会社は, 条件を変更のうえ保険契約を締結したと染とめられる場合には,