JPS62171036A - Module sharing system for compiler - Google Patents
Module sharing system for compilerInfo
- Publication number
- JPS62171036A JPS62171036A JP1259886A JP1259886A JPS62171036A JP S62171036 A JPS62171036 A JP S62171036A JP 1259886 A JP1259886 A JP 1259886A JP 1259886 A JP1259886 A JP 1259886A JP S62171036 A JPS62171036 A JP S62171036A
- Authority
- JP
- Japan
- Prior art keywords
- compiler
- input
- processing
- output
- module
- 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
- 238000012545 processing Methods 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 22
- 230000010365 information processing Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
【発明の詳細な説明】
〔概要〕
ユーザプログラムの翻訳時に、コンパイラが必要とする
入出力処理や関数計算などの機能を、翻訳されたユーザ
プログラム自体でも必要とする場合、その処理を行なう
モジュールを単一化して共用させる。[Detailed Description of the Invention] [Summary] When translating a user program, if the translated user program itself requires functions such as input/output processing and function calculations required by the compiler, a module that performs the processing is required. Unify and share.
本発明は、情報処理システムにおけるプログラム処理技
術に関するものであり、特にソースプログラムから実行
可能なプログラムを翻訳生成する際のモジュール共用方
式に関する。The present invention relates to a program processing technique in an information processing system, and particularly to a module sharing method when translating and generating an executable program from a source program.
従来のコンパイラは、第4図(a)に示すように、ソー
スプログラム形式のユーザプログラムを人力したり翻訳
結果のリストを出力したりするために、専用の入出力処
理機能をそなえている。As shown in FIG. 4(a), a conventional compiler is equipped with a dedicated input/output processing function for manually inputting a user program in the form of a source program and outputting a list of translation results.
他方、コンパイラにより翻訳処理されたユーザプログラ
ム中に含まれるREAD文やWRITE文は、第4図(
b)に示すように、リンケージエディタでの結合編集時
に、入出カライブラリ (入出力処理用モジュール群)
と結合させることにより実行可能にされる。On the other hand, the READ and WRITE statements included in the user program translated by the compiler are shown in Figure 4 (
As shown in b), when editing the linkage editor, the input/output library (module group for input/output processing)
It is made executable by combining it with
またコンパイラでは、最適化手法の1つとしてソースプ
ログラム中に平方根や三角関数などの既知の計算が含ま
れていて、その計算に必要な値。In addition, the compiler uses known calculations such as square roots and trigonometric functions in the source program as one of the optimization techniques, and calculates the values necessary for those calculations.
引数が定数で与えられている場合には、翻訳段階で計算
を実行し、その結果値の定数で置換する方法がとられて
いる。これは、プログラムを効率化するうえで有効なも
のである。When an argument is given as a constant, a method is used in which calculation is performed at the translation stage and the resulting value is replaced with the constant. This is effective in making the program more efficient.
コンパイラは、このため平方根や三角関数などの関数計
算用モジュールをそなえている。また翻訳段階で実行で
きなかった各関数計算(たとえば引数が変数のもの)は
、結合編集でそれらの計算モジュールを含む自動呼出し
ライブラリと結合されて実行される。第5図に、平方根
(SQRTで表わされる)の場合を示す。For this purpose, the compiler has modules for calculating functions such as square roots and trigonometric functions. In addition, each function calculation that could not be executed at the translation stage (for example, one whose argument is a variable) is combined with an automatic call library containing those calculation modules by combination editing and executed. FIG. 5 shows the case of a square root (expressed as SQRT).
従来のコンパイラでは、入出力処理や関数計算などのモ
ジュールをコンパイラ専用に設けており。Conventional compilers have dedicated modules for input/output processing, functional calculations, etc.
ユーザプログラム自体が処理上必要な同じ機能のモジュ
ールは、別に入出カライブラリや自動呼出しライブラリ
から結合編集しなければならなかった。Modules with the same functions that are necessary for processing the user program itself had to be combined and edited from a separate input/output library or automatic call library.
しかし一般に結合編集は、ライブラリのファイルを使用
可能にするオープン処理などのためにかなりの時間を必
要とし、また同じ機能のモジュールが翻訳とユーザプロ
グラム実行の2つの段階のため二重に用意されるため、
構成が冗長複雑となり、保守性も低下し、さらにコンパ
イラの開発負担が大きくなるという問題があった。However, in general, combined editing requires a considerable amount of time for the opening process that makes the library file available for use, and modules with the same functionality are prepared twice for the two stages of translation and user program execution. For,
There were problems in that the configuration became redundant and complex, maintainability deteriorated, and the development burden on the compiler increased.
本発明は、コンパイラとユーザプログラムの双方に必要
な機能のモジュールを単一化して共用させることにより
上記した従来システムの問題点を解決するものである。The present invention solves the above-mentioned problems of the conventional system by unifying and sharing modules of functions necessary for both the compiler and the user program.
第1図に示す例示的構成により1本発明の詳細な説明す
る。The present invention will now be described in detail with reference to the exemplary configuration shown in FIG.
第1図は入出力処理機能モジュールを単一化した例であ
り、■はソースプログラム、2はコンパイラ、3は翻訳
処理、4はオブジェクトプログラム、5は共用モジュー
ルである入出カライブラリ。FIG. 1 shows an example in which input/output processing function modules are unified, where ① is a source program, 2 is a compiler, 3 is a translation process, 4 is an object program, and 5 is an input/output library which is a shared module.
6はアドレス管理テーブル、7はREAD処理部。6 is an address management table, and 7 is a READ processing unit.
8はWRITE処理部、9は実行処理を表わす。8 represents a WRITE processing unit, and 9 represents an execution process.
入出カライブラリ5は1つのロードモジュールとして構
成され、その先頭部にアドレス管理テーブル6が置かれ
、さらに人力処理機能と出力処理機能とをそれぞれ受は
持つREAD処理部7とWRITE処理部8の各モジュ
ールが収容されている。The input/output library 5 is configured as one load module, in which an address management table 6 is placed at the head thereof, and a READ processing section 7 and a WRITE processing section 8 each having a manual processing function and an output processing function. Contains modules.
アドレス管理テーブル6は、READ文に対応させたR
EAD処理部7のアドレスと、WRITE文に対応させ
たWRITE処理部8のアドレスとが設定されている。The address management table 6 is an R
The address of the EAD processing section 7 and the address of the WRITE processing section 8 corresponding to the WRITE statement are set.
コンパイラ2には、ソースプログラム1の人力やリスト
の出力を行なう場合、ソースプログラムlと同様な形式
で、すなわち従来と同様にREAD文あるいはWRIT
E文が記述されている。When the compiler 2 outputs the manual input or list of the source program 1, it is written in the same format as the source program 1, that is, in the same way as before, using READ statements or WRIT statements.
E sentence is written.
これらのREAD文あるいはWRITE文が発行される
と、入出カライブラリ5のアドレス管理テーブル6が参
照され、目的のREADあるいはWRITE処理部が起
動される。When these READ or WRITE statements are issued, the address management table 6 of the input/output library 5 is referred to and the intended READ or WRITE processing section is activated.
コンパイラ2はまた。オブジェクトコード列すなわちオ
ブジェクトプログラム4を生成するとき。Compiler 2 again. When generating an object code string, that is, an object program 4.
READ文あるいはWRITE文の定義データとして入
出カライブラリ5のREAD処理部7あるいはWRIT
E処理部8のアドレスを設定して出力する。READ processing unit 7 or WRIT of input/output library 5 as definition data of READ statement or WRITE statement.
The address of the E processing section 8 is set and output.
この後、オブジェクトプログラム4を実行する。After this, the object program 4 is executed.
以上の構成は、 READ/WRITEの入出力処理機
能に関するものであったが、平方根計算その他の任意の
機能についても同様に適用することができる。Although the above configuration is related to the READ/WRITE input/output processing function, it can be similarly applied to square root calculation and other arbitrary functions.
本発明によれば、コンパイラにより生成されたオブジェ
クトプログラム中には、コンパイラと共用する機能のモ
ジュールのアドレスが直接与えられるため、従来Vタイ
プアトコンと呼ばれるDASD上のメンへ名を介してラ
イブラリを呼び出していたのにくらべると、リンケージ
エディタによる結合編集処理が極めて簡単となり、その
処理時間も僅かで済ますことができる。According to the present invention, in the object program generated by the compiler, the address of the module of the function shared with the compiler is directly given, so that the library can be transferred via the name to a member on the DASD, which is conventionally called a V-type atcon. Compared to calling the link, the linkage editor's combined editing process is extremely simple, and the processing time can be shortened.
(実施例〕 次に実施例を用いて本発明の詳細な説明する。(Example〕 Next, the present invention will be explained in detail using examples.
第2図は、第1図の例と同様に、入出カライブラリを共
用のモジュールとした場合における処理の流れを示した
ものである。FIG. 2 shows the flow of processing when the input/output library is used as a shared module, similar to the example shown in FIG.
第2図において、20はコンパイラ、21はコンパイラ
本体の構文解析処理部、22はコンパイラ本体をサポー
トする共通ルーチンの1つである入出力制御ルーチン、
23は共用の入出カライブラリ、24はアドレス管理テ
ーブル、25は入出力処理モジュール群を表わす。また
■ないし■は処理順序を示す。In FIG. 2, 20 is a compiler, 21 is a syntax analysis processing section of the compiler main body, and 22 is an input/output control routine that is one of the common routines that support the compiler main body.
23 is a shared input/output library, 24 is an address management table, and 25 is a group of input/output processing modules. Also, ■ to ■ indicate the processing order.
■ まず、コンパイラ20は、初期設定時に共用の入出
カライブラリ23をメモリ上にローディングする。(1) First, the compiler 20 loads the shared input/output library 23 into memory during initialization.
■ コンパイラ本体の構文解析処理部21がカードの入
力(READ)あるいはリストの出力(WRITE)の
ため、入出力制御ルーチン22に入出力要求を出す。(2) The syntax analysis processing unit 21 of the compiler body issues an input/output request to the input/output control routine 22 for card input (READ) or list output (WRITE).
■ 人出力制御ルーチン22は、入出カライブラリのア
ドレス管理テーブル24から、READあるいはWRI
TEに対応する入出力処理モジュールのアドレスを知り
、該当する1つの入出力処理モジュールを呼出して実行
させる。■ The human output control routine 22 selects READ or WRI from the address management table 24 of the input/output library.
The address of the input/output processing module corresponding to the TE is known, and one corresponding input/output processing module is called and executed.
■ 入出力処理終了により、入出力制御ルーチン22は
、構文解析処理部2Lに入出力処理結果を処理しやすい
形で返す。(2) Upon completion of the input/output processing, the input/output control routine 22 returns the input/output processing results to the syntax analysis processing section 2L in a form that is easy to process.
また、平方根モジュールを共用モジュールとする場合に
は、平方根の計算要求に対して、同様な動作が行なわれ
ることになる。Furthermore, if the square root module is a shared module, similar operations will be performed in response to a square root calculation request.
たとえば、ソースプログラム上に3次のような引数が定
数の平方根計算があった場合。For example, if there is a square root calculation with a constant argument such as cubic in the source program.
=SQRT(2,0)
第3図に示すように、共用モジュール31のアドレス管
理テーブル32から平方根モジュール33のアドレスを
求め、その平方根モジュール33を呼び出して、/2.
0=1.414を得る。=SQRT(2,0) As shown in FIG. 3, the address of the square root module 33 is obtained from the address management table 32 of the shared module 31, the square root module 33 is called, and /2.
We get 0=1.414.
これに対してソースプログラム上に引数が変数の5次の
ような平方根計算がある場合
A = 2.0
=SQRT (A)
コンパイラは、生成するオブジェクトプログラムにおい
て、共用の平方根モジュール33への分岐を行なわせる
。この場合1次に示すように、平方根モジュール33の
アドレスを直接設定する。On the other hand, if the source program contains a square root calculation of the 5th degree with variables as arguments, A = 2.0 = SQRT (A) The compiler will not branch to the shared square root module 33 in the generated object program. Let them do it. In this case, the address of the square root module 33 is directly set as shown below.
L12,5QRT
BALR14,15
SQRT DCA
(平方根モジュールのアドレス)
〔発明の効果〕
方式発明によれば、システム構成が単純化されるととも
に、結合編集時間の大幅な削減(はとんど無視できる程
度)が可能となり、しかもオブジェクトコードの内容は
従来と同じでよく、 (Vタイプアトコンの代りに直接
のアドレスを設定するだけ)、またコンパ°イラに専用
の入出力処理機能や平方根計算機能等を用意する必要が
ないため。L12,5QRT BALR14,15 SQRT DCA (Square root module address) [Effects of the invention] According to the invention of the method, the system configuration is simplified and the combined editing time is significantly reduced (almost negligible). Moreover, the content of the object code remains the same as before (just set the direct address instead of the V type atcon), and the compiler has dedicated input/output processing functions, square root calculation functions, etc. Because there is no need to prepare.
コンパイラの作成、保守が容易となる。Compiler creation and maintenance become easier.
第1図は本発明の原理説明図、第2図は本発明の1実施
例の流れ説明図、第3図は本発明実施例による平方根モ
ジュールの共用例の説明図、第4図は従来のコンパイラ
の入出力処理方式の説明図。
第5図は従来の平方根モジュール結合方式の説明図であ
る。
第1図中。
l;ユーザプログラム
2:コンパイラ
4:オブジェクトプログラム
5:共用モジュールの入出カライブラリ6:アドレス管
理テーブル
7 : READ処理部
8:WRITE処理部FIG. 1 is an explanatory diagram of the principle of the present invention, FIG. 2 is a flow explanatory diagram of one embodiment of the present invention, FIG. 3 is an explanatory diagram of an example of sharing the square root module according to the embodiment of the present invention, and FIG. 4 is a diagram of the conventional method. An explanatory diagram of a compiler's input/output processing method. FIG. 5 is an explanatory diagram of the conventional square root module combination method. In Figure 1. l; User program 2: Compiler 4: Object program 5: Shared module input/output library 6: Address management table 7: READ processing section 8: WRITE processing section
Claims (1)
、 コンパイラ(2)とコンパイラ(2)により翻訳される
ユーザプログラム(1)とが同一の処理機能を使用する
場合、それら共通の処理機能を共用のモジュールとして
設け、 上記共用モジュールは、内部の個々の処理機能をアクセ
スするためのアドレスを設定したアドレス管理テーブル
(6)を有し、 コンパイラ(2)は、上記共通の処理機能を使用する場
合、上記共用モジュールのアドレス管理テーブル(6)
を参照して目的の処理機能を呼出し実行させ、またユー
ザプログラム(1)が上記共通の処理機能を必要とする
場合、その処理機能に該当する上記共用モジュール内の
アドレスを対応づけてオブジェクトプログラム(4)を
生成することを特徴とするコンパイラのモジュール共用
方式。[Claims] In an information processing system equipped with a compiler (2), when the compiler (2) and the user program (1) translated by the compiler (2) use the same processing function, The processing functions are provided as a shared module, the shared module has an address management table (6) in which addresses for accessing the individual processing functions are set, and the compiler (2) is configured to handle the common processing functions. When using the above shared module address management table (6)
If the user program (1) requires the above-mentioned common processing function, the object program ( 4) A compiler module sharing method characterized by generating.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1259886A JPS62171036A (en) | 1986-01-23 | 1986-01-23 | Module sharing system for compiler |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1259886A JPS62171036A (en) | 1986-01-23 | 1986-01-23 | Module sharing system for compiler |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62171036A true JPS62171036A (en) | 1987-07-28 |
Family
ID=11809789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1259886A Pending JPS62171036A (en) | 1986-01-23 | 1986-01-23 | Module sharing system for compiler |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62171036A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01137335A (en) * | 1987-11-25 | 1989-05-30 | Fujitsu Ltd | System for compiling program module |
WO2001088704A1 (en) * | 2000-05-16 | 2001-11-22 | Eurocity Online | Real time translation of user interfaces in an arbitrary application |
-
1986
- 1986-01-23 JP JP1259886A patent/JPS62171036A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01137335A (en) * | 1987-11-25 | 1989-05-30 | Fujitsu Ltd | System for compiling program module |
WO2001088704A1 (en) * | 2000-05-16 | 2001-11-22 | Eurocity Online | Real time translation of user interfaces in an arbitrary application |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR940703049A (en) | A system that divides processing tasks into signal processors and decision microprocessors that interface with them | |
JPH01154267A (en) | Incorporating system for input/output device control program of operating system | |
JPS62171036A (en) | Module sharing system for compiler | |
JPS62214443A (en) | Emulation executing method | |
JPH0272407A (en) | Ladder program converter | |
JPH01267731A (en) | System for preparing segment overlay program | |
JPS59183441A (en) | Debug processing system of extended language | |
JP3041919B2 (en) | Program combination processor | |
JPH04209029A (en) | Parallel process program translation processor | |
JPH01134629A (en) | Extended rule compiler | |
JPH0296244A (en) | Program execution system | |
JPS61296440A (en) | Microcomputer debugging support system | |
JPH0358232A (en) | Preprocessor calling system | |
JPS61206050A (en) | Action analyzing system for program | |
JPH064348A (en) | Program debugging system | |
JPS6365542A (en) | Debugging system | |
JPH0328932A (en) | Compiling system for extended language specifications | |
JPS63226741A (en) | Symbolic debugging system | |
JPS6312031A (en) | Program dividing compiling system for data flow type computer | |
JPH0250730A (en) | Language converting system based upon common machine word | |
JPH01158534A (en) | Generating system for source program | |
JPH02165339A (en) | Compile device | |
JPS62182930A (en) | Function dividion type parallel compiling system | |
JPH06195228A (en) | Conversion system of application program into execution system program | |
JPS63104153A (en) | Symbol compiling system for abort damp data |