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‑
亙亙亙豆
・ 式の使用場所の増加(出力並び) ,複素数データの比較し 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‑
豊重量並
機 能 項 目 機 能 概 要 GE HE 77 備 考 自由形式の原始プログラムが扱える。 O × O
原始プログラム (FREE オプション)
の入力 仮想記憶領域上の原始プログラムを入力す O × 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 × O
GO オプション 作り,ローターによりロードモジュールの作成 と実行を直ちに行うものであり. 1 ジョブス
テップで翻訳から実行まで行うので,大幅な .
効率向上となる。
リエントラント 再入力可能な FORTRAN プログラ.ムを簡単 O O O
プログラム に作成できる。 (RENT オプション)
自動精度拡張 翻訳時のオプションの指不により,原始プ O O O
機能 ログラムで指定した型の定数,変数,配列及 び関数を一段高い型の定数,変数,配列及び 関数として翻訳する構能である。
上記の機能と,更に EQUIVALENCE 文に × O O
よるメモリ共用関係の是正を指定できる。
」