JPH02247734A - Optimizing system for accessing input/output procedure - Google Patents

Optimizing system for accessing input/output procedure

Info

Publication number
JPH02247734A
JPH02247734A JP6950789A JP6950789A JPH02247734A JP H02247734 A JPH02247734 A JP H02247734A JP 6950789 A JP6950789 A JP 6950789A JP 6950789 A JP6950789 A JP 6950789A JP H02247734 A JPH02247734 A JP H02247734A
Authority
JP
Japan
Prior art keywords
program
input
output
procedure
processing
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
Application number
JP6950789A
Other languages
Japanese (ja)
Inventor
Yukimasa Yoshida
幸正 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP6950789A priority Critical patent/JPH02247734A/en
Publication of JPH02247734A publication Critical patent/JPH02247734A/en
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To shorten a processing execution time for transferring an argument and a processing execution time for preprocessing and post processing by reducing the number of times of accessing I/O procedure in a system for accessing the I/O procedure. CONSTITUTION:A compiler 6 is driven by external start and a program analyzing means 4 reads in a source program 1 and detects repeating structure including an I/O sentence in the program 1. The means 4 analyzes the repeating structure, extracts information relating to the repeating structure including the leading address of I/O array, the increment of subscripts in the array and the repeating frequency and transfers the extracted information to an objective program forming means 5. At the time of translating the program 1 and forming an objective program 2, the means 5 forms the program 2 based upon the information relating to the repeating structure. Namely, the objective program 2 is formed by one I/O procedure accessing frequency by using the control information, the leading address of the I/O array, the increment of subscripts and the repeating frequency to be the number of times of executing the I/O processing as an argument group 3.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、計算機プログラムにおける入出力手続き呼び
出しの最適化方式に関する。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to an optimization method for input/output procedure calls in a computer program.

(従来の技術) 計算機プログラムには、配列の要素を連続して入力また
は出力する処理がある。このようなとき、従来は、入出
力手続きを呼び出す入出力文を繰り返して実行する(繰
り返し構造)原始プログラムを作成し、この原始プログ
ラムをコンパイラで翻訳して目的プログラムを生成する
。そしてこの目的プログラムを実行手Pi(例えば計算
機)で実行している。
(Prior Art) A computer program includes a process of successively inputting or outputting elements of an array. Conventionally, in such cases, a source program is created that repeatedly executes an input/output statement that calls an input/output procedure (repetition structure), and this source program is translated by a compiler to generate a target program. This target program is then executed by an executor Pi (for example, a computer).

第2図は、FORTRANで記述された繰り返し構造に
入出力文が含まれているような原始プログラム例である
。この原始プログラムは、ステートメント5T21〜5
T23が繰り返し構造を構成し、ステートメント5T2
2の入出力文すなゎちrWRITE (6,*)  A
 (I)Jを100回繰り返すことによりステートメン
ト5T20のrDIMENsION  A(100)J
で定義された配列の要素を連続して全て出力する。この
プログラムをコンパイラで翻訳すると、目的プログラム
が生成される。
FIG. 2 is an example of a source program that includes input/output statements in a repeating structure written in FORTRAN. This source program consists of statements 5T21 to 5
T23 constitutes a repeating structure, and statement 5T2
The input/output statement of 2 is WRITE (6, *) A
(I) rDIMENSION A(100)J of statement 5T20 by repeating J 100 times
Outputs all elements of the array defined in succession. When this program is translated by a compiler, the target program is generated.

第4図は、この目的グログラムを実行手段が処理すると
きの処理例を示したものであり、ステップ810でステ
ートメント5T21に相当するDoループの前処理を行
い、ステップSllでステートメント5T22に相当す
る入出力手続き実行手段(今の場合は出力処理)を呼び
出して引数を渡す。
FIG. 4 shows an example of processing when the execution means processes this objective program. In step 810, preprocessing of the Do loop corresponding to statement 5T21 is performed, and in step Sll, the input processing corresponding to statement 5T22 is performed. Call the output procedure execution means (output processing in this case) and pass the argument.

呼び出された入出力手続き実行手段は、ステップ320
で引数を受は取り、ステップS21で入出力処理の前処
理を行う。そして、ステップS22で、受は取った引数
に基づいて出力処理を行い、ステップ323で入出力の
後処理を行ない、ステップSllに戻る。
The called input/output procedure execution means executes step 320.
An argument is received in step S21, and preprocessing for input/output processing is performed in step S21. Then, in step S22, the receiver performs output processing based on the received argument, performs input/output post-processing in step 323, and returns to step Sll.

そして、ステップS12で繰り返しが終了したかを判定
する。終了していないときは入出力手続きく即ちステッ
プ820〜ステツプ523)の処理を繰り返す。繰り返
しが終了したときステップ313でステートメント57
23に相当する後処理を行う、このように入出力文(ス
テートメント5T22.ステップS11相当)が実行さ
れる毎に入出力手続き実行手段が呼び出されている。
Then, in step S12, it is determined whether the repetition has ended. If not completed, the input/output procedure (ie, steps 820 to 523) is repeated. When the iteration is finished, in step 313 statement 57
The input/output procedure execution means is called every time the input/output statement (statement 5T22.corresponding to step S11) is executed, which performs the post-processing corresponding to step S11.

(発明が解決しようとする課題) 上述したように、入出力文が繰り返し実行される毎に、
入出力手続きを呼び出している従来の技術では、繰り返
し回数が増加すれば、■引数を入出力手続きに渡すため
の処理実行時間が増加し、■入出力手続きにおいて入出
力の前処理および後処理のための処理実行時間が増加す
る。従って、プログラム全体の実行時間も長くなる。こ
のように従来の入出力手続きの呼び出し方式には解決す
べき課題があった。
(Problem to be solved by the invention) As mentioned above, each time an input/output statement is repeatedly executed,
In conventional technology that calls input/output procedures, as the number of repetitions increases, ■ the processing execution time for passing arguments to the input/output procedure increases, and ■ the input/output preprocessing and postprocessing in the input/output procedure increases. This increases processing execution time. Therefore, the execution time of the entire program also increases. As described above, there are problems that need to be solved with the conventional input/output procedure calling method.

本発明は、このような事情に鑑みてなされたものであり
、その目的は、引数を渡すための処理実行時間ならびに
入出力の前処理および後処理のための処理実行時間を短
縮することができる入出力手続き呼び出し方式を提供す
ることにある。
The present invention has been made in view of these circumstances, and its purpose is to shorten the processing execution time for passing arguments and the processing execution time for input/output pre-processing and post-processing. Its purpose is to provide an input/output procedure calling method.

(課題を解決するための手段) 本発明の入出力手続き呼び出し方式は、上記目的を達成
するために、入出力文に対応して入出力手続きを呼び出
している原始プログラムをコンパイラで翻訳して目的プ
ログラムを生成し、該目的プログラムを実行手段が実行
している計算機システムにおいて、 前記原始プログラム内の入出力文を含んでいる繰り返し
構造を検出し、該繰り返し構造に関する情報を抽出する
プログラム解析手段と、該プログラム解析手段により抽
出された前記繰り返し構造に関する情報に基づいて前記
入出力手続きに対する引数群を生成する目的プログラム
生成手段とを前記コンパイラが有し、且つ前記目的プロ
グラム生成手段により生成された引数群に基づいて前記
入出力手続きを実行する入出力実行手段を前記実行手段
が有する。
(Means for Solving the Problem) In order to achieve the above object, the input/output procedure calling method of the present invention uses a compiler to translate a source program that calls an input/output procedure in response to an input/output statement. In a computer system that generates a program and in which an execution means executes the target program, a program analysis means detects a repeating structure including an input/output statement in the source program and extracts information regarding the repeating structure. , the compiler has object program generation means for generating a group of arguments for the input/output procedure based on the information regarding the repetition structure extracted by the program analysis means, and the compiler has an argument generated by the object program generation means. The execution means has an input/output execution means for executing the input/output procedure based on the group.

(作用) 本発明の入出力手続き呼び出し方式においてはと、コン
パイラのプログラム解析手段が、原始プログラム内の入
出力文を含んでいる繰り返し構造を検出してこの繰り返
し構造に関する情報を抽出し、目的プログラム生成手段
が、プログラム解析手段により抽出された繰り返し構造
に関する情報に基づいて入出力手続きに対する引数群を
生成する。そして、実行手段の入出力実行手段が、目的
プログラム生成手段により生成された引数群に基づいて
入出力手続きを実行する。
(Operation) In the input/output procedure calling method of the present invention, the program analysis means of the compiler detects a repeating structure containing input/output statements in the source program, extracts information regarding this repeating structure, and extracts information about the repeating structure from the target program. A generation means generates a group of arguments for the input/output procedure based on information regarding the repetition structure extracted by the program analysis means. Then, the input/output execution means of the execution means executes the input/output procedure based on the argument group generated by the object program generation means.

(実施例) 次に、本発明の実施例について図面を参照して詳細に説
明する。
(Example) Next, an example of the present invention will be described in detail with reference to the drawings.

第1図は本発明の一実施例の構成図である。同図におい
て、1は原始プログラム、2は制御情報、入出力並びの
先頭アドレス、配列の添字の増加分、繰り返し回数等を
含む引数n3を含む目的プログラム、6はプログラム解
析手段4および目的プログラム生成手段5を含み、原始
プログラム1から目的プログラム2を生成するコンパイ
ラ、7は入出力実行手段8を含み、目的プログラム2を
実行して出力装置9あるいは入力装置10から入出力処
理を実行する等の処理を行う実行手段である。
FIG. 1 is a block diagram of an embodiment of the present invention. In the figure, 1 is a source program, 2 is an objective program including an argument n3 including control information, the start address of an input/output list, an increment in an array subscript, the number of repetitions, etc., and 6 is a program analysis means 4 and an objective program generator. 7 includes an input/output execution means 8, which executes the objective program 2 and executes input/output processing from the output device 9 or the input device 10; It is an execution means that performs processing.

次に、このように構成された第1図の実施例の動作を説
明する。外部より起動されると、先ず、コンパイラ6が
動作する。コンパイラ6のプログラム解析手段4は、原
始プログラム1を読み込み、原始プログラム1内の入出
力文を含んだ繰り返し構造を検出する。そして検出した
繰り返し構造を解析し、入出力並びの先頭アドレス(配
列の先頭アドレス)、配列の添字の増加分および繰り返
し回数を含む繰り返し構造に関する情報を抽出(算出)
して、目的プログラム生成手段5に渡す。
Next, the operation of the embodiment of FIG. 1 constructed in this way will be explained. When started from the outside, the compiler 6 operates first. The program analysis means 4 of the compiler 6 reads the source program 1 and detects a repetitive structure including input/output statements in the source program 1. Then, the detected repeating structure is analyzed and information about the repeating structure is extracted (calculated), including the start address of the input/output sequence (starting address of the array), the increment of the array subscript, and the number of repetitions.
Then, it is passed to the target program generation means 5.

目的プログラム生成手段5は、原始プログラム1を翻訳
して目的プログラムを生成する際に、この繰り返し構造
に関する情報に基づいて、制御情報、入出力並びの先頭
アドレス、添字の増加分および入出力処理の実行回数で
ある繰り返し回数を引数群3とし、入出力手段手続き呼
び出し回数を1回とした目的グログラム2を生成する。
When generating the target program by translating the source program 1, the target program generating means 5 generates control information, the start address of the input/output sequence, the increment of the subscript, and the input/output process based on the information regarding the repetition structure. A target program 2 is generated in which the number of repetitions, which is the number of executions, is set as the argument group 3, and the number of calls to the input/output means procedure is set to 1.

次に、第3図の原始プログラムの目的プログラムを実行
する場合を基にして、入出力実行手段8を含む実行手段
7の動作を説明する。実行手段7は目的プログラム2を
入力し、この目的プログラム2を実行する。そして、入
出力文を含んだ繰り返し構造(ステートメント5T21
〜ST23 >を実行する際、ステップ330でステー
トメントST21に相当するDO小ループ前処理を行い
、ステップS31で入出力実行手段8を呼び出し、引数
群6を渡す。
Next, the operation of the execution means 7 including the input/output execution means 8 will be explained based on the case where the target program of the source program shown in FIG. 3 is executed. The execution means 7 inputs the target program 2 and executes the target program 2. Then, a repeating structure including input/output statements (statement 5T21
~ST23>, the DO small loop preprocessing corresponding to statement ST21 is performed in step 330, and the input/output execution means 8 is called in step S31, and the argument group 6 is passed.

呼び出された入出力実行手段8は、ステップS40で引
数群3を受は取り、ステップS41で入出力の前処理を
行う、そしてステップ342で入出力を実行する。即ち
、入出力の並びの開始アドレスで示されるアドレスより
データを取り出して出力装置9に出力する。そしてステ
ップ343、で入出力並びの開始アドレスに添字の増加
分で示される値を加えた値を新たな入出力並びの開始ア
ドレスとすると共に、引数群3で指定された繰り返し回
数の値から「1」を引いた値を新たな繰り返し回数とす
る0次に、ステップS44で指定された繰り返し回数が
終了したか即ち繰り返し回数の値が「0」か否かを判定
する。繰り返し回数の値が「0」でないときはステップ
342に戻って上述した処理を繰り返す。
The called input/output execution means 8 receives the argument group 3 in step S40, performs input/output preprocessing in step S41, and executes the input/output in step 342. That is, data is extracted from the address indicated by the start address of the input/output sequence and output to the output device 9. Then, in step 343, the value obtained by adding the value indicated by the increment of the subscript to the start address of the input/output list is set as the new start address of the input/output list, and the value of the number of repetitions specified in argument group 3 is set as " The value obtained by subtracting ``1'' is set as the new number of repetitions.Next, it is determined in step S44 whether the specified number of repetitions has ended, that is, whether the value of the number of repetitions is ``0''. If the value of the number of repetitions is not "0", the process returns to step 342 and the above-described process is repeated.

一方、繰り返し回数の値が「0」のときは、ステップS
45で入出力の後処理を行ない、実行手段7を戻る。
On the other hand, when the value of the number of repetitions is "0", step S
Input/output post-processing is performed in step 45, and the execution means 7 returns.

実行手段7は、ステップS32でDO小ループ後処理を
行い、目的プログラム2の実行を継続する。
The execution means 7 performs DO small loop post-processing in step S32 and continues execution of the target program 2.

このように、本実施例では、原始プログラム内において
入出力文に繰り返し実行されても、入出力手続の呼び出
しは1回とすることができる。
In this way, in this embodiment, even if the input/output statement is repeatedly executed in the source program, the input/output procedure can be called only once.

(発明の効果) 以上に説明したように、本発明の入出力手続きの呼び出
し方式によれば、入出力手続きの呼び出し回数を減少さ
せることができるので、■引数を渡すための処理実行時
間を短縮でき、■入出力の前処理および後処理の実行時
間を短縮することができる。従って、本発明の入出力手
続きの呼び出し方式を採用すればプログラム全体の実行
時間を短縮することができる。
(Effects of the Invention) As explained above, according to the input/output procedure calling method of the present invention, it is possible to reduce the number of times the input/output procedure is called. 1) It is possible to shorten the execution time of input/output pre-processing and post-processing. Therefore, by adopting the input/output procedure calling method of the present invention, the execution time of the entire program can be shortened.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の実施例の構成図、 第2図は第1図の実施例の動作説明図、第3図は繰り返
し構造のプログラム例を示す図、 第4図は従来の動作説明図である。 1・・・原始プログラム、2・・・目的プログラム、3
・・・引数群、4・・・プログラム解析手段、5・・・
目的プログラム生成手段、6・・・コンパイラ、7・・
・実行手段、8・・・入出力実行手段、9・・・出力装
置、10・・・入力装置。
Fig. 1 is a configuration diagram of an embodiment of the present invention, Fig. 2 is an explanatory diagram of the operation of the embodiment of Fig. 1, Fig. 3 is a diagram showing an example of a program with a repetitive structure, and Fig. 4 is an explanatory diagram of the conventional operation. It is. 1... Source program, 2... Target program, 3
... Argument group, 4... Program analysis means, 5...
Objective program generation means, 6... compiler, 7...
- Execution means, 8... Input/output execution means, 9... Output device, 10... Input device.

Claims (1)

【特許請求の範囲】 入出力文に対応して入出力手続きを呼び出している原始
プログラムをコンパイラで翻訳して目的プログラムを生
成し、該目的プログラムを実行手段が実行している計算
機システムにおいて、前記原始プログラム内の入出力文
を含んでいる繰り返し構造を検出し、該繰り返し構造に
関する情報を抽出するプログラム解析手段と、 該プログラム解析手段により抽出された前記繰り返し構
造に関する情報に基づいて前記入出力手続きに対する引
数群を生成する目的プログラム生成手段とを前記コンパ
イラに設け、且つ 前記目的プログラム生成手段により生成された引数群に
基づいて前記入出力手続きを実行する入出力実行手段を
前記実行手段に設けたことを特徴とする入出力手続き呼
び出しの最適化方式。
[Scope of Claims] In a computer system in which a source program that calls an input/output procedure corresponding to an input/output statement is translated by a compiler to generate a target program, and an execution means executes the target program, a program analysis means for detecting a repetition structure including an input/output statement in a source program and extracting information regarding the repetition structure; and executing the input/output procedure based on the information regarding the repetition structure extracted by the program analysis means. The compiler is provided with an object program generation means for generating a group of arguments for the object program, and the execution means is provided with an input/output execution means for executing the input/output procedure based on the argument group generated by the object program generation means. An optimization method for input/output procedure calls characterized by the following.
JP6950789A 1989-03-22 1989-03-22 Optimizing system for accessing input/output procedure Pending JPH02247734A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6950789A JPH02247734A (en) 1989-03-22 1989-03-22 Optimizing system for accessing input/output procedure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6950789A JPH02247734A (en) 1989-03-22 1989-03-22 Optimizing system for accessing input/output procedure

Publications (1)

Publication Number Publication Date
JPH02247734A true JPH02247734A (en) 1990-10-03

Family

ID=13404725

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6950789A Pending JPH02247734A (en) 1989-03-22 1989-03-22 Optimizing system for accessing input/output procedure

Country Status (1)

Country Link
JP (1) JPH02247734A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08234996A (en) * 1995-02-28 1996-09-13 Nec Software Ltd Generation method for fortran execution program including input/output message lacking format of structure type data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08234996A (en) * 1995-02-28 1996-09-13 Nec Software Ltd Generation method for fortran execution program including input/output message lacking format of structure type data

Similar Documents

Publication Publication Date Title
JP3790683B2 (en) Computer apparatus, exception handling program thereof, and compiling method
US6253371B1 (en) Method for supporting parallelization of source program
JPS62206637A (en) Array data flow analyzer
CN109933327A (en) OpenCL compiler method and system based on code fusion compiler framework
JPH02247734A (en) Optimizing system for accessing input/output procedure
JP3318051B2 (en) Translation processing method
JPH08305583A (en) Method for simulating cpu
CN109828923B (en) Non-atomic instruction sequence prototype verification method based on application program structure
JPH10187461A (en) Language processing system
Li An Expert Knowledge Generation Model in Smart Contract Vulnerability Fuzzing
JP2008071065A (en) Compile device, method, program and storage medium for performing in-line expansion
JP3034582B2 (en) Compile processing method
JPH05204705A (en) Processing method for detecting undefined parameter
JPH03144830A (en) Parallel processing system
JPH07234794A (en) Creating method for object program in multiprocessor system
JPH0778096A (en) Program test system
JPH03266029A (en) List output method in logical type language processing system
JPH05158706A (en) Optimization processing system for intermediate language
JPH11194958A (en) Program test system
JPH02170235A (en) Register saving/restoring system for call of subroutine
JP2000207212A (en) Method call optimizing method, class estimating method, method call optimizing device, and storage medium
JPH0962512A (en) Program transformation device and method having description language transformation function from low-class language to high-class language
JPH05127945A (en) Program execution situation analysis system
JPH05224908A (en) Program production system
JP2003337707A (en) Method for increasing speed of compiler and loop for processing list structure data