JPH0268631A - コンパイラシステム - Google Patents
コンパイラシステムInfo
- Publication number
- JPH0268631A JPH0268631A JP22114688A JP22114688A JPH0268631A JP H0268631 A JPH0268631 A JP H0268631A JP 22114688 A JP22114688 A JP 22114688A JP 22114688 A JP22114688 A JP 22114688A JP H0268631 A JPH0268631 A JP H0268631A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- subprogram
- program
- initialization
- prescribed
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000000034 method Methods 0.000 claims description 28
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概 要〕
計算機のコンパイラにおける、副プログラムの生成処理
に関し、 冗長な初期化処理及び終了処理を省略すると共に、副プ
ログラム間のデータの受は継ぎを可能にして、副プログ
ラムの実行効率を改善できる副プログラム生成処理方法
を目的とし、 所定のプログラミング言語で記述された計算機の原始プ
ログラムを翻訳して、所定の初期化処理を行う前置部と
、所定の終了処理を行う後置部を有する目的プログラム
を生成するコンパイラにおいて、原始プログラムに所定
の指定がある場合には、該前置部を、所定の制御情報が
所定の状態の場合のみ該初期化処理を実行するように構
成すると共に、該終了処理を実行すること無く、該プロ
グラムの呼出元に復帰するように該目的プログラムを生
成するように構成する。
に関し、 冗長な初期化処理及び終了処理を省略すると共に、副プ
ログラム間のデータの受は継ぎを可能にして、副プログ
ラムの実行効率を改善できる副プログラム生成処理方法
を目的とし、 所定のプログラミング言語で記述された計算機の原始プ
ログラムを翻訳して、所定の初期化処理を行う前置部と
、所定の終了処理を行う後置部を有する目的プログラム
を生成するコンパイラにおいて、原始プログラムに所定
の指定がある場合には、該前置部を、所定の制御情報が
所定の状態の場合のみ該初期化処理を実行するように構
成すると共に、該終了処理を実行すること無く、該プロ
グラムの呼出元に復帰するように該目的プログラムを生
成するように構成する。
本発明は、計算機のコンパイラにおける、副プログラム
を生成するための処理方法に関する。
を生成するための処理方法に関する。
計算機の応用システムを、例えばシステム記述言語で記
述したサブシステムから各種機能の副プログラムを呼び
出して必要な処理を実行する構成とし、それらの副プロ
グラムをその処理を記述し易い他のプログラミング言語
、例えばPL/I言語等で記述する場合がしばしばある
。
述したサブシステムから各種機能の副プログラムを呼び
出して必要な処理を実行する構成とし、それらの副プロ
グラムをその処理を記述し易い他のプログラミング言語
、例えばPL/I言語等で記述する場合がしばしばある
。
〔従来の技術と発明が解決しようとする課題〕前記のよ
うに、副プログラムとそれを呼び出すサブシステムとを
異なるプログラミング言語で記述する場合において、例
えば副プログラムが公知のPL/Iプログラミング言語
等で記述された原始プログラムの場合に、副プログラム
を翻訳するコンパイラは他の言語で記述されたサブシス
テムとの関係を識別しないので、コンパイラはその副プ
ログラムを1つの独立した目的プログラムとして生成し
、所要の初期化処理を行うプログラムを前置部とし、又
終了処理を行うプログラムを後置部とした構成にする。
うに、副プログラムとそれを呼び出すサブシステムとを
異なるプログラミング言語で記述する場合において、例
えば副プログラムが公知のPL/Iプログラミング言語
等で記述された原始プログラムの場合に、副プログラム
を翻訳するコンパイラは他の言語で記述されたサブシス
テムとの関係を識別しないので、コンパイラはその副プ
ログラムを1つの独立した目的プログラムとして生成し
、所要の初期化処理を行うプログラムを前置部とし、又
終了処理を行うプログラムを後置部とした構成にする。
こ\で前置部の行う初期化処理とは、本来の処理のため
の作業記4L1!、域を計算機の管理システムに要求し
て獲得し、必要な初期設定を行い、プログラムからの必
要な割り出しやエラー検出時等の割込の受付先プログラ
ムの入口を管理システムに通知する等の、いわゆる実行
環境を設定する処理であり、又後置部の終了処理とは、
使用した作業記憶領域をシステムに返却し、そのプログ
ラム中でオープンしてクローズしていないファイルをク
ローズする等の処理である。
の作業記4L1!、域を計算機の管理システムに要求し
て獲得し、必要な初期設定を行い、プログラムからの必
要な割り出しやエラー検出時等の割込の受付先プログラ
ムの入口を管理システムに通知する等の、いわゆる実行
環境を設定する処理であり、又後置部の終了処理とは、
使用した作業記憶領域をシステムに返却し、そのプログ
ラム中でオープンしてクローズしていないファイルをク
ローズする等の処理である。
従って、このように構成された副プログラムは、実行時
サブシステムから呼び出されるごとに、初期化処理及び
終了処理をその処理の前後に実行することになるが、そ
れらの処理は比較的長い処理時間を要する(例えば管理
システムへの処理要求、いわゆるスーパバイザコールを
、少なくとも数回行う必要がある)。
サブシステムから呼び出されるごとに、初期化処理及び
終了処理をその処理の前後に実行することになるが、そ
れらの処理は比較的長い処理時間を要する(例えば管理
システムへの処理要求、いわゆるスーパバイザコールを
、少なくとも数回行う必要がある)。
第3図は、以上のようなサブシステムと副プロダラムと
の関係を説明する図である。図はサブシステム1から副
プログラム2 (プログラムa)、副プログラム3 (
プログラムb)、副プログラム4 (プログラムC)を
順次呼び出す場合の例であり、制御の移行を太線で示す
。
の関係を説明する図である。図はサブシステム1から副
プログラム2 (プログラムa)、副プログラム3 (
プログラムb)、副プログラム4 (プログラムC)を
順次呼び出す場合の例であり、制御の移行を太線で示す
。
又、各プログラム2〜4は本体部の前後に、前記のよう
に前置部と後置部を持つ構成であり、図の各本体部には
PL/I言語で記述された原始プログラムの基本構成を
例示するものであり、後置の仕様によりそれぞれはEX
CI〜EXC3という手続き部を主プログラムとして、
INIT、 EXEC及びTERMなるサブルーチンの
手続きを呼ぶように構成された原始プログラムを表す。
に前置部と後置部を持つ構成であり、図の各本体部には
PL/I言語で記述された原始プログラムの基本構成を
例示するものであり、後置の仕様によりそれぞれはEX
CI〜EXC3という手続き部を主プログラムとして、
INIT、 EXEC及びTERMなるサブルーチンの
手続きを呼ぶように構成された原始プログラムを表す。
こ−で第2行にある、rOPTIONs(MAIN)
Jは、公知のようにこの手続きが独立の実行単位を構成
するものであることを指定するオプション文である。
Jは、公知のようにこの手続きが独立の実行単位を構成
するものであることを指定するオプション文である。
以上のように構成されるので、例えばサブシステムの処
理を介在して同じ副プログラムが何回も呼ばれる場合に
も、前の実行環境は消滅し、呼び出しごとに初期化処理
及び終了処理が行われて実行効率を低下し、又副プログ
ラム間で続いて同じファイルを使用する場合にも、各副
プログラムの呼び出しごとにファイルのオーブン、クロ
ーズ処理が必要になるという問題がある。
理を介在して同じ副プログラムが何回も呼ばれる場合に
も、前の実行環境は消滅し、呼び出しごとに初期化処理
及び終了処理が行われて実行効率を低下し、又副プログ
ラム間で続いて同じファイルを使用する場合にも、各副
プログラムの呼び出しごとにファイルのオーブン、クロ
ーズ処理が必要になるという問題がある。
本発明は、冗長な初期化処理及び終了処理を省略すると
共に、副プログラム間のデータの受は継ぎを可能にして
、副プログラムの実行効率を改善できる副プログラム生
成処理方法を目的とする。
共に、副プログラム間のデータの受は継ぎを可能にして
、副プログラムの実行効率を改善できる副プログラム生
成処理方法を目的とする。
第1図は、本発明の構成を示す処理の流れ図である。
図はコンパイラにおける、目的プログラムの初〔作 用
〕 コンパイラは所定のプログラミング言語で記述された計
算機の原始プログラムを翻訳し、通常は第1図の処理ス
テップ10〜12により、所定の初期化処理を行う前置
部と、所定の終了処理を行う後置部を有する目的プログ
ラムを生成する。
〕 コンパイラは所定のプログラミング言語で記述された計
算機の原始プログラムを翻訳し、通常は第1図の処理ス
テップ10〜12により、所定の初期化処理を行う前置
部と、所定の終了処理を行う後置部を有する目的プログ
ラムを生成する。
しかし、原始プログラムに所定の指定があることを処理
ステツプ10で識別した場合には、処理ステップ13.
14により前置部を、所定の制御情報が所定の状態の場
合のみ初期化処理を実行するように構成し、又終了処理
を実行すること無く、該プログラムの呼出元に復帰する
ように該目的プログラムを生成する。
ステツプ10で識別した場合には、処理ステップ13.
14により前置部を、所定の制御情報が所定の状態の場
合のみ初期化処理を実行するように構成し、又終了処理
を実行すること無く、該プログラムの呼出元に復帰する
ように該目的プログラムを生成する。
この処理方法により、副プログラムとする原始プログラ
ムに前記の指定をしておけば、必要な場合のみ初期化処
理を実行するようにし、終了処理は必要な副プログラム
を実行した後に一括して実行するようにして、実行効率
を改善し、且つデータの受は継ぎを可能にするように運
用することができる。
ムに前記の指定をしておけば、必要な場合のみ初期化処
理を実行するようにし、終了処理は必要な副プログラム
を実行した後に一括して実行するようにして、実行効率
を改善し、且つデータの受は継ぎを可能にするように運
用することができる。
本発明により、例えばPL/I言語の仕様において、前
記オプション文に例えばrsLIB Jの指定を追加す
る。
記オプション文に例えばrsLIB Jの指定を追加す
る。
コンパイラは、第1図の処理ステップ10でオプション
文を識別し、rOPTIONs(MAIN) Jであれ
ば、処理ステップ11で従来の初期化処理を前置部とし
、処理ステップ12で従来の終了処理を後置部として生
成する。
文を識別し、rOPTIONs(MAIN) Jであれ
ば、処理ステップ11で従来の初期化処理を前置部とし
、処理ステップ12で従来の終了処理を後置部として生
成する。
オプション文がrOPTIONs(SOB) Jであれ
ば、処理ステップ13で初期化処理の要否を一定の制御
情弗で判定して、必要な場合のみ初期化処理を実行する
ようにした前置部を生成する。
ば、処理ステップ13で初期化処理の要否を一定の制御
情弗で判定して、必要な場合のみ初期化処理を実行する
ようにした前置部を生成する。
この制御情報としては、例えば初期化処理で獲得する作
業記憶域のアドレスを設定する一定の記憶域の値を利用
するものとし、その値が0であれば作業記憶域の獲得が
行われていないので、初期化処理が必要な場合と判定し
、0でなければ初ill化処理が行われているので、そ
の値を作業記憶域の先頭アドレスとする等、改めて初期
化処理を行うことなく前の初期化結果を継承するように
前置部を構成する。又、初期化処理を必要とする場合に
は、サブルーチン化した初期化処理を呼び出すようにす
る。
業記憶域のアドレスを設定する一定の記憶域の値を利用
するものとし、その値が0であれば作業記憶域の獲得が
行われていないので、初期化処理が必要な場合と判定し
、0でなければ初ill化処理が行われているので、そ
の値を作業記憶域の先頭アドレスとする等、改めて初期
化処理を行うことなく前の初期化結果を継承するように
前置部を構成する。又、初期化処理を必要とする場合に
は、サブルーチン化した初期化処理を呼び出すようにす
る。
次に処理ステップ14で、本体部の処理終了後終了処理
を行わないで呼出元に復帰するように目的プログラムを
構成して処理を終わる。なお、オプション文にその他の
指定がある場合にはそれぞれに対する従来と同様の処理
を行う。
を行わないで呼出元に復帰するように目的プログラムを
構成して処理を終わる。なお、オプション文にその他の
指定がある場合にはそれぞれに対する従来と同様の処理
を行う。
コンパイラの以上の処理により、オプション文にSOB
指定をした原始プログラムからは、第2図に示すような
構成の目的プログラムが生成される。
指定をした原始プログラムからは、第2図に示すような
構成の目的プログラムが生成される。
第2図は前記第3図の各副プログラムにおける、INI
T、 EXEC及びTERMなるサブルーチンの手続き
をそれぞれ独立の副プログラムとして、SUB指定のも
とにコンパイルした結果を示し、第3図と同様に太線で
制御の移行を説明している。
T、 EXEC及びTERMなるサブルーチンの手続き
をそれぞれ独立の副プログラムとして、SUB指定のも
とにコンパイルした結果を示し、第3図と同様に太線で
制御の移行を説明している。
この例でINIT手続きの副プログラム21はファイル
のオープン処理、EXEC手続きの副プログラム22は
そのファイルにアクセスする処理、TIERM手続きの
副プログラム23はそのファイルのクローズ処理を行う
ものとし、サブシステム20が最初に副プログラム21
を呼ぶと(図のパス■)、副プログラム21の前置部は
初期化処理が必要と判定して、初期化処理ルーチン24
を呼んで(パス■)初期化処理を実行した後、オープン
処理を実行し、サブシステム20に制御を返す。
のオープン処理、EXEC手続きの副プログラム22は
そのファイルにアクセスする処理、TIERM手続きの
副プログラム23はそのファイルのクローズ処理を行う
ものとし、サブシステム20が最初に副プログラム21
を呼ぶと(図のパス■)、副プログラム21の前置部は
初期化処理が必要と判定して、初期化処理ルーチン24
を呼んで(パス■)初期化処理を実行した後、オープン
処理を実行し、サブシステム20に制御を返す。
そこで、サブシステム20は副プログラム22を呼ぶと
(パス■)、副プログラム22の前置部は初期化処理済
であることを検出するので、直ちに本体部のアクセス処
理の実行に入り、終了するとサブシステム20に制御を
返す。
(パス■)、副プログラム22の前置部は初期化処理済
であることを検出するので、直ちに本体部のアクセス処
理の実行に入り、終了するとサブシステム20に制御を
返す。
従って、同様のアクセス処理が複数回必要な場合に、副
プログラム22又は同じファイルにアクセスして別の処
理を行うように生成した他の副プログラムを何回呼び出
しても、前記と同様、初期化処理を行うことなく本体部
の処理のみを実行してサブシステム20に復帰するよう
にできる。
プログラム22又は同じファイルにアクセスして別の処
理を行うように生成した他の副プログラムを何回呼び出
しても、前記と同様、初期化処理を行うことなく本体部
の処理のみを実行してサブシステム20に復帰するよう
にできる。
このようにして、必要なアクセス処理を終わると、サブ
システム20は副プログラム23を呼び(パス■)、副
プログラム23は副プログラム22の場合と同様にして
、直ちに本体部のクローズ処理を実行してサブシステム
20に制御を返すので、サブシステム20はその後で終
了処理ルーチン25を呼んで(バス■)終了処理を実行
させる。
システム20は副プログラム23を呼び(パス■)、副
プログラム23は副プログラム22の場合と同様にして
、直ちに本体部のクローズ処理を実行してサブシステム
20に制御を返すので、サブシステム20はその後で終
了処理ルーチン25を呼んで(バス■)終了処理を実行
させる。
以上の説明で明らかなように、例えばあるファイルにつ
いてのアクセス処理が、サブシステムの処理を介在して
複数回必要な場合にも、初期化処理、ファイルのオープ
ン処理及びクローズ処理、及び終了処理は1回のみ実行
するようにサブシステムで制御することができる、副プ
ログラムの実行効率は改善される。
いてのアクセス処理が、サブシステムの処理を介在して
複数回必要な場合にも、初期化処理、ファイルのオープ
ン処理及びクローズ処理、及び終了処理は1回のみ実行
するようにサブシステムで制御することができる、副プ
ログラムの実行効率は改善される。
以上の説明から明らかなように本発明によれば、計算機
のコンパイラにおいて、副プログラムを生成する場合に
、冗長な初期化処理及び終了処理を省略すると共に、副
プログラム間のデータの受は継ぎを可能にして、実行効
率を改善できるように副プログラムを生成できるという
著しい工業的効果がある。
のコンパイラにおいて、副プログラムを生成する場合に
、冗長な初期化処理及び終了処理を省略すると共に、副
プログラム間のデータの受は継ぎを可能にして、実行効
率を改善できるように副プログラムを生成できるという
著しい工業的効果がある。
第1図は本発明の構成を示す処理の流れ図、第2図は本
発明の副プログラムの構成の説明図、第3図は従来の副
プログラムの構成の説明図である。 図において、 1.20はサブシステム、 2〜4.21〜23は副プログラム、 10〜14は処理ステップ、 24は初期化処理ルーチン、 25は終了処理ルーチン 本発明の構成を示す処理の流れ図 第1図 本発明の副プログラムの構成の説明図 第2図
発明の副プログラムの構成の説明図、第3図は従来の副
プログラムの構成の説明図である。 図において、 1.20はサブシステム、 2〜4.21〜23は副プログラム、 10〜14は処理ステップ、 24は初期化処理ルーチン、 25は終了処理ルーチン 本発明の構成を示す処理の流れ図 第1図 本発明の副プログラムの構成の説明図 第2図
Claims (1)
- 【特許請求の範囲】 所定のプログラミング言語で記述された計算機の原始プ
ログラムを翻訳して、所定の初期化処理を行う前置部と
、所定の終了処理を行う後置部を有する目的プログラム
を生成する(11、12)コンパイラにおいて、 原始プログラムに所定の指定がある場合には(10)、
該前置部を、所定の制御情報が所定の状態の場合のみ該
初期化処理を実行するように構成する(13)と共に、 該終了処理を実行すること無く、該プログラムの呼出元
に復帰するように該目的プログラムを生成する(14)
ことを特徴とする副プログラム生成処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63221146A JP3024131B2 (ja) | 1988-09-02 | 1988-09-02 | コンパイラシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63221146A JP3024131B2 (ja) | 1988-09-02 | 1988-09-02 | コンパイラシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0268631A true JPH0268631A (ja) | 1990-03-08 |
JP3024131B2 JP3024131B2 (ja) | 2000-03-21 |
Family
ID=16762187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63221146A Expired - Fee Related JP3024131B2 (ja) | 1988-09-02 | 1988-09-02 | コンパイラシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3024131B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013080281A (ja) * | 2011-09-30 | 2013-05-02 | Fujitsu Ltd | 実行制御プログラム、コンパイラ、実行制御装置および実行制御方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62205434A (ja) * | 1986-03-05 | 1987-09-10 | Fujitsu Ltd | 再帰呼出し可能プログラムのコンパイル処理方式 |
-
1988
- 1988-09-02 JP JP63221146A patent/JP3024131B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62205434A (ja) * | 1986-03-05 | 1987-09-10 | Fujitsu Ltd | 再帰呼出し可能プログラムのコンパイル処理方式 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013080281A (ja) * | 2011-09-30 | 2013-05-02 | Fujitsu Ltd | 実行制御プログラム、コンパイラ、実行制御装置および実行制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3024131B2 (ja) | 2000-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5675804A (en) | System and method for enabling a compiled computer program to invoke an interpretive computer program | |
JPH05505693A (ja) | 変換されたプログラムコードのソース命令不可分性を保持するためのシステムおよび方法 | |
US8752056B2 (en) | Running native code across single or multi-core hybrid processor achitecture | |
US20040098639A1 (en) | Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems | |
JPS61241837A (ja) | 範囲検査の最適化方法 | |
US6735774B1 (en) | Method and apparatus for system call management | |
EP4191417B1 (en) | Systems and methods for automapping source code to machine code | |
US5150474A (en) | Method for transferring arguments between object programs by switching address modes according to mode identifying flag | |
US8898625B2 (en) | Optimized storage of function variables | |
JPH0268631A (ja) | コンパイラシステム | |
WO2022099569A1 (zh) | 一种类脑计算机操作系统的应用处理程序动态加载方法 | |
US6738976B1 (en) | Method, system, and apparatus to minimize exception handling overhead from invoked functions | |
JPS6049352B2 (ja) | デ−タ処理装置 | |
US4633406A (en) | Digital data processing system method for making a general call | |
JP2502128B2 (ja) | コンパイラ装置 | |
US7627859B2 (en) | Method for configuring non-script language library files to be run as scripts | |
JP3039450B2 (ja) | スタック領域の切替方法、方式およびスタック領域切替プログラムを記録した記憶媒体 | |
JP2743889B2 (ja) | プログラム評価の方法および装置 | |
JP2802109B2 (ja) | メモリアクセス制御方式 | |
KR950005523B1 (ko) | 프로그램어블 로직 콘트롤러의 스텝 런 처리방법 | |
JPH06131212A (ja) | 他のプログラムによるターゲットプログラムの呼び出しに関してターゲットプログラムの実行を追跡するコンピュータ制御方法 | |
JPH01309125A (ja) | メモリ内容監視・比較・検出方式 | |
KR20180085679A (ko) | 병렬 시스템에서의 데이터 복사 방법 및 이를 수행하기 위한 병렬 시스템 | |
JPH06119203A (ja) | デバック行削除装置 | |
JPS61148536A (ja) | 情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |