JPH05224946A - 入出力並び最適化処理方式 - Google Patents
入出力並び最適化処理方式Info
- Publication number
- JPH05224946A JPH05224946A JP5877692A JP5877692A JPH05224946A JP H05224946 A JPH05224946 A JP H05224946A JP 5877692 A JP5877692 A JP 5877692A JP 5877692 A JP5877692 A JP 5877692A JP H05224946 A JPH05224946 A JP H05224946A
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- area
- precision
- statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【目的】 計算機システムでの入出力文の処理におい
て、領域拡張された配列名が入出力並びに指定された場
合、入出力文を代入文と入出力文に展開することにより
高速化を図る。 【構成】 翻訳時オプションを解析するオプション解析
手段31と、精度拡張および、精度拡張された要素に結
合された要素の領域を拡張する精度領域拡張手段32
と、領域拡張された配列が、入出力並びに指定された場
合に、出力の場合は、一時領域に代入後、代入した領域
を出力並びに指定して、出力文を実行、入力の場合は、
一時領域を入力並びに指定した入力文を実行後領域拡張
された配列へ代入するよう変換する入出力並び変換手段
33からなる。 【効果】 領域拡張された要素が入出力並びに現れた場
合であっても、一括転送が可能になるため入出力の高速
化が図れる。
て、領域拡張された配列名が入出力並びに指定された場
合、入出力文を代入文と入出力文に展開することにより
高速化を図る。 【構成】 翻訳時オプションを解析するオプション解析
手段31と、精度拡張および、精度拡張された要素に結
合された要素の領域を拡張する精度領域拡張手段32
と、領域拡張された配列が、入出力並びに指定された場
合に、出力の場合は、一時領域に代入後、代入した領域
を出力並びに指定して、出力文を実行、入力の場合は、
一時領域を入力並びに指定した入力文を実行後領域拡張
された配列へ代入するよう変換する入出力並び変換手段
33からなる。 【効果】 領域拡張された要素が入出力並びに現れた場
合であっても、一括転送が可能になるため入出力の高速
化が図れる。
Description
【0001】
【産業上の利用分野】本発明は、FORTRANコンパ
イラとして原始プログラム中の実数演算や複素数演算の
精度を一段高い精度に変換すると共に、精度が拡張され
た要素に結合されている要素に対して、結合関係が精度
拡張以前と矛盾しないように要素の占める領域を2倍に
拡張する機能を有する場合の、書式なし入出力処理方式
に関するものである。
イラとして原始プログラム中の実数演算や複素数演算の
精度を一段高い精度に変換すると共に、精度が拡張され
た要素に結合されている要素に対して、結合関係が精度
拡張以前と矛盾しないように要素の占める領域を2倍に
拡張する機能を有する場合の、書式なし入出力処理方式
に関するものである。
【0002】
【従来の技術】一般にオペレーティングシステム(以下
OSと略記する。)にはFORTRAN言語(日本規格
協会発行の「電子計算機プログラム言語FORTRA
N、JISC−6201−1982」参照)の入出力並
びに対応しデータを処理するような機能は具備していな
い。そのためにFORTRAN文法とOS機能との間の
機能差を埋める目的でFORTRAN実行時入出力制御
機能(以下RTPと略記する)が存在し、FORTRA
Nコンパイラは入出力文をチェックし、必要に応じてR
TPを呼び出す。RTPの中では、OSが利用者の指定
した領域と外部記憶装置との間で入出力バッファを介さ
ないで転送できる機能(以下バッファレスI/Oと略記
する)を有している場合は、転送量に応じて、利用者の
指定した領域と入出力バッファとの間で、あるいは利用
者の指定した領域と外部記憶装置との間で直接転送が行
われる。
OSと略記する。)にはFORTRAN言語(日本規格
協会発行の「電子計算機プログラム言語FORTRA
N、JISC−6201−1982」参照)の入出力並
びに対応しデータを処理するような機能は具備していな
い。そのためにFORTRAN文法とOS機能との間の
機能差を埋める目的でFORTRAN実行時入出力制御
機能(以下RTPと略記する)が存在し、FORTRA
Nコンパイラは入出力文をチェックし、必要に応じてR
TPを呼び出す。RTPの中では、OSが利用者の指定
した領域と外部記憶装置との間で入出力バッファを介さ
ないで転送できる機能(以下バッファレスI/Oと略記
する)を有している場合は、転送量に応じて、利用者の
指定した領域と入出力バッファとの間で、あるいは利用
者の指定した領域と外部記憶装置との間で直接転送が行
われる。
【0003】例えば、 WRITE(1)I、J でIおよびJが変数の場合は、Iの値を入出力バッファ
に転送後、Jの値を転送する。そして入出力文が完了し
た時点あるいは入出力バッファが一杯になった時点で外
部記憶装置に対して転送される。
に転送後、Jの値を転送する。そして入出力文が完了し
た時点あるいは入出力バッファが一杯になった時点で外
部記憶装置に対して転送される。
【0004】それに対して、 WRITE(1)I でIが配列の場合は、配列Iの全要素の値を一度に外部
記憶装置に対して転送できる。そのため、配列を指定し
た場合は高速に処理することが可能である。
記憶装置に対して転送できる。そのため、配列を指定し
た場合は高速に処理することが可能である。
【0005】一方、FORTRANコンパイラは、原始
プログラム中の実数演算や複素数演算の精度を一段高い
精度に変換すると共に、精度が拡張された要素に結合さ
れている要素に対して、結合関係が精度拡張以前と矛盾
しないように要素の占める領域を2倍に拡張すること
で、原始プログラムを修正することなしに、一段高い精
度で計算することができる機能を提供している。
プログラム中の実数演算や複素数演算の精度を一段高い
精度に変換すると共に、精度が拡張された要素に結合さ
れている要素に対して、結合関係が精度拡張以前と矛盾
しないように要素の占める領域を2倍に拡張すること
で、原始プログラムを修正することなしに、一段高い精
度で計算することができる機能を提供している。
【0006】この機能を用いると、 REAL A(10000) INTEGER I(10000) EQUIVALENCE(A,I) WRITE(1)I の原始プログラムの場合は、Iは領域拡張されて連続領
域ではなくなるため、RTP内では、1要素ずつ入出力
バッファに対して転送される。
域ではなくなるため、RTP内では、1要素ずつ入出力
バッファに対して転送される。
【0007】
【発明が解決しようとする課題】一般に、RTP内で
は、連続領域で渡された入出力並びに対しては、転送量
によっては入出力バッファを介さないで外部記憶装置に
対して転送が行われるため、高速に処理されるが、連続
領域でない場合には、1要素づつ入出力バッファに転送
し、入出力文が完了した時点あるいは入出力バッファが
一杯になった時点で、外部記憶装置に対して転送が行わ
れる。これらを比較した場合、連続領域の場合の方がよ
り高速に処理される。
は、連続領域で渡された入出力並びに対しては、転送量
によっては入出力バッファを介さないで外部記憶装置に
対して転送が行われるため、高速に処理されるが、連続
領域でない場合には、1要素づつ入出力バッファに転送
し、入出力文が完了した時点あるいは入出力バッファが
一杯になった時点で、外部記憶装置に対して転送が行わ
れる。これらを比較した場合、連続領域の場合の方がよ
り高速に処理される。
【0008】従来の技術の項で示した、精度領域拡張機
能を用いた原始プログラムの例の場合には、連続領域に
ならないために、より高速に処理することができないと
いう問題があった。
能を用いた原始プログラムの例の場合には、連続領域に
ならないために、より高速に処理することができないと
いう問題があった。
【0009】本発明の目的は領域拡張された配列名が入
出力並びに指定された場合入出力文を代入文と入出力文
に展開することにより高速化を図る、入出力並びに最適
化処理展開方式を提供することにある。
出力並びに指定された場合入出力文を代入文と入出力文
に展開することにより高速化を図る、入出力並びに最適
化処理展開方式を提供することにある。
【0010】
【課題を解決するための手段】本発明の方式は、利用者
空間の記憶域と外部記憶装置との間で入出力バッファを
介さずに転送できるオペレーティングシステムと、FO
RTRAN言語プロセッサを備える計算機システムでの
入出力文の処理において、利用者がFORTRANコン
パイラに対して動作を指示した翻訳時オプションを解析
するオプション解析手段と、前記オプション解析手段に
より、原始プログラム中の実数演算や複素数演算の精度
を一段高い精度に変換すると共に、精度が拡張された要
素に結合されている要素に対して、結合関係が精度拡張
以前と矛盾しないように要素の占める領域を2倍に拡張
することを指定された場合に、その処理を行う精度領域
拡張手段と、前記精度領域拡張手段によって領域拡張さ
れた配列が書式なし入出力文の入出力並びに指定され、
かつその配列の要素数がFORTRANコンパイラによ
って事前にわかる場合に、必要なだけの領域をFORT
RANコンパイラが確保し、出力文の場合には、出力文
の前に、領域拡張された配列をFORTRANコンパイ
ラが確保した領域に代入し、確保した領域を出力並びに
指定するよう変換して目的プログラムを作成し、入力文
の場合には、確保した領域を入力並びに指定し、その後
で確保した領域から領域拡張された配列に対して代入を
行うように変換して目的プログラムを作成する入出力並
び変換手段とから構成される。
空間の記憶域と外部記憶装置との間で入出力バッファを
介さずに転送できるオペレーティングシステムと、FO
RTRAN言語プロセッサを備える計算機システムでの
入出力文の処理において、利用者がFORTRANコン
パイラに対して動作を指示した翻訳時オプションを解析
するオプション解析手段と、前記オプション解析手段に
より、原始プログラム中の実数演算や複素数演算の精度
を一段高い精度に変換すると共に、精度が拡張された要
素に結合されている要素に対して、結合関係が精度拡張
以前と矛盾しないように要素の占める領域を2倍に拡張
することを指定された場合に、その処理を行う精度領域
拡張手段と、前記精度領域拡張手段によって領域拡張さ
れた配列が書式なし入出力文の入出力並びに指定され、
かつその配列の要素数がFORTRANコンパイラによ
って事前にわかる場合に、必要なだけの領域をFORT
RANコンパイラが確保し、出力文の場合には、出力文
の前に、領域拡張された配列をFORTRANコンパイ
ラが確保した領域に代入し、確保した領域を出力並びに
指定するよう変換して目的プログラムを作成し、入力文
の場合には、確保した領域を入力並びに指定し、その後
で確保した領域から領域拡張された配列に対して代入を
行うように変換して目的プログラムを作成する入出力並
び変換手段とから構成される。
【0011】
【実施例】次に、本発明の一実施例について図面を参照
しながら詳細に説明する。
しながら詳細に説明する。
【0012】第1図は、本発明の一実施例を示す構成図
である。第1図を参照すると、本発明の一実施例は、翻
訳時オプション1と、原始プログラム2と、翻訳部3
と、目的プログラム4と、RTP5と、OS6と、記憶
域7と、外部記憶装置8とから構成される。翻訳部3は
オプション解析手段31と精度領域拡張手段32と入出
力並び変換手段33とからなり、記憶域7は同じ領域を
共有するAおよびI71とIW72とからなる。
である。第1図を参照すると、本発明の一実施例は、翻
訳時オプション1と、原始プログラム2と、翻訳部3
と、目的プログラム4と、RTP5と、OS6と、記憶
域7と、外部記憶装置8とから構成される。翻訳部3は
オプション解析手段31と精度領域拡張手段32と入出
力並び変換手段33とからなり、記憶域7は同じ領域を
共有するAおよびI71とIW72とからなる。
【0013】次に、本実施例の動作を第1図を用いて説
明する。ソースプログラム1内で REAL A(10000) INTEGER I(10000) EQUIVALENCE(A,I) WRITE(1)I というソースを実行することを考える。
明する。ソースプログラム1内で REAL A(10000) INTEGER I(10000) EQUIVALENCE(A,I) WRITE(1)I というソースを実行することを考える。
【0014】まず、翻訳部3中のオプション解析手段3
1が呼び出され、翻訳時オプションを解析する。ここで
は原始プログラム中の中の実数演算や複素数演算の精度
を一段高い精度に変換すると共に、精度が拡張された要
素に結合されている要素に対して、結合関係が精度拡張
以前と矛盾しないように要素の占める領域を2倍に拡張
する機能を示す翻訳時オプション文字列AUTODBL
=DBLPADが指定されているか否かを調べる。ここ
では翻訳時オプション1より、指定されていると認識さ
れる。次に指定された翻訳時オプションを実現するため
に精度領域拡張手段32が呼び出される。精度領域拡張
手段32では原始プログラム1を解析し、精度拡張する
必要のある要素あるいは精度拡張された要素に結合され
ているために領域拡張が必要となる要素があるか否か解
析し、精度拡張および領域拡張を行う。この例の場合
は、Aが実数演算のため、精度拡張が必要であり、また
Aに結合されているIは領域拡張が必要であることがわ
かり、これらに対してそれぞれ精度拡張および領域拡張
を行う。
1が呼び出され、翻訳時オプションを解析する。ここで
は原始プログラム中の中の実数演算や複素数演算の精度
を一段高い精度に変換すると共に、精度が拡張された要
素に結合されている要素に対して、結合関係が精度拡張
以前と矛盾しないように要素の占める領域を2倍に拡張
する機能を示す翻訳時オプション文字列AUTODBL
=DBLPADが指定されているか否かを調べる。ここ
では翻訳時オプション1より、指定されていると認識さ
れる。次に指定された翻訳時オプションを実現するため
に精度領域拡張手段32が呼び出される。精度領域拡張
手段32では原始プログラム1を解析し、精度拡張する
必要のある要素あるいは精度拡張された要素に結合され
ているために領域拡張が必要となる要素があるか否か解
析し、精度拡張および領域拡張を行う。この例の場合
は、Aが実数演算のため、精度拡張が必要であり、また
Aに結合されているIは領域拡張が必要であることがわ
かり、これらに対してそれぞれ精度拡張および領域拡張
を行う。
【0015】次に翻訳部3では、入出力文であるWRI
TE文を認識し、入出力並び変換手段33を呼び出す。
入出力並び変換手段33では入出力並びを解析し、指定
された入出力並びが領域拡張された要素であるか否かを
調べ、かつ領域拡張された場合に、連続領域にするため
の領域の大きさがわかるか否か調べる。この例では入出
力並びIは領域拡張されており、また、連続領域にする
ための領域IW72は要素数10000で確定になるこ
とが、配列I71の型宣言よりわかる。このためFOR
TRANコンパイラは、WRITE文の前に、領域拡張
され連続領域になっていない配列I71から連続領域に
するために確保された配列IW72への代入を行い、次
に配列IW72を入出力並びに持つWRITE文を実行
する目的プログラム4を作成する。これにより、WRI
TE文で指定されたIW72は連続領域であり、また転
送量も多いことから、入出力バッファを介さないで直接
外部記憶装置8に対して出力することが可能となり、高
速に処理される。
TE文を認識し、入出力並び変換手段33を呼び出す。
入出力並び変換手段33では入出力並びを解析し、指定
された入出力並びが領域拡張された要素であるか否かを
調べ、かつ領域拡張された場合に、連続領域にするため
の領域の大きさがわかるか否か調べる。この例では入出
力並びIは領域拡張されており、また、連続領域にする
ための領域IW72は要素数10000で確定になるこ
とが、配列I71の型宣言よりわかる。このためFOR
TRANコンパイラは、WRITE文の前に、領域拡張
され連続領域になっていない配列I71から連続領域に
するために確保された配列IW72への代入を行い、次
に配列IW72を入出力並びに持つWRITE文を実行
する目的プログラム4を作成する。これにより、WRI
TE文で指定されたIW72は連続領域であり、また転
送量も多いことから、入出力バッファを介さないで直接
外部記憶装置8に対して出力することが可能となり、高
速に処理される。
【0016】入力文の場合も同様であり、連続領域にす
るために確保された領域IW72へ入力するREAD文
がまず実行され、次に連続領域IW72から領域拡張さ
れ連続領域になっていない配列I71への代入が行われ
ることにより高速に処理される。
るために確保された領域IW72へ入力するREAD文
がまず実行され、次に連続領域IW72から領域拡張さ
れ連続領域になっていない配列I71への代入が行われ
ることにより高速に処理される。
【0017】
【発明の効果】以上説明したように、精度領域拡張機能
により、連続領域でなくなった入出力並びを連続領域に
変換することによりバッファレスI/Oが可能になり、
入出力文が高速に処理できるようになるという効果があ
る。ベクトル化機構等により代入文がベクトル化できれ
ば、より高速化が図れる。
により、連続領域でなくなった入出力並びを連続領域に
変換することによりバッファレスI/Oが可能になり、
入出力文が高速に処理できるようになるという効果があ
る。ベクトル化機構等により代入文がベクトル化できれ
ば、より高速化が図れる。
【図1】本発明の一実施例を示す構成図である。
1 翻訳オプション 2 原始プログラム 3 翻訳部 31 オプション解析手段 32 精度領域拡張手段 33 入出力並び変換手段 4 目的プログラム 5 RTP 6 OS 7 記憶域 71 A、Iの記憶域 72 IWの記憶域 8 外部記憶装置
Claims (1)
- 【請求項1】 利用者空間の記憶域と外部記憶装置との
間で入出力バッファを介さずに転送できるオペレーティ
ングシステムと、FORTRAN言語プロセッサを備え
る計算機システムでの入出力文の処理において、 利用者がFORTRANコンパイラに対して動作を指示
した翻訳時オプションを解析するオプション解析手段
と、 前記オプション解析手段により、原始プログラム中の実
数演算や複素数演算の精度を一段高い精度に変換すると
共に、精度が拡張された要素に結合されている要素に対
して、結合関係が精度拡張以前と矛盾しないように要素
の占める領域を2倍に拡張する精度領域拡張手段と、 入出力並びに指定された場合に、出力のときは一時領域
に代入後、代入した領域を出力並びに指定して出力文を
実行し、入力のときは一時領域を入力並びに指定した入
力文を実行後拡張された配列へ代入するよう変換する入
出力並び変換手段とから構成されることを特徴とする入
出力並び最適化処理方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5877692A JPH05224946A (ja) | 1992-02-13 | 1992-02-13 | 入出力並び最適化処理方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5877692A JPH05224946A (ja) | 1992-02-13 | 1992-02-13 | 入出力並び最適化処理方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05224946A true JPH05224946A (ja) | 1993-09-03 |
Family
ID=13093961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5877692A Pending JPH05224946A (ja) | 1992-02-13 | 1992-02-13 | 入出力並び最適化処理方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05224946A (ja) |
-
1992
- 1992-02-13 JP JP5877692A patent/JPH05224946A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2666847B2 (ja) | 異種言語間連絡方式 | |
US5586328A (en) | Module dependency based incremental compiler and method | |
JPS6124729B2 (ja) | ||
JP2817786B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
JPH08305583A (ja) | Cpuシミュレーション方法 | |
JPH05224946A (ja) | 入出力並び最適化処理方式 | |
JPH05346332A (ja) | 試験プログラム実行方法 | |
JPH08180094A (ja) | アーキテクチャ・シミュレータ | |
JPH03282935A (ja) | コンパイル処理装置及びコンパイル処理方式 | |
JPS62204374A (ja) | 2倍演算最適化処理方式 | |
JPH02308330A (ja) | 知識情報処理装置 | |
JP3327662B2 (ja) | プログラム翻訳装置及びプログラム翻訳方法 | |
JPH06202903A (ja) | Cpuシミュレーション方法およびcpuシミュレータ | |
JPS62219129A (ja) | コンパイラにおける和計算の部分展開処理方式 | |
JP3323147B2 (ja) | コンパイル装置、コンパイル方法およびコンパイラプログラムを記録した記録媒体 | |
JP3114884B2 (ja) | ファジィ推論処理コンパイルシステム | |
JPH06119203A (ja) | デバック行削除装置 | |
JPH07192034A (ja) | インタプリタ型シミュレーション方法 | |
JPH06324883A (ja) | Cpuシミュレータ | |
JPH0561687A (ja) | コンパイラの処理方式 | |
JPH0612259A (ja) | コンパイラ処理方式 | |
JPS63214838A (ja) | デ−タフロ−グラフ作成方式 | |
JPH11161501A (ja) | コンパイル装置 | |
JPH07105014A (ja) | 言語処理システムのシンボル処理方式 | |
JPH06282440A (ja) | プログラム編集方法、プログラム編集・実行方法およびコンピュータシステム |