JPH0283627A - インタプリタ - Google Patents
インタプリタInfo
- Publication number
- JPH0283627A JPH0283627A JP1184885A JP18488589A JPH0283627A JP H0283627 A JPH0283627 A JP H0283627A JP 1184885 A JP1184885 A JP 1184885A JP 18488589 A JP18488589 A JP 18488589A JP H0283627 A JPH0283627 A JP H0283627A
- Authority
- JP
- Japan
- Prior art keywords
- routine
- external
- apl
- external routine
- interpreter
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Devices For Executing Special Programs (AREA)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
本発明はディジタル計算、特に、APLプログラムによ
り提供されるような、インタプリタ方式の処理系と、他
のプロセス、プログラム(ここでは集合的に外部ルーチ
ンと呼ぶ)との間の相互作用に関する。
り提供されるような、インタプリタ方式の処理系と、他
のプロセス、プログラム(ここでは集合的に外部ルーチ
ンと呼ぶ)との間の相互作用に関する。
B、従来技術
APLは、周知、の広く使われているインタプリタ方式
の言語及び処理系である。APL処理・系は、典型的な
場合、キーボード入力装置とタスク表示出力装置とを有
しホスト処理装置に接続されたデータ処理システムにお
いて走行する。、APLは、ソフトウェアを動的に構成
し、修正しそして実行し、またデータ構造全体を直接的
に処理する機構を含んでいる。APLのパワーは、一般
的なデータ構造、配列及びその結果としてそのデータ構
造に対する強力な演算子を定義できる可能性から生じて
いる。APL及び公知のAPLプログラム製品について
いくつかの説明が存在している。
の言語及び処理系である。APL処理・系は、典型的な
場合、キーボード入力装置とタスク表示出力装置とを有
しホスト処理装置に接続されたデータ処理システムにお
いて走行する。、APLは、ソフトウェアを動的に構成
し、修正しそして実行し、またデータ構造全体を直接的
に処理する機構を含んでいる。APLのパワーは、一般
的なデータ構造、配列及びその結果としてそのデータ構
造に対する強力な演算子を定義できる可能性から生じて
いる。APL及び公知のAPLプログラム製品について
いくつかの説明が存在している。
例えばGilman及びRose著、“A P L :
An Interactive Approach”
、第3版、John Wiley Publish−
ing Co、、 1984年刊; Po1ivka
及びPakin著、” A P L : The La
nguage and Its UsagePrent
ice Hall Publishing Co、、
1975年刊;Rodney Zaks著、“A M
icroprogrammed A P LImple
mentation” 、 5ybex、Inc、、
1978年刊;及びIBM社の刊行物5H20−92
77、”AP L 2 Programming :
Language Reference”を参照された
い。
An Interactive Approach”
、第3版、John Wiley Publish−
ing Co、、 1984年刊; Po1ivka
及びPakin著、” A P L : The La
nguage and Its UsagePrent
ice Hall Publishing Co、、
1975年刊;Rodney Zaks著、“A M
icroprogrammed A P LImple
mentation” 、 5ybex、Inc、、
1978年刊;及びIBM社の刊行物5H20−92
77、”AP L 2 Programming :
Language Reference”を参照された
い。
APLは、APL言語で書かれたプログラムをインタプ
リタ方式で実行するとともに、「外部ルーチン」と呼ば
れる他の言語で書かれたルーチンを起動し、そのような
外部ルーチンに引数を渡し、外部ルーチンから結果を受
は取る能力を提供するインタプリタ方式の処理系として
実現されている。
リタ方式で実行するとともに、「外部ルーチン」と呼ば
れる他の言語で書かれたルーチンを起動し、そのような
外部ルーチンに引数を渡し、外部ルーチンから結果を受
は取る能力を提供するインタプリタ方式の処理系として
実現されている。
APLインタプリタ環境と外部ルーチンとの間の相互作
用は、メツセージ伝達インタフェース又はプロトコルを
使用する。1つのそのような公知のメツセージ・インタ
フェースは、IBM社の刊行物、S H20−9234
、“APL2Programming : Proce
ssor Interface Reference”
に記載されている。
用は、メツセージ伝達インタフェース又はプロトコルを
使用する。1つのそのような公知のメツセージ・インタ
フェースは、IBM社の刊行物、S H20−9234
、“APL2Programming : Proce
ssor Interface Reference”
に記載されている。
インタプリタ方式の処理系(interpretive
processor )及びそれによって起動される他
のプロセスの能力を拡張し、それらのプロセスがインタ
プリタ方式の処理系からのサービスを要求できるように
することが望ましい。
processor )及びそれによって起動される他
のプロセスの能力を拡張し、それらのプロセスがインタ
プリタ方式の処理系からのサービスを要求できるように
することが望ましい。
本発明は米国特許第4736321号の発明の改良であ
る。この特許は、外部プロセスを実行し。
る。この特許は、外部プロセスを実行し。
インタプリタ方式の言語の作業空間内から外部データに
アクセスするための方法を示している。外部プロセス又
は外部データを参照する作業空間タスクは、プロセスが
終了するか又はデータが参照されるまで同期又はロック
される。この方法ステップは、メツセージ・インタフェ
ースを確立し、動的環境において引数の強制(coer
cion )を使用する。この構成は、APL作業空間
を終了することなく、APL作業空間内から非インタプ
リタ・プロセスを起動し、外部プロセスから情報を返す
ことを可能にする。そのような外部のプロセスは、ここ
では、「外部ルーチン」と呼ぶ。上記特許では、FOR
TRANライブラリ・ルーチンの起動が示されており、
このライブラリ・ルーチンはホスト処理装置又はその周
辺データ記憶装置中のライブラリ中に存在する。これは
APLセツションに対して論理的且つ機能的には外部に
存在する。
アクセスするための方法を示している。外部プロセス又
は外部データを参照する作業空間タスクは、プロセスが
終了するか又はデータが参照されるまで同期又はロック
される。この方法ステップは、メツセージ・インタフェ
ースを確立し、動的環境において引数の強制(coer
cion )を使用する。この構成は、APL作業空間
を終了することなく、APL作業空間内から非インタプ
リタ・プロセスを起動し、外部プロセスから情報を返す
ことを可能にする。そのような外部のプロセスは、ここ
では、「外部ルーチン」と呼ぶ。上記特許では、FOR
TRANライブラリ・ルーチンの起動が示されており、
このライブラリ・ルーチンはホスト処理装置又はその周
辺データ記憶装置中のライブラリ中に存在する。これは
APLセツションに対して論理的且つ機能的には外部に
存在する。
(APLの作業空間に対して外部にある)外部ルーチン
による計算の起動において、引数はAPLから外部形式
に変換され、外部で生成された結果は外部形式からAP
L形式に変換される。
による計算の起動において、引数はAPLから外部形式
に変換され、外部で生成された結果は外部形式からAP
L形式に変換される。
米国特許第4410940号は、多重処理環境において
実行可能な、階層的に関係付けられた協働的順次プロセ
スの間で制御を移動する方法を示している。それによる
と、ポインタが活動状態及び中断状態のプロセスを識別
する。活動化レコードが生成及び記憶され、次にプロセ
ス・ポインタが、1つのプロセスの中断及び他のプロセ
スの活動化(他のプロセスの最も最近に実行した部分に
おいてプログラム実行を再開することによる)を記録す
るように更新される。各プロセスは、内部データ記憶装
置中に1つの活動化レコードを有している。このレコー
ドは、プロセスの最も最近に実行した部分に対して、プ
ロセスの親である活動化を指し、そしてプロセスの現在
の実行状態を定義する。しかし、上記発明では、データ
構造を共有しながら独立性を示す、並列に実行するプロ
セスに関しては何の提案も行なわれていない。
実行可能な、階層的に関係付けられた協働的順次プロセ
スの間で制御を移動する方法を示している。それによる
と、ポインタが活動状態及び中断状態のプロセスを識別
する。活動化レコードが生成及び記憶され、次にプロセ
ス・ポインタが、1つのプロセスの中断及び他のプロセ
スの活動化(他のプロセスの最も最近に実行した部分に
おいてプログラム実行を再開することによる)を記録す
るように更新される。各プロセスは、内部データ記憶装
置中に1つの活動化レコードを有している。このレコー
ドは、プロセスの最も最近に実行した部分に対して、プ
ロセスの親である活動化を指し、そしてプロセスの現在
の実行状態を定義する。しかし、上記発明では、データ
構造を共有しながら独立性を示す、並列に実行するプロ
セスに関しては何の提案も行なわれていない。
米国特許第4553202号は、マルチタスク環境にお
いてユーザーが実時間的な資源の再割り振りを行なう方
法を教示している。オペレーティング・システムは、そ
のような資源に対するキューを構成し、そこで新しいタ
スクが割り込み起動される。次に、ディスパッチャが、
資源キュー中の次のタスクに資源を割り振る。キュー・
スイッチングは、ディスパッチャによるプロセス・スケ
ジューリングに対して直交している。
いてユーザーが実時間的な資源の再割り振りを行なう方
法を教示している。オペレーティング・システムは、そ
のような資源に対するキューを構成し、そこで新しいタ
スクが割り込み起動される。次に、ディスパッチャが、
資源キュー中の次のタスクに資源を割り振る。キュー・
スイッチングは、ディスパッチャによるプロセス・スケ
ジューリングに対して直交している。
C1発明が解決しようとする課題
本発明の目的は、外部ルーチンが、インタプリタ方式の
処理系において個々のインタプリタ・プロセスを呼び出
すこと、又はインタプリタ環境中に存在するデータ項目
の値をセットもしくは取得することを可能にするために
、コールバック(call back)機構をインタプ
リタ方式の処理系に提供することである。この目的と関
連して、インタプリタ方式の処理系と外部ルーチンとの
間で再帰的呼び出しが可能になる。
処理系において個々のインタプリタ・プロセスを呼び出
すこと、又はインタプリタ環境中に存在するデータ項目
の値をセットもしくは取得することを可能にするために
、コールバック(call back)機構をインタプ
リタ方式の処理系に提供することである。この目的と関
連して、インタプリタ方式の処理系と外部ルーチンとの
間で再帰的呼び出しが可能になる。
00課題を解決するための手段
本発明によれば、外部ルーチンは、独立的に、又は外部
ルーチンに引数情報を渡すインタプリタ処理系からの呼
び出しを受は取った後に、外部ルーチンのためにインタ
プリタの機能を実行するためにインタプリタ処理系を活
動化する。インタプリタ処理系と外部ルーチンとの間の
通信は、インタプリタ処理系と外部ルーチンとの間で制
御及び情報の双方向の交換を容易にするメツセージ伝達
インタフェースを介して行なわれる。
ルーチンに引数情報を渡すインタプリタ処理系からの呼
び出しを受は取った後に、外部ルーチンのためにインタ
プリタの機能を実行するためにインタプリタ処理系を活
動化する。インタプリタ処理系と外部ルーチンとの間の
通信は、インタプリタ処理系と外部ルーチンとの間で制
御及び情報の双方向の交換を容易にするメツセージ伝達
インタフェースを介して行なわれる。
前述のメツセージ伝達インタフェースを用いて、インタ
プリタ処理系により同期的なサブルーチンとして起動さ
れると、外部ルーチンは、インタプリタ処理系中のサー
ビス・ルーチン(そのエントリ・ポイントのアドレスは
1例えばメツセージ伝達インタフェースを用いることに
より、インタプリタ処理系により外部ルーチンに事前に
提供されている)に同期的に制御を渡すことによりイン
タプリタ処理系に要求を送る。メツセージ伝達インタフ
ェースは、インタプリタ処理系のサービス・ルーチンに
対して行なわれる要求の性質、外部ルーチンによるアク
セスに関するインタプリタの環境中のデータ項目又はル
ーチンの識別、及び要求に関係する引数及び/又は値へ
のポインタを指定するために使われる。
プリタ処理系により同期的なサブルーチンとして起動さ
れると、外部ルーチンは、インタプリタ処理系中のサー
ビス・ルーチン(そのエントリ・ポイントのアドレスは
1例えばメツセージ伝達インタフェースを用いることに
より、インタプリタ処理系により外部ルーチンに事前に
提供されている)に同期的に制御を渡すことによりイン
タプリタ処理系に要求を送る。メツセージ伝達インタフ
ェースは、インタプリタ処理系のサービス・ルーチンに
対して行なわれる要求の性質、外部ルーチンによるアク
セスに関するインタプリタの環境中のデータ項目又はル
ーチンの識別、及び要求に関係する引数及び/又は値へ
のポインタを指定するために使われる。
本発明を使用すると、外部ルーチンは、インタプリタ方
式の処理系に種々のプログラムされた動作を実行させる
ことができる。それらの動作には、インタプリタ環境中
に存在するルーチンの実行。
式の処理系に種々のプログラムされた動作を実行させる
ことができる。それらの動作には、インタプリタ環境中
に存在するルーチンの実行。
それ自身サービス要求を出した外部ルーチンの再帰的な
実行、及びインタプリタ環境中に存在する変数の値の取
得又は設定が含まれる。
実行、及びインタプリタ環境中に存在する変数の値の取
得又は設定が含まれる。
E、実施例
ここで説明するインタプリタ方式の処理系は、IBMの
APL2プログラム製品5668−899であるが、そ
れに限定することを意図するものではない。APL2に
ついての詳細をむやみに反復するのを避け、発明をより
明瞭に強調するために、説明は単純化されている。AP
Lユーザの各々は、周知のように、活性の作業空間10
を有している。これはAPLプログラムの実行に必要な
全てのAPLオブジェクト11及び12を含んでいる。
APL2プログラム製品5668−899であるが、そ
れに限定することを意図するものではない。APL2に
ついての詳細をむやみに反復するのを避け、発明をより
明瞭に強調するために、説明は単純化されている。AP
Lユーザの各々は、周知のように、活性の作業空間10
を有している。これはAPLプログラムの実行に必要な
全てのAPLオブジェクト11及び12を含んでいる。
そのようなオブジェクトとしては、データの構造化され
た集まりを含む変数1.2、変数12に対して操作及び
計算を行なうプログラムである関数11、並びに変数及
び関数を処理してその変数に適用される新しい関数を作
る演算子11が存在する。各オブジェクトは形成された
時に名前が付けられる。そのような名前は、形成された
オブジェクトにアクセスする時に、APLにより使用さ
れる。
た集まりを含む変数1.2、変数12に対して操作及び
計算を行なうプログラムである関数11、並びに変数及
び関数を処理してその変数に適用される新しい関数を作
る演算子11が存在する。各オブジェクトは形成された
時に名前が付けられる。そのような名前は、形成された
オブジェクトにアクセスする時に、APLにより使用さ
れる。
ユーザが指定した機械動作をデータに対して実行して結
果を得るために、APLは活性な作業空間10内に関数
及び演算子11を起動する。さらに、上記米国特許第4
736321号に開示されているように、またAPLは
、APL以外の言語で書かれた外部ルーチン30を起動
し、APLによりそのような外部ルーチンに渡された引
数に対して処理を行なわせ、APLの活性な作業空間1
0内で利用可能な結果を得ることもある。
果を得るために、APLは活性な作業空間10内に関数
及び演算子11を起動する。さらに、上記米国特許第4
736321号に開示されているように、またAPLは
、APL以外の言語で書かれた外部ルーチン30を起動
し、APLによりそのような外部ルーチンに渡された引
数に対して処理を行なわせ、APLの活性な作業空間1
0内で利用可能な結果を得ることもある。
上記米国特許第4736321号に開示されたような、
APLによる外部ルーチンの起動と、本発明の1つの側
面とを組み合わせると、起動された外部ルーチン30又
は他の外部ルーチン32がAPLに要求を送り、指定さ
れた内部APL関数又は内部演算子11を実行して結果
を呼び出し側の外部ルーチンに返すことが可能になる。
APLによる外部ルーチンの起動と、本発明の1つの側
面とを組み合わせると、起動された外部ルーチン30又
は他の外部ルーチン32がAPLに要求を送り、指定さ
れた内部APL関数又は内部演算子11を実行して結果
を呼び出し側の外部ルーチンに返すことが可能になる。
APLは、外部ルーチン30よりも効率的にある種の操
作を行なうことができるので、ホスト処理装置の全体的
な計算効率が向上する。即ち、APLからの呼び出しの
系列に、APLへの呼び出しが入ると、非APLルーチ
ンにより最も効率的に実行される計算活動はそのような
ルーチンにより実行され、一方APLにより最も効率的
に実行される計算活動はAPLにより実行される。
作を行なうことができるので、ホスト処理装置の全体的
な計算効率が向上する。即ち、APLからの呼び出しの
系列に、APLへの呼び出しが入ると、非APLルーチ
ンにより最も効率的に実行される計算活動はそのような
ルーチンにより実行され、一方APLにより最も効率的
に実行される計算活動はAPLにより実行される。
外部ルーチンを起動し、それに渡された引数に対して処
理機能を実行しAPLに結果を与える事と組み合せて、
本発明の他の側面は、起動された外部ルーチン30又は
他の外部ルーチン32が。
理機能を実行しAPLに結果を与える事と組み合せて、
本発明の他の側面は、起動された外部ルーチン30又は
他の外部ルーチン32が。
活性な作業空間10中の指定された内部APL変数12
の値を得るか又はそれを設定するためにAPLに要求を
送ることを可能にする。そのような要求を通して、外部
ルーチン30は、実行を行ないながら、APL変数12
の値を動的に取得又は設定できる。そのような変数12
は、実行中の外部ルーチンに引数として渡されなかった
APL変数や、実行中の外部ルーチンによりAPLrE
Pび出しの明示的な結果として作成されないAPL変数
を含む。そのような要求は、実行中の外部ルーチン3o
に、活性の作業空間1oに対して内部的な特定のデータ
項目へのアクセスを提供する。内部データへのそのよう
な直接のアクセスは従来技術では可能でなかった。この
付加的な機能は、そのような外部ルーチンの有効性を高
め、その結果それらはインタプリタ処理系に関してより
多くの処理機能を効果的に提供するようになる。
の値を得るか又はそれを設定するためにAPLに要求を
送ることを可能にする。そのような要求を通して、外部
ルーチン30は、実行を行ないながら、APL変数12
の値を動的に取得又は設定できる。そのような変数12
は、実行中の外部ルーチンに引数として渡されなかった
APL変数や、実行中の外部ルーチンによりAPLrE
Pび出しの明示的な結果として作成されないAPL変数
を含む。そのような要求は、実行中の外部ルーチン3o
に、活性の作業空間1oに対して内部的な特定のデータ
項目へのアクセスを提供する。内部データへのそのよう
な直接のアクセスは従来技術では可能でなかった。この
付加的な機能は、そのような外部ルーチンの有効性を高
め、その結果それらはインタプリタ処理系に関してより
多くの処理機能を効果的に提供するようになる。
外部ルーチン3oがAPLインタプリタ20により起動
される時、APLインタプリタ20は外部ルーチン30
をサブルーチンとして起動する。
される時、APLインタプリタ20は外部ルーチン30
をサブルーチンとして起動する。
この起動を可能にするインタフェースも周知であり、A
PLから外部ルーチン30への引数データに対するポイ
ンタ43が渡される。上記米国特許第4736321号
を参照されたい。また上記米国特許は、外部ルーチンが
渡された引数に操作を行ない結果をAPLに供給する(
例えば、図示の制御ブロックの結果フィールド44にお
けるように)ことも示している。
PLから外部ルーチン30への引数データに対するポイ
ンタ43が渡される。上記米国特許第4736321号
を参照されたい。また上記米国特許は、外部ルーチンが
渡された引数に操作を行ない結果をAPLに供給する(
例えば、図示の制御ブロックの結果フィールド44にお
けるように)ことも示している。
本発明はAPLインタプリタ20と外部ルーチン30と
の間の制御交換及びメツセージ伝達機能を拡張する。拡
張は、インタプリタ20の公知の部分であるAPLサー
ビス・ルーチンの現在のAPLの内部アドレスを外部ル
ーチン30に与えることにより行なわれる。こうすれば
、外部ルーチン3oは、好ましくは、サービス・ルーチ
ン21の]1APL内部エントリ・アドレスを渡すAP
L起動に応答して実行している時に、コール・バック中
に、サービス・ルーチン21を直接に起動することがで
きる。APLインタプリタ20へのコール・バック要求
は、活性の作業空間10内の特定の関数又は演算子11
−の実行を要求する目的、又は活性の作業空間10内の
特定のAPL変数、オペランド等12の値の取得又は設
定に関する目的を含む。
の間の制御交換及びメツセージ伝達機能を拡張する。拡
張は、インタプリタ20の公知の部分であるAPLサー
ビス・ルーチンの現在のAPLの内部アドレスを外部ル
ーチン30に与えることにより行なわれる。こうすれば
、外部ルーチン3oは、好ましくは、サービス・ルーチ
ン21の]1APL内部エントリ・アドレスを渡すAP
L起動に応答して実行している時に、コール・バック中
に、サービス・ルーチン21を直接に起動することがで
きる。APLインタプリタ20へのコール・バック要求
は、活性の作業空間10内の特定の関数又は演算子11
−の実行を要求する目的、又は活性の作業空間10内の
特定のAPL変数、オペランド等12の値の取得又は設
定に関する目的を含む。
本発明による機能のより以上の拡張により、要素20.
30及び40の間に伸びる破線により示されるように、
外部ルーチン3oとAPLインタプリタ20の両者に利
用可能な制御ブロック40のフィールド42の変数12
の名前を、外部ルーチン30が指定することが可能にな
る。この指定は、外部ルーチン3oがサービス・ルーチ
ン21を起動して、その名前の変数の値を設定又は取得
することを可能にする。取得されると、変数の値はサー
ビス・ルーチン21によりフィールド44に記憶され、
外部ルーチン3oに容易に利用可能になる。外部ルーチ
ン30は、外部ルーチンによりセット又はAPLインタ
プリタ20により返されるフィールド43中に引数、オ
ペラン1く又は値へのポインタを挿入できる。ポインタ
42は外部ルーチン自体又は他の外部ルーチンを指すこ
とが可能である。そのような操作は、外部ルーチン3O
がポインタを使用して、それ自身の再帰的な実行を要求
するためのコール・バックを保証することを可能にする
。
30及び40の間に伸びる破線により示されるように、
外部ルーチン3oとAPLインタプリタ20の両者に利
用可能な制御ブロック40のフィールド42の変数12
の名前を、外部ルーチン30が指定することが可能にな
る。この指定は、外部ルーチン3oがサービス・ルーチ
ン21を起動して、その名前の変数の値を設定又は取得
することを可能にする。取得されると、変数の値はサー
ビス・ルーチン21によりフィールド44に記憶され、
外部ルーチン3oに容易に利用可能になる。外部ルーチ
ン30は、外部ルーチンによりセット又はAPLインタ
プリタ20により返されるフィールド43中に引数、オ
ペラン1く又は値へのポインタを挿入できる。ポインタ
42は外部ルーチン自体又は他の外部ルーチンを指すこ
とが可能である。そのような操作は、外部ルーチン3O
がポインタを使用して、それ自身の再帰的な実行を要求
するためのコール・バックを保証することを可能にする
。
さらに、外部ルーチン30は、制御がサービス・ルーチ
ン21に渡される時にフィールド41中にコール・バッ
ク要求の型を指定できる。そのようなコール・バックの
型は、関数又は演算子の実行、変数の値の取得、又は変
数の値の設定を含む。
ン21に渡される時にフィールド41中にコール・バッ
ク要求の型を指定できる。そのようなコール・バックの
型は、関数又は演算子の実行、変数の値の取得、又は変
数の値の設定を含む。
図面は、外部ルーチン30.32並びにA P Lイン
タプリタ20及びサービス・ルーチン21が制御ブロッ
ク4oにアクセスすることを示している。制御ブロック
40は、外部ルーチンから又はそれへの呼び出しの型を
示すフィールド41、外部ルーチンによりアクセスされ
る関数、演算子又は変数の名前へのポインタを含むフィ
ールド42、APLの内部の引数、演算子又は値を含む
フィールド43、APLサービス・ルーチン21による
計算結果を記憶しているフィールド44、並びにエラー
情報を含むフィールド45を含んでいる。
タプリタ20及びサービス・ルーチン21が制御ブロッ
ク4oにアクセスすることを示している。制御ブロック
40は、外部ルーチンから又はそれへの呼び出しの型を
示すフィールド41、外部ルーチンによりアクセスされ
る関数、演算子又は変数の名前へのポインタを含むフィ
ールド42、APLの内部の引数、演算子又は値を含む
フィールド43、APLサービス・ルーチン21による
計算結果を記憶しているフィールド44、並びにエラー
情報を含むフィールド45を含んでいる。
このように内部APLオブジェクトのアドレス可能性が
拡張され、外部ルーチンがコール・バック・モードで特
定のAPL応答を生じさせるために内部APLオブジェ
クトの各々のものにアクセスすることが可能になる。
拡張され、外部ルーチンがコール・バック・モードで特
定のAPL応答を生じさせるために内部APLオブジェ
クトの各々のものにアクセスすることが可能になる。
実施例では、最初にA P Lインタプリタ20は制御
ブロック40中に適当な情報を挿入する。これは前記米
国特許第4736321号に示されるように呼び出され
る外部ルーチンにより後に使用される。その後、外部ル
ーチン3oは必要に応じて制御ブロック40にアクセス
して情報を挿入/読取する。次に外部ルーチン30は、
上述のように、要求された動作を実行するためにサービ
ス・ルーチン21を呼び出す。その後、サービス・ルー
チンは、外部ルーチン30によるアクセスのために制御
ブロック40に情報を記憶する。
ブロック40中に適当な情報を挿入する。これは前記米
国特許第4736321号に示されるように呼び出され
る外部ルーチンにより後に使用される。その後、外部ル
ーチン3oは必要に応じて制御ブロック40にアクセス
して情報を挿入/読取する。次に外部ルーチン30は、
上述のように、要求された動作を実行するためにサービ
ス・ルーチン21を呼び出す。その後、サービス・ルー
チンは、外部ルーチン30によるアクセスのために制御
ブロック40に情報を記憶する。
F1発明の効果
本発明を用いれば外部ルーチンによりインタプリタにサ
ービスを要求することができ、処理の全体的な効率を向
上させることができる。
ービスを要求することができ、処理の全体的な効率を向
上させることができる。
図は1つ以上の外部ルーチンと協働するAPLインタプ
リタ処理系を図式的に示したものである。
リタ処理系を図式的に示したものである。
Claims (1)
- (1)サービス・ルーチン及び内部的に名前を付けられ
たオブジェクトを有するインタプリタ方式の処理系を含
む環境において、非インタプリタの外部ルーチンにより
上記名前の付いたオブジェクトにアクセスする方法であ
って、 上記環境中において上記外部ルーチンから上記サービス
・ルーチンに直接制御を渡すことを可能にするために上
記サービス・ルーチンのエントリ・ポイントに対するポ
インタを含む、上記外部ルーチンと上記処理系との間の
メッセージ伝達インタフェースを確立し、 上記処理系から上記外部ルーチンを起動し、上記メッセ
ージ伝達インタフェースを介して上記外部ルーチンに自
分自身を再帰的に処理させ、上記外部ルーチンから上記
サービス・ルーチンを起動し、上記サービス・ルーチン
が起動されるときに、上記メッセージ伝達インタフェー
ス中に、行なわれるべきインタプリタ・サービスの型、
実行されるべき処理系中の処理ルーチンの識別、及び識
別された処理ルーチンへの入力としての引数データへの
ポインタ又は他の識別、又は外部ルーチンにより処理系
内でアクセスされるべき各データ項目の識別を示し、 サービス・ルーチンから外部ルーチンに環境の制御が戻
るときに、上記外部ルーチンによる結果にアクセスする
ことを可能にするために得られた結果に対するポインタ
を上記メッセージ伝達インタフェース中に示す ステップを含む、外部ルーチンからインタプリタ内のオ
ブジェクトにアクセスする方法。(2)ユーザー・プロ
グラムを実行する時にインタプリタ方式の処理系により
使用される複数のオブジェクト及び関数を有するインタ
プリタ方式の処理系と外部ルーチンとの間で通信を行な
う方法であって、 上記インタプリタ方式の処理系から、必要な引数を含め
て上記オブジェクト又は関数の所定のものの上記外部ル
ーチンに対するインタプリタ環境のアドレスを可能性を
確立し、 上記外部ルーチンから、上記インタプリタ方式の処理系
を呼び出し、上記オブジェクト又は関数の上記所定のも
ののうちあるものを要求し、上記インタプリタ方式の処
理系で、上記関数の要求されたものを実行するか又は上
記オブジェクトの要求されたものを取得し、結果を外部
ルーチンに返す ステップを含む、インタプリタと外部ルーチンとの間で
通信を行なう方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/241,415 US4949255A (en) | 1988-09-07 | 1988-09-07 | Message interface and method for recursive calling between interpretive and compiled computer processes |
| US241415 | 1988-09-07 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0283627A true JPH0283627A (ja) | 1990-03-23 |
Family
ID=22910599
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1184885A Pending JPH0283627A (ja) | 1988-09-07 | 1989-07-19 | インタプリタ |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US4949255A (ja) |
| EP (1) | EP0358620A3 (ja) |
| JP (1) | JPH0283627A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6980252B1 (en) | 1996-09-03 | 2005-12-27 | Sanyo Electric Co., Ltd. | Electronic camera and battery voltage controlling method employed therein for successively, rather than simultaneously, operating camera portions during conditions of low battery voltage |
| JP2006130583A (ja) * | 2004-11-04 | 2006-05-25 | Ntt Infranet Co Ltd | 管切断器 |
Families Citing this family (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2666847B2 (ja) * | 1988-06-06 | 1997-10-22 | 日本電気株式会社 | 異種言語間連絡方式 |
| US5051893A (en) * | 1988-07-11 | 1991-09-24 | Digital Equipment Corporation | System for processing data to facilitate the creation of executable images |
| US5247676A (en) * | 1989-06-29 | 1993-09-21 | Digital Equipment Corporation | RPC based computer system using transparent callback and associated method |
| US5274821A (en) * | 1989-08-14 | 1993-12-28 | International Business Machines Corporation | Communication between prolog and an external process |
| DE645685T1 (de) * | 1989-08-31 | 1995-11-09 | Yokogawa Electric Corp | Verfahren zur Steuerung eines Line Computers zur Durchführung und Relokierung eines übersetztes Programms aus einer Datenspeichersammlung. |
| JP2991242B2 (ja) * | 1989-10-12 | 1999-12-20 | テキサス インスツルメンツ インコーポレーテッド | マルチプロセッサコンピュータシステム使用方法 |
| US5542085A (en) * | 1990-07-24 | 1996-07-30 | Hitachi, Ltd. | Method for producing program modules |
| US5212790A (en) * | 1990-11-28 | 1993-05-18 | Teknekron Communications Systems, Inc. | Method of programming a task, having a plurality of processes, created by a plurality of different programmers, for operation by a computer |
| US5652869A (en) * | 1991-03-07 | 1997-07-29 | Digital Equipment Corporation | System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls |
| CA2082066C (en) * | 1991-03-07 | 1998-04-21 | James A. Wooldridge | Software debugging system and method especially adapted for code debugging within a multi-architecture environment |
| US5339422A (en) * | 1991-03-07 | 1994-08-16 | Digital Equipment Corporation | System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment |
| IL97894A0 (en) * | 1991-04-17 | 1992-06-21 | Ibm | Multi-processor computer system |
| CA2061117C (en) * | 1991-12-02 | 1998-09-29 | Neta J. Amit | Apparatus and method for distributed program stack |
| CA2061298C (en) * | 1992-02-17 | 1996-12-03 | Douglas J. Mortson | Method for detecting critical failures during the building of complex computer programs from source code parts |
| US5794240A (en) * | 1992-05-26 | 1998-08-11 | Fujitsu Limited | Multi-threaded sorting system for a data processing system |
| CA2123924A1 (en) * | 1993-06-02 | 1994-12-03 | Charles Douglas Blewett | Specifying contexts in callback style programming |
| US5469574A (en) * | 1993-06-18 | 1995-11-21 | International Business Machines Corporation | Method and system for interfacing interpreted applications with compiled procedures using signature files |
| US5815716A (en) * | 1995-10-06 | 1998-09-29 | International Business Machines Corporation | Method for supporting multiple call interface conventions for computer programs using directives |
| US6236997B1 (en) | 1997-06-23 | 2001-05-22 | Oracle Corporation | Apparatus and method for accessing foreign databases in a heterogeneous database system |
| US5987463A (en) * | 1997-06-23 | 1999-11-16 | Oracle Corporation | Apparatus and method for calling external routines in a database system |
| US6226649B1 (en) | 1997-06-23 | 2001-05-01 | Oracle Corporation | Apparatus and method for transparent access of foreign databases in a heterogeneous database system |
| US6049800A (en) * | 1997-06-23 | 2000-04-11 | Oracle Corporation | Mechanism and method for performing callbacks |
| US6041344A (en) * | 1997-06-23 | 2000-03-21 | Oracle Corporation | Apparatus and method for passing statements to foreign databases by using a virtual package |
| JP3195275B2 (ja) * | 1997-06-27 | 2001-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | データベース・アクセス・システム |
| US6006235A (en) * | 1997-11-26 | 1999-12-21 | International Business Machines Corporation | Method and apparatus for invoking a stored procedure or a user defined interpreted language function in a database management system |
| US6820264B1 (en) | 2000-03-02 | 2004-11-16 | International Business Machines Corporation | Data gather/scatter machine |
| US7178153B1 (en) | 2002-05-10 | 2007-02-13 | Oracle International Corporation | Method and mechanism for implementing an access interface infrastructure |
| US8185868B1 (en) | 2004-12-20 | 2012-05-22 | The Mathworks, Inc. | System and method for cell-based code editing and publishing |
| US8762956B1 (en) * | 2007-01-31 | 2014-06-24 | The Mathworks, Inc. | Generating a report document from code |
| US8104029B2 (en) * | 2008-04-15 | 2012-01-24 | International Business Machines Corporation | Method for computation-communication overlap in MPI applications |
| US20100037214A1 (en) * | 2008-08-11 | 2010-02-11 | International Business Machines Corporation | Method and system for mpi_wait sinking for better computation-communication overlap in mpi applications |
| US20120102613A1 (en) * | 2010-10-27 | 2012-05-03 | Damian Loth | Compression sock |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4410940A (en) * | 1980-12-05 | 1983-10-18 | International Business Machines Corporation | Transfer of control method and means among hierarchical cooperating sequential processes |
| JPS5890248A (ja) * | 1981-11-25 | 1983-05-28 | Hitachi Ltd | プログラム間制御移動方式 |
| US4553202A (en) * | 1982-05-06 | 1985-11-12 | International Business Machines Corporation | User controlled dialog resource switching in a multi-tasking word processor |
| US4530051A (en) * | 1982-09-10 | 1985-07-16 | At&T Bell Laboratories | Program process execution in a distributed multiprocessor system |
| US4703416A (en) * | 1982-12-10 | 1987-10-27 | American Telephone And Telegraph Company | Apparatus for locating programs resident on a cartridge of a cartridge programmable communication system |
| US4587628A (en) * | 1983-12-05 | 1986-05-06 | International Business Machines Corporation | Method and apparatus for dynamic invocation of utilities |
| US4736321A (en) * | 1986-05-05 | 1988-04-05 | International Business Machines Corporation | Communication method between an interactive language processor workspace and external processes |
-
1988
- 1988-09-07 US US07/241,415 patent/US4949255A/en not_active Expired - Lifetime
-
1989
- 1989-07-19 JP JP1184885A patent/JPH0283627A/ja active Pending
- 1989-08-09 EP EP19890850250 patent/EP0358620A3/en not_active Withdrawn
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6980252B1 (en) | 1996-09-03 | 2005-12-27 | Sanyo Electric Co., Ltd. | Electronic camera and battery voltage controlling method employed therein for successively, rather than simultaneously, operating camera portions during conditions of low battery voltage |
| JP2006130583A (ja) * | 2004-11-04 | 2006-05-25 | Ntt Infranet Co Ltd | 管切断器 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0358620A2 (en) | 1990-03-14 |
| US4949255A (en) | 1990-08-14 |
| EP0358620A3 (en) | 1992-06-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4949255A (en) | Message interface and method for recursive calling between interpretive and compiled computer processes | |
| US6192418B1 (en) | System and method for performing external procedure calls from a client program to a server program while both are operating in a heterogenous computer | |
| US6567861B1 (en) | Method and apparatus for remotely running objects using data streams and/or complex parameters | |
| JP3822541B2 (ja) | オブジェクトインターフェイスにポインタをパスするためのコンピュータシステム | |
| JP3251800B2 (ja) | ネットワーク内のコンピュータ間でデータを交換するための通信システム | |
| US6253252B1 (en) | Method and apparatus for asynchronously calling and implementing objects | |
| US5430876A (en) | Remote procedure callback system and method | |
| US6321275B1 (en) | Interpreted remote procedure calls | |
| US6393497B1 (en) | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system | |
| US6948172B1 (en) | Preemptive multi-tasking with cooperative groups of tasks | |
| US5249293A (en) | Computer network providing transparent operation on a compute server and associated method | |
| US6487607B1 (en) | Methods and apparatus for remote method invocation | |
| US6854114B1 (en) | Using a virtual machine instance as the basic unit of user execution in a server environment | |
| US7210148B2 (en) | Method and apparatus for dynamic distributed computing over a network | |
| CA2061117C (en) | Apparatus and method for distributed program stack | |
| EP0899659B1 (en) | An apparatus and method for simulating multiple nodes on a single machine | |
| JPH07121373A (ja) | データ処理システム及びその動作方法 | |
| JPH0869435A (ja) | ネットワークを介してリモート・プロシージャ・コール及びレスポンスを転送するための方法及びシステム | |
| KR20010034542A (ko) | 네트워크를 통한 동적 분산 컴퓨팅 방법 및 장치 | |
| US6470346B2 (en) | Remote computation framework | |
| EP0733970A1 (en) | Methods and apparatus for managing collections of objects | |
| US6353859B1 (en) | Object-oriented apparatus and method for controlling accesses to objects in a distributed object environment | |
| US6151638A (en) | System and method for performing external procedure calls from a client program to a server program to a server program and back to the client program while both are running in a heterogenous computer | |
| US6751798B1 (en) | Method and apparatus for performing distributed object calls using proxies and memory allocation | |
| JPH0683647A (ja) | 汎用制御インターフェースを含むデータ処理システム |