JPH0334029A - 索引入出力の指定方式 - Google Patents
索引入出力の指定方式Info
- Publication number
- JPH0334029A JPH0334029A JP16700889A JP16700889A JPH0334029A JP H0334029 A JPH0334029 A JP H0334029A JP 16700889 A JP16700889 A JP 16700889A JP 16700889 A JP16700889 A JP 16700889A JP H0334029 A JPH0334029 A JP H0334029A
- Authority
- JP
- Japan
- Prior art keywords
- read
- exists
- record
- key
- specifier
- 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.)
- Granted
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概 要〕
高級言語の入出力処理を行う索引入出力の指定方式に関
し、 ユーザプログラムが簡単であり、かつ多機能とする索引
入出力の指定方式を目的とし、l/コード単位でキーが
設けられたファイルをアクセスして読み出したキーが他
のレコードに存在するか否かの判定を指示する指定子が
、FORTRANの索引READ文中に存在するかを判
別し、前記指定子が存在するときに読み出したキーが他
のレコードに存在するか否かの判定を行うように構成す
る。
し、 ユーザプログラムが簡単であり、かつ多機能とする索引
入出力の指定方式を目的とし、l/コード単位でキーが
設けられたファイルをアクセスして読み出したキーが他
のレコードに存在するか否かの判定を指示する指定子が
、FORTRANの索引READ文中に存在するかを判
別し、前記指定子が存在するときに読み出したキーが他
のレコードに存在するか否かの判定を行うように構成す
る。
本発明は、FORTRAN等の高級言語を実行するコン
ピュータシステムに係り、さらに詳しくは、高級言語の
入出力処理を行う索引入出力の指定方式に関する。
ピュータシステムに係り、さらに詳しくは、高級言語の
入出力処理を行う索引入出力の指定方式に関する。
近年、コンピュータシステムの多様化に伴い、多機能を
備えた処理プログラムが要求されている。
備えた処理プログラムが要求されている。
特に、高級言語において処理がどのように?!雑であっ
ても、その処理をプログラムによって実現できるように
したインタプリタやコンパイラが要求されている。しか
し、FORTRANのインタプリタやコンパイラにおい
ては、複数レコードに同一のキーが存在するようなデー
タは処理することはできなかった。例えば0PEN文に
よってファイルを指定するとともに、キーフィールドや
アクセスを指定してオープンした後、READ文によっ
て指定されたキーを読み取る場合、その読み取ったキー
が他のレコードに存在するか否かを判別することはでき
なかった。
ても、その処理をプログラムによって実現できるように
したインタプリタやコンパイラが要求されている。しか
し、FORTRANのインタプリタやコンパイラにおい
ては、複数レコードに同一のキーが存在するようなデー
タは処理することはできなかった。例えば0PEN文に
よってファイルを指定するとともに、キーフィールドや
アクセスを指定してオープンした後、READ文によっ
て指定されたキーを読み取る場合、その読み取ったキー
が他のレコードに存在するか否かを判別することはでき
なかった。
〔発明が解決しようとする課題〕
このため、例えば複数レコードにわたって同一キーが存
在したような場合には、目的の処理を行うことができな
いという問題を有していた。
在したような場合には、目的の処理を行うことができな
いという問題を有していた。
従来においてはこのような問題を発生しないために、人
力時に他のレコードに同一キーが存在しないようにチエ
ツクしていた。しかしながらこのチエツクは人手による
ものであり、チエツクに多くの時間を有するという問題
があった。
力時に他のレコードに同一キーが存在しないようにチエ
ツクしていた。しかしながらこのチエツクは人手による
ものであり、チエツクに多くの時間を有するという問題
があった。
本発明は、ユーザプログラムが簡単であり、かつ多機能
とする索引入出力の指定方式を目的とする。
とする索引入出力の指定方式を目的とする。
〔課題を解決するための手段および作用〕FORTRA
N言語においで、READ文中にレコード単位でキーが
設けられたファイルをアクセスして読み出したキーが他
のレコードに存在するか否かの判定を指示する指定子を
設ける。ユーザプログラムを例えばインタプリタで実行
する場合には、前述のレコード単位でキーが設けられた
ファイルをアクセスして読み出したキーが他のレコード
に存在するか否かの判定を指示する指定子がREAD文
中に存在するかを判別し、存在する場合にはその判定を
行いユーザプログラムにその結果を渡す。またコンパイ
ラであるならば、前記指定子が存在するか否かを判別し
、存在するときには読み出したキーが他のレコードに存
在するか否かの判定を行う処理プログラムを発生し、オ
ブジェクトプログラムに加える。このコンパイラによっ
て得られたオブジェクトプログラムには、READ文に
対応した処理を実行して1レコード読み取った後に、続
く1レコードをも読み取って前記1レコードに存在する
キーが前記続くレコードに存在するかを判別する処理が
組み込まれる。前記指定子は例えばC0NTKEY等の
簡単な指定でよく、簡単な指定子によって索引入出力に
おける連続したキーの判別を行うことができる。
N言語においで、READ文中にレコード単位でキーが
設けられたファイルをアクセスして読み出したキーが他
のレコードに存在するか否かの判定を指示する指定子を
設ける。ユーザプログラムを例えばインタプリタで実行
する場合には、前述のレコード単位でキーが設けられた
ファイルをアクセスして読み出したキーが他のレコード
に存在するか否かの判定を指示する指定子がREAD文
中に存在するかを判別し、存在する場合にはその判定を
行いユーザプログラムにその結果を渡す。またコンパイ
ラであるならば、前記指定子が存在するか否かを判別し
、存在するときには読み出したキーが他のレコードに存
在するか否かの判定を行う処理プログラムを発生し、オ
ブジェクトプログラムに加える。このコンパイラによっ
て得られたオブジェクトプログラムには、READ文に
対応した処理を実行して1レコード読み取った後に、続
く1レコードをも読み取って前記1レコードに存在する
キーが前記続くレコードに存在するかを判別する処理が
組み込まれる。前記指定子は例えばC0NTKEY等の
簡単な指定でよく、簡単な指定子によって索引入出力に
おける連続したキーの判別を行うことができる。
以下、図面を用いて本発明の詳細な説明する。
第1図は本発明の実施例のコンパイラにおけるREAD
文の処理フローチャート、第2図は本発明の実施例のシ
ステム図である。
文の処理フローチャート、第2図は本発明の実施例のシ
ステム図である。
第2図におけるFORTRANプログラムのREAD文
(READ(10,C0NTKEY=C[lNT、、、
、) )が存在した場合、例えばVSAMのアクセス処
理によって1レコードの入力を行う(SL)。この処理
(S1)はREAD文における1レコードの読み出しの
処理であり、第2図には書かれていないが、例えばキー
変数等への格納はこの処理によってなされる。基本的な
READ文の実行の処理(S1)の後、このREAD文
中C0NTKEY指定子の指定があるか否かを判別する
(S2)。判別(S2)においてC0NTKEY指定子
が存在しない場合(No)にはそのREAD文での実行
を終了(END)する。一方判別(S2)において存在
すると判別した時(YES)には、続くレコードを読み
取り、先に読み取ったキーと同一のキ−が存在するかを
判別する(S3)。本発明の実施例においては、FOR
TRANライブラリ内で一致しているか否かを判別し、
一致している時にはマクロ詳細コードをX゛08″ と
する。よって、処理S3ではマクロ詳細コードがX’0
8’ であるかを判別する。例えばこのマクロ詳細コー
ドはC0NTKEY指定に対する処理プログラムのコー
ドである。
(READ(10,C0NTKEY=C[lNT、、、
、) )が存在した場合、例えばVSAMのアクセス処
理によって1レコードの入力を行う(SL)。この処理
(S1)はREAD文における1レコードの読み出しの
処理であり、第2図には書かれていないが、例えばキー
変数等への格納はこの処理によってなされる。基本的な
READ文の実行の処理(S1)の後、このREAD文
中C0NTKEY指定子の指定があるか否かを判別する
(S2)。判別(S2)においてC0NTKEY指定子
が存在しない場合(No)にはそのREAD文での実行
を終了(END)する。一方判別(S2)において存在
すると判別した時(YES)には、続くレコードを読み
取り、先に読み取ったキーと同一のキ−が存在するかを
判別する(S3)。本発明の実施例においては、FOR
TRANライブラリ内で一致しているか否かを判別し、
一致している時にはマクロ詳細コードをX゛08″ と
する。よって、処理S3ではマクロ詳細コードがX’0
8’ であるかを判別する。例えばこのマクロ詳細コー
ドはC0NTKEY指定に対する処理プログラムのコー
ドである。
このコードを判別しX″08’ である時(YES)に
は、C0NTKEY指定子に真の値を返却する(S4)
。またX”08゛ でない時にはC○NTKEY指定子
に偽の値を返却する(S5)。
は、C0NTKEY指定子に真の値を返却する(S4)
。またX”08゛ でない時にはC○NTKEY指定子
に偽の値を返却する(S5)。
そしてRE AD文における処理を終了する。前述の実
施例においてはコンパイラで説明したが、これに限るも
のではなく、インタプリタにおいても同様である。
施例においてはコンパイラで説明したが、これに限るも
のではなく、インタプリタにおいても同様である。
また、第1の実施例においてはコンパイラで説明したが
これに限るものではない。例えば第2図に示すように、
FORTRANプログラムをコンパイルし、オブジェク
トをプログラムを作成した時点において、あらかじめコ
ンパイル時にREAD文に存在するC0NTKEY指定
子を判別し、C0NTKEY指定子が存在するならばオ
ブジェクトプログラム中にC0NTKEY指定子に対応
する処理を挿入するか、或いはFORTRANライブラ
リ中のC0NTKEY指定子に対する処理と結合する。
これに限るものではない。例えば第2図に示すように、
FORTRANプログラムをコンパイルし、オブジェク
トをプログラムを作成した時点において、あらかじめコ
ンパイル時にREAD文に存在するC0NTKEY指定
子を判別し、C0NTKEY指定子が存在するならばオ
ブジェクトプログラム中にC0NTKEY指定子に対応
する処理を挿入するか、或いはFORTRANライブラ
リ中のC0NTKEY指定子に対する処理と結合する。
なお、この結合とは、オブジェクトプログラムとFOR
TRANライブラリ中のC0NTKEY指定子とのリン
クである。
TRANライブラリ中のC0NTKEY指定子とのリン
クである。
第3図は本発明の実施例のプログラム例図、第4図は本
発明の実施例のフローチャートである。
発明の実施例のフローチャートである。
あらかじめキャラクタ(CHARACTER)でBKE
YIが2文字のデータ、AKEYlが4文字のデータ、
DATAIが10文字のデータであり、さらにロジカル
LOGICALによって4桁であると指定する。そして
ファイル名がA、DATAなるファイルをOPEN文(
OPEN(10,FILE=’ A、DATA’ 、
KEYFIELD= (1:2.3:6) 、 ACC
ESS=’ KEYFD’ ) )によってオープンし
、アクセス可能とする(S7)なおOPEN文中のKE
YF I ELDは各1レコード内でのキーフィールド
を指示しており、ACCESSによってそのアクセスの
種類を指定している。このOPEN文によってファイル
がオープンできているので、続いてREAD文(REA
D(10゜FMT=’ (2A、4A、A) ’ 、
KEY=’ C00O’ 、 KEYID=2.C0N
TKEY=CONT)BKEYI、AKEYI、DAT
AI)を実行する(S8)。
YIが2文字のデータ、AKEYlが4文字のデータ、
DATAIが10文字のデータであり、さらにロジカル
LOGICALによって4桁であると指定する。そして
ファイル名がA、DATAなるファイルをOPEN文(
OPEN(10,FILE=’ A、DATA’ 、
KEYFIELD= (1:2.3:6) 、 ACC
ESS=’ KEYFD’ ) )によってオープンし
、アクセス可能とする(S7)なおOPEN文中のKE
YF I ELDは各1レコード内でのキーフィールド
を指示しており、ACCESSによってそのアクセスの
種類を指定している。このOPEN文によってファイル
がオープンできているので、続いてREAD文(REA
D(10゜FMT=’ (2A、4A、A) ’ 、
KEY=’ C00O’ 、 KEYID=2.C0N
TKEY=CONT)BKEYI、AKEYI、DAT
AI)を実行する(S8)。
この実行においてはC0NTKEY指定子によって結果
をC0NTに格納するよう指示しであるので、このRE
AD文を実行したときには、次のレコードをも読み、同
一のキーが存在した時には変数C0NTKEYに真の値
を、存在していない時には偽の値を加え処理を終了する
。
をC0NTに格納するよう指示しであるので、このRE
AD文を実行したときには、次のレコードをも読み、同
一のキーが存在した時には変数C0NTKEYに真の値
を、存在していない時には偽の値を加え処理を終了する
。
ユーザプログラムにおいては同一であった場合とない場
合とでその処理を変更しなくてはならないので、続いて
IF文(IF THEN ELSE)によって変数C0
NTがTRUE (真)あるかを判別する(S9)、T
RUEであった場合(YES)にはGOTO100文に
よって文番号100にジャンプし、TRUEでなかった
場合(No)にはGOTO200によって文番号200
にジャンプする。
合とでその処理を変更しなくてはならないので、続いて
IF文(IF THEN ELSE)によって変数C0
NTがTRUE (真)あるかを判別する(S9)、T
RUEであった場合(YES)にはGOTO100文に
よって文番号100にジャンプし、TRUEでなかった
場合(No)にはGOTO200によって文番号200
にジャンプする。
第3図においては、100番地、200番地はともにC
0NT I NUE文であるが、このCoNTINUE
文には図示しないがそれぞれに対応する処理がプログラ
ムしである。
0NT I NUE文であるが、このCoNTINUE
文には図示しないがそれぞれに対応する処理がプログラ
ムしである。
前述した動作によって例えば第5図のデータ構成を読み
出した場合、レコード(3)からレコード(5)間のキ
ーがC001と同一であり、第3図におけるREAD文
で実行した場合、レコード(3)をREAD文によって
読み取った時に真(TRUE)となり、100番地から
の実行となる。
出した場合、レコード(3)からレコード(5)間のキ
ーがC001と同一であり、第3図におけるREAD文
で実行した場合、レコード(3)をREAD文によって
読み取った時に真(TRUE)となり、100番地から
の実行となる。
第3図、第4図においてはユーザプログラムにおける処
理を説明したが、本発明の実施例ではインタプリタなら
ばREAD文中のC0NTKEYが存在するかを判別し
存在した時に続くレコードを読み取るとともに同一キー
が存在するかを判別するものである。またコンパイラで
あるならば、コンパイル時にのみREAD文中にC0N
TKEY指定子が存在するかを判別し、存在する時のみ
、続く1レコードを読みC0NTKEY指定に対する処
理プログラムいわゆる読み出したキーが一致しているか
否かのの判別を行う処理をオブジェクトプログラムに挿
入するものである。そしてコンパイラによって得られた
オブジェクトプログラム中では1個のREA、D文に対
応した入出力におけるファイルの1レコードの読み出し
処理と続くレコードの第2番目の読み出し処理、さらに
読み出したキーの判別処理が挿入される。
理を説明したが、本発明の実施例ではインタプリタなら
ばREAD文中のC0NTKEYが存在するかを判別し
存在した時に続くレコードを読み取るとともに同一キー
が存在するかを判別するものである。またコンパイラで
あるならば、コンパイル時にのみREAD文中にC0N
TKEY指定子が存在するかを判別し、存在する時のみ
、続く1レコードを読みC0NTKEY指定に対する処
理プログラムいわゆる読み出したキーが一致しているか
否かのの判別を行う処理をオブジェクトプログラムに挿
入するものである。そしてコンパイラによって得られた
オブジェクトプログラム中では1個のREA、D文に対
応した入出力におけるファイルの1レコードの読み出し
処理と続くレコードの第2番目の読み出し処理、さらに
読み出したキーの判別処理が挿入される。
以上本発明の実施例をインタプリタ並びにコンパイラに
ついて説明したが、これに限らず同一キーが存在する場
合、特定の指定子によって続くレコードも読み取りその
読み取ったレコードと前に読み取ったレコード内のキー
を比較するものであればこれに限るものではない。
ついて説明したが、これに限らず同一キーが存在する場
合、特定の指定子によって続くレコードも読み取りその
読み取ったレコードと前に読み取ったレコード内のキー
を比較するものであればこれに限るものではない。
〔発明の効果]
以上述べたように、本発明によれば、簡単なキー指定に
よって複雑な処理を行うことができ、プログラムの開発
が簡単化する。さらにプログラムが簡単化するので、作
成の時間、さらにはデバッグの時間をも短縮することが
できる。
よって複雑な処理を行うことができ、プログラムの開発
が簡単化する。さらにプログラムが簡単化するので、作
成の時間、さらにはデバッグの時間をも短縮することが
できる。
第1図は本発明の実施例の処理フローチャート、第2図
は本発明の実施例のシステム図、第3図は本発明の実施
例のプログラム例図、第4図は本発明の実施例のフロー
チャート、第5図はデータ構成図である。
は本発明の実施例のシステム図、第3図は本発明の実施
例のプログラム例図、第4図は本発明の実施例のフロー
チャート、第5図はデータ構成図である。
Claims (1)
- 【特許請求の範囲】 1)レコード単位でキーが設けられたファイルをアクセ
スして読み出したキーが他のレコードに存在するか否か
の判定を指示する指定子が、FORTRANの索引RE
AD文中に存在するかを判別し、前記指定子が存在する
ときに読み出したキーが他のレコードに存在するか否か
の判定を行うことを特徴とする索引入出力の指定方式。 2)レコード単位でキーが設けられたファイルをアクセ
スして読み出したキーが他のレコードに存在するか否か
の判定を指示する指定子が、FORTRANの索引RE
AD文中に存在するかを判別し、前記指定子が存在する
ときに読み出したキーが他のレコードに存在するか否か
の判定を行う処理を発生することを特徴とする索引入出
力の指定方式。 3)READ文中に対応した処理を実行して1レコード
読み取ったときに、続く1レコードをも読み取って前記
1レコードに存在するキーが前記続く1レコードに存在
するかを判別することを特徴とする索引入出力の指定方
式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16700889A JP2507809B2 (ja) | 1989-06-30 | 1989-06-30 | 索引入出力の指定方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16700889A JP2507809B2 (ja) | 1989-06-30 | 1989-06-30 | 索引入出力の指定方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0334029A true JPH0334029A (ja) | 1991-02-14 |
| JP2507809B2 JP2507809B2 (ja) | 1996-06-19 |
Family
ID=15841671
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP16700889A Expired - Fee Related JP2507809B2 (ja) | 1989-06-30 | 1989-06-30 | 索引入出力の指定方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2507809B2 (ja) |
-
1989
- 1989-06-30 JP JP16700889A patent/JP2507809B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2507809B2 (ja) | 1996-06-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5146593A (en) | Procedure call interface | |
| CA1159151A (en) | Cellular network processors | |
| US6138273A (en) | Programmable interpretive virtual machine | |
| EP0537309A1 (en) | System and method for preserving source instruction atomicity in translated program code | |
| JPH01306923A (ja) | 異種言語間連絡方式 | |
| US5692196A (en) | System and method for conditionally compiling a software compilation unit | |
| US5581769A (en) | Multipurpose program object linkage protocol for upward compatibility among different compilers | |
| US6735774B1 (en) | Method and apparatus for system call management | |
| US5519860A (en) | Central processor index sort followed by direct record sort and write by an intelligent control unit | |
| JPH0334029A (ja) | 索引入出力の指定方式 | |
| Mossin | Partial evaluation of general parsers | |
| US5671431A (en) | Method for processing user program on a parallel computer system by inserting a tag during compiling | |
| US7356809B1 (en) | Programmable interpretive virtual machine | |
| JPS59123936A (ja) | 移動制御方式 | |
| JPS5846439A (ja) | 計算機のプログラム編集方法 | |
| JP3428253B2 (ja) | シーケンサ | |
| JP2507676B2 (ja) | 索引入出力文実行処理方式 | |
| JP2601541B2 (ja) | Fortran入出力並び処理方式 | |
| WO1997007452A1 (en) | Programmable compiler | |
| JPS63269229A (ja) | 文字列操作系命令コンパイル処理方式 | |
| US7627859B2 (en) | Method for configuring non-script language library files to be run as scripts | |
| JPS6365530A (ja) | コ−ド最適化方式 | |
| JPH02231638A (ja) | オブジエクト指向データベース管理システムにおけるメツセージ処理方法 | |
| Montuelle | CUFOM: the CERN Universal Format for Object Modules | |
| JPH04102125A (ja) | アセンブラのシンボル処理方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |