JPH02272627A - デイジタル・コンピユータ・システムとその手続呼び出し方法 - Google Patents
デイジタル・コンピユータ・システムとその手続呼び出し方法Info
- Publication number
- JPH02272627A JPH02272627A JP2052890A JP5289090A JPH02272627A JP H02272627 A JPH02272627 A JP H02272627A JP 2052890 A JP2052890 A JP 2052890A JP 5289090 A JP5289090 A JP 5289090A JP H02272627 A JPH02272627 A JP H02272627A
- Authority
- JP
- Japan
- Prior art keywords
- procedure
- service
- library
- calling
- procedures
- 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
- 238000000034 method Methods 0.000 title claims abstract description 151
- 238000012545 processing Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 5
- 230000002411 adverse Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
A、産業上の利用分野
この発明は、一般的にはコンピュータ・システムに関し
、より詳しくは手続呼び出しを作成するための技術に関
する。
、より詳しくは手続呼び出しを作成するための技術に関
する。
B、従来の技術
プログラミング言語は、手続呼び出しを生成するための
機能を提供し、これにより、最利用可能なコードを定義
された位置に配置し必要時に実行することが可能となる
。呼び出される手続にはパラメータを渡し結果を受け取
ることもできる。ここでは、手続という用語は包括的な
意味で使用され、すなわち、特定の場合、手続、関数、
及びサブルーチンと呼ばれるプログラム・セグメントを
ここでは手続と呼ぶことにする。
機能を提供し、これにより、最利用可能なコードを定義
された位置に配置し必要時に実行することが可能となる
。呼び出される手続にはパラメータを渡し結果を受け取
ることもできる。ここでは、手続という用語は包括的な
意味で使用され、すなわち、特定の場合、手続、関数、
及びサブルーチンと呼ばれるプログラム・セグメントを
ここでは手続と呼ぶことにする。
手続呼び出し規約は、プログラミング言語毎に異なる。
、幾つかのパラメータは、レジスタ中で、手続スタック
上で、あるいはレジスタまたはスタック位置に保持され
るポインタによって指し示されるメモリ・ブロック中で
渡すことができる。
上で、あるいはレジスタまたはスタック位置に保持され
るポインタによって指し示されるメモリ・ブロック中で
渡すことができる。
言語が異なると手続呼び出し規約も異なるので、手続呼
び出しは、もともと同一の言語で書かれた手続、または
同一の呼び出し規約を使用する別の言語で書かれた手続
に対してなされなくてはならない。もし、もともと別の
言語で書かれた手続に対して呼び出しを行うことが要望
され、もとの言語の識別子が既知である時は、呼び出し
を、そのような手続で正確に機能するように再構成する
ために特殊な手続をとることができることもある。
び出しは、もともと同一の言語で書かれた手続、または
同一の呼び出し規約を使用する別の言語で書かれた手続
に対してなされなくてはならない。もし、もともと別の
言語で書かれた手続に対して呼び出しを行うことが要望
され、もとの言語の識別子が既知である時は、呼び出し
を、そのような手続で正確に機能するように再構成する
ために特殊な手続をとることができることもある。
この再構成は通常、アセンブリ言語レベルでの呼び出し
の変更を必要とする。
の変更を必要とする。
実質的にすべての大型及び中型システムを含む多くのコ
ンピュータ・システムにおいては、標準及び頻用機能に
ついて、手続の共通ライブラリが維持される。これらの
手続はアプリケーション・プログラムから呼び出され、
以てアプリケージ9ン・プログラマが共通機能を実行す
るためのコードを書いたりデバッグしたりしなくてもよ
いようにしている。システムの設計構造に応じて、ライ
ブラリ機能はリンク時にアプリケーション・プログラム
にリンクすることもできるし、もしオペレーティング・
システムによってサポートされているなら実行時に動的
にリンクしてもよい。
ンピュータ・システムにおいては、標準及び頻用機能に
ついて、手続の共通ライブラリが維持される。これらの
手続はアプリケーション・プログラムから呼び出され、
以てアプリケージ9ン・プログラマが共通機能を実行す
るためのコードを書いたりデバッグしたりしなくてもよ
いようにしている。システムの設計構造に応じて、ライ
ブラリ機能はリンク時にアプリケーション・プログラム
にリンクすることもできるし、もしオペレーティング・
システムによってサポートされているなら実行時に動的
にリンクしてもよい。
さて1手続ライブラリの使用に関して、上述の言語呼び
出し規約の問題がある。すなわち、ライブラリ手続は典
型的にはそのシステムによってサポートされるめいめい
の言語で書かれなくてはならず、よって、同一のライブ
ラリ機能を実行する゛ために複数の手続が存在すること
になる。代替策は、1つまたは限定された数の手続を単
一の特定の言語で書かせ、アプリケーション・プログラ
マに、興なる言語で書かれた手続を呼び出すために必要
なあらゆるステップを実行すること合要求することであ
る。
出し規約の問題がある。すなわち、ライブラリ手続は典
型的にはそのシステムによってサポートされるめいめい
の言語で書かれなくてはならず、よって、同一のライブ
ラリ機能を実行する゛ために複数の手続が存在すること
になる。代替策は、1つまたは限定された数の手続を単
一の特定の言語で書かせ、アプリケーション・プログラ
マに、興なる言語で書かれた手続を呼び出すために必要
なあらゆるステップを実行すること合要求することであ
る。
単一の共通機能を実行するために、システムに、興なる
言語で書かれた複数の手続を維持することを要求するこ
とは不十分である。アプリケーション・プログラマに、
異なる呼び出し規約を使用する手続を呼び出すために必
要なステ・ンプを請は負うことを強いるのは常に可能と
いう訳ではなく、たとえ可能であるヒしても明らかに望
ましくない。
言語で書かれた複数の手続を維持することを要求するこ
とは不十分である。アプリケーション・プログラマに、
異なる呼び出し規約を使用する手続を呼び出すために必
要なステ・ンプを請は負うことを強いるのは常に可能と
いう訳ではなく、たとえ可能であるヒしても明らかに望
ましくない。
それゆえに、もともと手続が言語で書かれた言語によっ
て使用される呼び出し規約に関係なくアプリケーション
・プログラムがライブラリ手続を呼び出し得るような能
力を提供することが望ましい。また、そのようなシステ
ムが、そのような手続を呼び出すアプリケーション・プ
ログラムに悪影響を及ぼすことなく、手続が書かれた言
語の変更を含むライブラリ手続の変更能力を提供するこ
とも望ましい。
て使用される呼び出し規約に関係なくアプリケーション
・プログラムがライブラリ手続を呼び出し得るような能
力を提供することが望ましい。また、そのようなシステ
ムが、そのような手続を呼び出すアプリケーション・プ
ログラムに悪影響を及ぼすことなく、手続が書かれた言
語の変更を含むライブラリ手続の変更能力を提供するこ
とも望ましい。
C0発明が解決しようとする課題
この発明の目的は、手続がもともと書かれた言語が使用
する呼び出し規約に関係なくプログラムが共通ライブラ
リを呼び出すことを可能ならしめるような、コンピュー
タ・システム・インターフェースを提供=することにあ
る。
する呼び出し規約に関係なくプログラムが共通ライブラ
リを呼び出すことを可能ならしめるような、コンピュー
タ・システム・インターフェースを提供=することにあ
る。
この発明の他の目的は、そのような手続を呼び出すアプ
リケージ9ン・プログラムに悪影響を及ぼすことなくラ
イブラリ・ルーチンに対して変更を加えることを可能な
らしめるコンピュータ・システム・インターフェースを
提供することにある。
リケージ9ン・プログラムに悪影響を及ぼすことなくラ
イブラリ・ルーチンに対して変更を加えることを可能な
らしめるコンピュータ・システム・インターフェースを
提供することにある。
この発明のさらに他の目的は、単一のライブラリ手続を
所望の機能のためシステム上で使用することを可能なら
しめるとともに、手続呼び出し規約の差異に関係なくそ
のような手続を任意の言語で書きなおすことを可能なら
しめることにある。
所望の機能のためシステム上で使用することを可能なら
しめるとともに、手続呼び出し規約の差異に関係なくそ
のような手続を任意の言語で書きなおすことを可能なら
しめることにある。
09課題を解決するための手段
本発明によれば、標準フォーマットを使用してアプリケ
ーション・プログラムによって呼び出されるシステム・
ソフトウェア・インターフェースが提供される。そして
、システム・ライブラリ・ルーチンに対する全ての呼び
出しはこのインターフェースを通じてなされる。呼び出
された時、このインターフェースは、所望のライブラリ
手続によって使用される位置及び呼び出し規約を決定す
る。インターフェースは次に、パラメータをセットアツ
プし、期待される呼び出し規約を使用してそのような手
続を呼び出す。インターフェースはライブラリ手続によ
って発生される何らかの結果を受取り、それらを呼び出
し側アプリケーション・プログラムによって使用される
戻り規約に変換し、その結果を呼び出し側アプリケーシ
リン・プログラムに戻す。
ーション・プログラムによって呼び出されるシステム・
ソフトウェア・インターフェースが提供される。そして
、システム・ライブラリ・ルーチンに対する全ての呼び
出しはこのインターフェースを通じてなされる。呼び出
された時、このインターフェースは、所望のライブラリ
手続によって使用される位置及び呼び出し規約を決定す
る。インターフェースは次に、パラメータをセットアツ
プし、期待される呼び出し規約を使用してそのような手
続を呼び出す。インターフェースはライブラリ手続によ
って発生される何らかの結果を受取り、それらを呼び出
し側アプリケーション・プログラムによって使用される
戻り規約に変換し、その結果を呼び出し側アプリケーシ
リン・プログラムに戻す。
E、実施例
ここで説明されるソフトウェア・システムは、はヒんビ
全ての汎用ディジタル・コンピュータに適合する。すな
わち、メインフレーム・コンピュータ、ミニコンピユー
タ、エンジニアリング・ワークステーション、及びデス
クトップ・パーソナル・コンピュータが以下で説明する
システムをサポートすることができる。そして、本発明
のシテスムを実現するためにはさまざまな既存の言語コ
ンパイラに、以下で説明するわずかな変更を加えるだけ
でよく、そのような変更は、この分野の熟練した当業者
の能力範囲である。
全ての汎用ディジタル・コンピュータに適合する。すな
わち、メインフレーム・コンピュータ、ミニコンピユー
タ、エンジニアリング・ワークステーション、及びデス
クトップ・パーソナル・コンピュータが以下で説明する
システムをサポートすることができる。そして、本発明
のシテスムを実現するためにはさまざまな既存の言語コ
ンパイラに、以下で説明するわずかな変更を加えるだけ
でよく、そのような変更は、この分野の熟練した当業者
の能力範囲である。
さて、第1図を参照すると、ライブラリ手続呼び出しを
処理するためのシステム10は、サービス・ディレクタ
12を含んでいる。サービス・ディレクタ12は、スタ
ブ(切り取り部分)手続14によって呼び出されるソフ
トウェア手続である。スタブ手続14は、アプリケーシ
ョン・プログラム16の一部である。
処理するためのシステム10は、サービス・ディレクタ
12を含んでいる。サービス・ディレクタ12は、スタ
ブ(切り取り部分)手続14によって呼び出されるソフ
トウェア手続である。スタブ手続14は、アプリケーシ
ョン・プログラム16の一部である。
サービス・ディレクタ12は、内部サービス18を決定
する複数の手続を含む。サービス・ディレクタ12はま
た、サービス・テーブル20を決定するデータ構造に対
するアクセスを有する。実行の間に、サービス・ディレ
クタ12は、ライブラリ・ルーチン22.24.26及
び28に対する手続呼び出しを行うことができる。
する複数の手続を含む。サービス・ディレクタ12はま
た、サービス・テーブル20を決定するデータ構造に対
するアクセスを有する。実行の間に、サービス・ディレ
クタ12は、ライブラリ・ルーチン22.24.26及
び28に対する手続呼び出しを行うことができる。
アプリケーション・プログラム16は、任意のユーザー
用途またはシステム機能を実行することができ、典型的
にはCまたはC0BOLなどの高レベル言語で書かれて
いる。アプリケーション・プログラム16は、アセンブ
リ言語で書くこともできるけれども、それは次第に減少
している。スタブ手続14は、実行時にアプリケーショ
ン・プログラム16にリンクされる小さい手続である。
用途またはシステム機能を実行することができ、典型的
にはCまたはC0BOLなどの高レベル言語で書かれて
いる。アプリケーション・プログラム16は、アセンブ
リ言語で書くこともできるけれども、それは次第に減少
している。スタブ手続14は、実行時にアプリケーショ
ン・プログラム16にリンクされる小さい手続である。
スタブ手続14は、アプリケーション・プログラム16
によって、格別の手続方法で呼び出される。すなわち、
スタブ手続14に渡されるパラメータは、システム・ラ
イブラリ手続またはサービスと、誰の実行が要望されて
いるかを記述する。スタブ手続14は、これらのパラメ
ータを、サービス・ディレクタ12に対して手続呼び出
しを行うために使用する。
によって、格別の手続方法で呼び出される。すなわち、
スタブ手続14に渡されるパラメータは、システム・ラ
イブラリ手続またはサービスと、誰の実行が要望されて
いるかを記述する。スタブ手続14は、これらのパラメ
ータを、サービス・ディレクタ12に対して手続呼び出
しを行うために使用する。
プログラミング言語が異なると手続呼び出し規約も異な
るので、サポートされる各プログラミソゲ言語毎にシス
テムによって異なるスタブ手続14が用意されなくては
ならない。しかし、単一のスタブ・プログラム14は全
ての所望のライブラリ・サービスのためにサービス・デ
ィレクタ12に対して全ての呼び出しを行う。
るので、サポートされる各プログラミソゲ言語毎にシス
テムによって異なるスタブ手続14が用意されなくては
ならない。しかし、単一のスタブ・プログラム14は全
ての所望のライブラリ・サービスのためにサービス・デ
ィレクタ12に対して全ての呼び出しを行う。
サービス・ディレクタ12は、ライブラリ手続が呼び出
される時アプリケーション・プログラム16によって使
用されるインターフェースである。サービス・ディレク
タ12は、呼び出された時、Iiされたパラメータを検
査して、どのライブラリ手続を呼び出すべきかを決定す
る。ある手続は好適にはサービス・ディレクタ12のコ
ードに直接台まれている。これらの手続は内部サービス
18または環境サービスと呼ばれる。これらの手続は典
型的には頻繁に実行され、あまり複雑でないものである
。システム性能の低下全防止するためには、これらの手
続18に対する効率的な呼び出しが好ましい。サービス
・ディレクタ12に対して内部サービス18として含め
ることができる典型的なシステム・サービスとして、プ
ログラム及び記憶管理、日付及びそれに類するシステム
・サービス、サービス・ディレクタ12自体の動伶に直
接向けられた初期化及び制御ルーチンがある。
される時アプリケーション・プログラム16によって使
用されるインターフェースである。サービス・ディレク
タ12は、呼び出された時、Iiされたパラメータを検
査して、どのライブラリ手続を呼び出すべきかを決定す
る。ある手続は好適にはサービス・ディレクタ12のコ
ードに直接台まれている。これらの手続は内部サービス
18または環境サービスと呼ばれる。これらの手続は典
型的には頻繁に実行され、あまり複雑でないものである
。システム性能の低下全防止するためには、これらの手
続18に対する効率的な呼び出しが好ましい。サービス
・ディレクタ12に対して内部サービス18として含め
ることができる典型的なシステム・サービスとして、プ
ログラム及び記憶管理、日付及びそれに類するシステム
・サービス、サービス・ディレクタ12自体の動伶に直
接向けられた初期化及び制御ルーチンがある。
アプリケージ9ン・プログラム16がスタブ14を通じ
てサービス・ディレクタ12を呼び出す時、実行される
べき手続は、それに渡されるパラメータによって識別さ
れる。所望のパラメータが一旦識別されると、サービス
・ディレクタ12は、その手続がシステムのどこに記憶
されており、何のパラメータが必要であり、その手続が
もともと書かれた言語が何であるかを決定しなくてはな
らない。その手続がもともと書かれた言語は、所望のラ
イブラリ手続が呼び出される時に使用しなくてはならな
い手続呼び出し規約を示す。
てサービス・ディレクタ12を呼び出す時、実行される
べき手続は、それに渡されるパラメータによって識別さ
れる。所望のパラメータが一旦識別されると、サービス
・ディレクタ12は、その手続がシステムのどこに記憶
されており、何のパラメータが必要であり、その手続が
もともと書かれた言語が何であるかを決定しなくてはな
らない。その手続がもともと書かれた言語は、所望のラ
イブラリ手続が呼び出される時に使用しなくてはならな
い手続呼び出し規約を示す。
サービス・ディレクタ12はこの情報をサービス・テー
ブル20から見出す。サービス・テーブル20は、シス
テム・ライブラリ手続の名前から上述の情報に対するマ
ツピングを与えるデータ構造であり、よく知られている
いくつかのデータ構造のうちの1つで実現することがで
きる。
ブル20から見出す。サービス・テーブル20は、シス
テム・ライブラリ手続の名前から上述の情報に対するマ
ツピングを与えるデータ構造であり、よく知られている
いくつかのデータ構造のうちの1つで実現することがで
きる。
サービス・ディレクタ12が一旦呼び出すべきライブラ
リ手続を識別すると、サービス・ディレクタ12は、そ
の手続によって期待される呼び出し規約に適切であるよ
うに渡すべきパラメータを配列し、その手続を呼び出す
。その手続から戻される結果は、サービス・ディレクタ
12に渡される。もし必要なら、サービス・ディレクタ
12はこの結果を再フォ−マツトし、それをスタブ手続
14に戻す。
リ手続を識別すると、サービス・ディレクタ12は、そ
の手続によって期待される呼び出し規約に適切であるよ
うに渡すべきパラメータを配列し、その手続を呼び出す
。その手続から戻される結果は、サービス・ディレクタ
12に渡される。もし必要なら、サービス・ディレクタ
12はこの結果を再フォ−マツトし、それをスタブ手続
14に戻す。
多くの例では、アプリケージシン・プログラム16及び
呼び出されるライブラリ手続は同一の言語で書かれてお
り、よって必要な手続呼び出しを行う際に困難に逢着す
ることは殆どない。そうでない場合、1つの言語の実現
プログラムがパラメータを渡してそれをレジスタで返し
、一方別の言語の実現プログラムがスタックを使用する
、ということがある。サービス・ディレクタ12は、1
つの呼び出し規約と別の呼び出し規約の間で変換を行う
ために何が必要であるか壱「知って」おり、かなり簡単
な方法でこれらの変換を行うのである。例えば、データ
及びポインタが、レジスタからスタックへ移動される、
及びその逆等である。
呼び出されるライブラリ手続は同一の言語で書かれてお
り、よって必要な手続呼び出しを行う際に困難に逢着す
ることは殆どない。そうでない場合、1つの言語の実現
プログラムがパラメータを渡してそれをレジスタで返し
、一方別の言語の実現プログラムがスタックを使用する
、ということがある。サービス・ディレクタ12は、1
つの呼び出し規約と別の呼び出し規約の間で変換を行う
ために何が必要であるか壱「知って」おり、かなり簡単
な方法でこれらの変換を行うのである。例えば、データ
及びポインタが、レジスタからスタックへ移動される、
及びその逆等である。
好適な実施例では、アプリケーション・プログラムは、
システム・ライブラリ手続呼び出しの前にサービス・デ
ィレクタ12に対して初期化呼び出しを行わなくてはな
らない。この呼び出しはそのアプリケーション・プログ
ラムを識別するパラメータを渡し、サービス・ディレク
タ12が適切なサービス・テーブル20を見付けだすこ
とを可能ならしめる。異なるアプリケーション・プログ
ラムが興なるサービス・テーブルの組を使用することが
あり得る。この呼び出しは、第2図に関連して後述する
機能をもつ共通制御ブロックに対するポインタをも与え
る。
システム・ライブラリ手続呼び出しの前にサービス・デ
ィレクタ12に対して初期化呼び出しを行わなくてはな
らない。この呼び出しはそのアプリケーション・プログ
ラムを識別するパラメータを渡し、サービス・ディレク
タ12が適切なサービス・テーブル20を見付けだすこ
とを可能ならしめる。異なるアプリケーション・プログ
ラムが興なるサービス・テーブルの組を使用することが
あり得る。この呼び出しは、第2図に関連して後述する
機能をもつ共通制御ブロックに対するポインタをも与え
る。
また、ライブラリ手続に対する全ての呼び出しが完了し
た後、アプリケーション・プログラム16がサービス・
ディレクタ12に対して終了呼び出しを行うことが望ま
しい。これにより、サービス・ディレクタ12が割当て
られたメモリを解放し、アプリケージジン・プログラム
16の後始末を行うことが可能となる。
た後、アプリケーション・プログラム16がサービス・
ディレクタ12に対して終了呼び出しを行うことが望ま
しい。これにより、サービス・ディレクタ12が割当て
られたメモリを解放し、アプリケージジン・プログラム
16の後始末を行うことが可能となる。
第2図は、ライブラリ手続を呼び出すためにアプリケー
ション・プログラム16内で使用するための典型的なコ
マンドを表すものである。コマンド・ライン40が、ス
タブ手続名42をもつスタブ手続14に対する呼び出し
である。FORTRANなどの幾つかの言語では、CA
LLという単語が、スタブ手続14を呼び出すステート
メントの一部として実際に現れる。他の多くの言語では
、スタブ手続14は、単にその名前42を使用すること
により呼び出される。
ション・プログラム16内で使用するための典型的なコ
マンドを表すものである。コマンド・ライン40が、ス
タブ手続名42をもつスタブ手続14に対する呼び出し
である。FORTRANなどの幾つかの言語では、CA
LLという単語が、スタブ手続14を呼び出すステート
メントの一部として実際に現れる。他の多くの言語では
、スタブ手続14は、単にその名前42を使用すること
により呼び出される。
スタブ手続名42は好適には比較的任意であり、従って
記述的な手続名の使用と混同しないようになされる。シ
ステム・リンカがスタブ14中でアプリケーション・プ
ログラム16の言語に適切にリンクを行うことができる
ようにするために、スタブ手続名42はどの言語が使用
されているかを示す。第2図には、′°−°′が示され
ているか、この°°−゛は、好適には使用されている言
語を示す1つまたはそれ以上のキャラクタで置き換えら
れる。例えば、これらのキャラクタは、C言言吾の場合
”C”であり、C0BOLの場合”CBL”であり、ア
センブラの場合”ASM”である。代替的には、全ての
言語に対して同一のスタブ言語名を使用し、各コンパイ
ラが、アプリケーション・プログラム1Gをコンパイル
する時に作成するオブジェクト・ファイル中に必要な外
部リンク情報杏配置することによって適切なスタブ手続
14を識別するようにしてもよい。
記述的な手続名の使用と混同しないようになされる。シ
ステム・リンカがスタブ14中でアプリケーション・プ
ログラム16の言語に適切にリンクを行うことができる
ようにするために、スタブ手続名42はどの言語が使用
されているかを示す。第2図には、′°−°′が示され
ているか、この°°−゛は、好適には使用されている言
語を示す1つまたはそれ以上のキャラクタで置き換えら
れる。例えば、これらのキャラクタは、C言言吾の場合
”C”であり、C0BOLの場合”CBL”であり、ア
センブラの場合”ASM”である。代替的には、全ての
言語に対して同一のスタブ言語名を使用し、各コンパイ
ラが、アプリケーション・プログラム1Gをコンパイル
する時に作成するオブジェクト・ファイル中に必要な外
部リンク情報杏配置することによって適切なスタブ手続
14を識別するようにしてもよい。
スタブ手続14に渡される第1のパラメータは、サービ
ス・パラメータ44であり、これはサービス名ブロック
46と呼ばれるデータ構造に対するポインタである。渡
すべき第2のパラメータは、共通ブロック識別子48で
あり、これは共通ブロックに対するポインタを含む。第
3のパラメータは手続ブロック54に対するポインタで
あり、追加的なパラメータは個別のパラメータ・ブロッ
クに対するポインタである。
ス・パラメータ44であり、これはサービス名ブロック
46と呼ばれるデータ構造に対するポインタである。渡
すべき第2のパラメータは、共通ブロック識別子48で
あり、これは共通ブロックに対するポインタを含む。第
3のパラメータは手続ブロック54に対するポインタで
あり、追加的なパラメータは個別のパラメータ・ブロッ
クに対するポインタである。
カギ括弧で示されているパラメータ52及び56は、場
合によってはオプションである。すなわち、日付などの
内部サービス呼び出しは、実施例によってはパラメータ
44及び48しか必要としない。
合によってはオプションである。すなわち、日付などの
内部サービス呼び出しは、実施例によってはパラメータ
44及び48しか必要としない。
サービス・パラメータ44は、サービス名ブロック46
を指し示す。サービス名ブロック46は、複数の異なる
情報項目を含むメモリの割り振られたブロックである。
を指し示す。サービス名ブロック46は、複数の異なる
情報項目を含むメモリの割り振られたブロックである。
プロ・yり46に示されている数は、そのフィールドが
占有するバイト数である。好適な実施例では、サービス
名ブロック46中の第1のフィールドは、サービス名ブ
ロック46の全バイト数を示す長さフィールドである。
占有するバイト数である。好適な実施例では、サービス
名ブロック46中の第1のフィールドは、サービス名ブ
ロック46の全バイト数を示す長さフィールドである。
次のフィールドは、サービスの名前である名前フィール
ドである。パラメータ数フィールドは、呼び出されるフ
ィールドに渡されるべきパラメータの数を示す。この数
は、手続パラメータ52が渡されているか、ということ
と、いくつのパラメータ項目が渡されているか、という
ことを決定するために使用される。
ドである。パラメータ数フィールドは、呼び出されるフ
ィールドに渡されるべきパラメータの数を示す。この数
は、手続パラメータ52が渡されているか、ということ
と、いくつのパラメータ項目が渡されているか、という
ことを決定するために使用される。
フラグ・フィールドは、スタブ手続14からサービス・
ディレクタ12へ情報を渡すために使用される。渡され
る典型的な情報の1つとして呼び出し側言語の識別子が
ある。さまざまな言語のための全てのスタブ手続14は
、同一のエントリ点でサービス・ディレクタ12を呼び
出し、サービス名ブロック中のフラグ・フィールドは、
サービス・ディレクタ12に、どの呼び出し規約が使用
されているかを指示する。
ディレクタ12へ情報を渡すために使用される。渡され
る典型的な情報の1つとして呼び出し側言語の識別子が
ある。さまざまな言語のための全てのスタブ手続14は
、同一のエントリ点でサービス・ディレクタ12を呼び
出し、サービス名ブロック中のフラグ・フィールドは、
サービス・ディレクタ12に、どの呼び出し規約が使用
されているかを指示する。
インデックス・フィールドは、特定のサービスについて
の情報の位置をより迅速に識別するために使用される。
の情報の位置をより迅速に識別するために使用される。
サービスが呼び出される最初の時点では、サービス・デ
ィレクタ12は、名前フィールドをテーブル20中で画
用であるさまざまな名前に対して突き合わせるt二めに
、サービス・テーブル20の全体を検索しなくてはなら
ない。
ィレクタ12は、名前フィールドをテーブル20中で画
用であるさまざまな名前に対して突き合わせるt二めに
、サービス・テーブル20の全体を検索しなくてはなら
ない。
そうしてこの突き合わせが行なわれると、サービス・デ
ィレクタ12はそのテーブル20中のエントリのアドレ
スをインデックス・フィールド中に配置する。このサー
ビスのさまざまな機能が将来呼び出される時、このアド
レスはサービス・テーブル20中の適切なエントリにア
クセスするために使用される。
ィレクタ12はそのテーブル20中のエントリのアドレ
スをインデックス・フィールド中に配置する。このサー
ビスのさまざまな機能が将来呼び出される時、このアド
レスはサービス・テーブル20中の適切なエントリにア
クセスするために使用される。
共通ブロック50は、サービス・ディレクタ12によっ
て、アプリケーション・プログラム1Gに状況及び他の
情報を戻すために使用される。長さフィールドは、共通
ブロック50のサイズを示す。戻りコード・フィールド
は、アプリケーション・プログラム16に状況コードを
戻すために使用される。好適な実施例の規約によれば、
戻りコードの正の値は単に呼び出されたライブラリ手続
によって発生された戻りコードを通過するだけである。
て、アプリケーション・プログラム1Gに状況及び他の
情報を戻すために使用される。長さフィールドは、共通
ブロック50のサイズを示す。戻りコード・フィールド
は、アプリケーション・プログラム16に状況コードを
戻すために使用される。好適な実施例の規約によれば、
戻りコードの正の値は単に呼び出されたライブラリ手続
によって発生された戻りコードを通過するだけである。
さらに規約によれば、戻りコードの負の値は、サービス
・ディレクタ12によって、その責任範囲内での障害を
示すために使用される。そのような障害としては、例え
ば、所望のライブラリ手続を見付けることができなかっ
た、ということがある。拡張コード・フィールドは、エ
ラー・コードを返すための追加的な能力を与える。
・ディレクタ12によって、その責任範囲内での障害を
示すために使用される。そのような障害としては、例え
ば、所望のライブラリ手続を見付けることができなかっ
た、ということがある。拡張コード・フィールドは、エ
ラー・コードを返すための追加的な能力を与える。
追加要素フィールドは、オプションであって、アプリケ
ーション・プログラム16にデータを戻すべく、データ
またはポインタを転送するために使用される。
ーション・プログラム16にデータを戻すべく、データ
またはポインタを転送するために使用される。
長さフィールド以外に、手続ブロック54は機能コード
・フィールドを有する。このフィールドは、サービスの
との機能が望まれているかを示す数である。
・フィールドを有する。このフィールドは、サービスの
との機能が望まれているかを示す数である。
好適な実施例では、関連機能がグループとして集められ
ていることが予想され、このグループはサービスと呼ば
れる。これらの手続のうちの1つにアクセスするために
は、そのサービスに全体として適用される名前が必要で
あり、それはサービス名ブロックに見出され、そのサー
ビス内のどの手続が要求されているかの表示は手続ブロ
ック54に見出される。例えば、行列演算を実行するた
めのルーチンのグループは単一のサービスによって識別
することができ、そのとき手続ブロック54は、行列式
、行列掛算、逆行列、その他の行列演算のうちどれが要
求されているかを示す。
ていることが予想され、このグループはサービスと呼ば
れる。これらの手続のうちの1つにアクセスするために
は、そのサービスに全体として適用される名前が必要で
あり、それはサービス名ブロックに見出され、そのサー
ビス内のどの手続が要求されているかの表示は手続ブロ
ック54に見出される。例えば、行列演算を実行するた
めのルーチンのグループは単一のサービスによって識別
することができ、そのとき手続ブロック54は、行列式
、行列掛算、逆行列、その他の行列演算のうちどれが要
求されているかを示す。
各パラメータ・ブロック58は、1つのパラメータを要
求されたライブラリ手続に伝達するために使用される。
求されたライブラリ手続に伝達するために使用される。
パラメータ・プロ・ンク58中のサービス・データ・フ
ィールドは、直接データを含むか、データに対するポイ
ンタを含む。各パラメータ・ブロック58中に含まれる
データのタイプは、めいめいの個別のライブラリ手続が
何を期待するかに依存し、その特定のライブラリ手続の
ために文書中に記載されることになる。
ィールドは、直接データを含むか、データに対するポイ
ンタを含む。各パラメータ・ブロック58中に含まれる
データのタイプは、めいめいの個別のライブラリ手続が
何を期待するかに依存し、その特定のライブラリ手続の
ために文書中に記載されることになる。
第3図は、アプリケーション・プログラム16によるラ
イブラリ手続の呼び出しの間に生じるステップを示すフ
ローチャートである。第3図のフローチャートは、サー
ビス・ディレクタ12に対して行う必要がある初期化呼
び出しは既に行なわれているものと想定する。第3図は
、ライブラリ手続に対する単一の呼び出しの間に生じる
事象の列のみを表している。
イブラリ手続の呼び出しの間に生じるステップを示すフ
ローチャートである。第3図のフローチャートは、サー
ビス・ディレクタ12に対して行う必要がある初期化呼
び出しは既に行なわれているものと想定する。第3図は
、ライブラリ手続に対する単一の呼び出しの間に生じる
事象の列のみを表している。
最初に、アプリケーション・プログラム16は、ステッ
プ70でスタブ手続14を呼び出し、それにパラメータ
を渡す。これらのパラメータは、第2図に関連して説明
したように、好適には少なくとも1つのサービスと共通
ブロックを識別し、オプションとしてもし必要なら手続
識別子及びパラメータを識別する。スタブ手続は、次に
ステップ72で呼び出し言語フラグ72をセットする。
プ70でスタブ手続14を呼び出し、それにパラメータ
を渡す。これらのパラメータは、第2図に関連して説明
したように、好適には少なくとも1つのサービスと共通
ブロックを識別し、オプションとしてもし必要なら手続
識別子及びパラメータを識別する。スタブ手続は、次に
ステップ72で呼び出し言語フラグ72をセットする。
このフラグは、サービス・ディレクタ12に対して、ア
プリケーション・プログラム16の言語を示し、以てア
プリケーション・プログラム16及びスタブ手続14に
よってとの呼び出し規約が使用されるかを示唆するもの
である。
プリケーション・プログラム16の言語を示し、以てア
プリケーション・プログラム16及びスタブ手続14に
よってとの呼び出し規約が使用されるかを示唆するもの
である。
スタブ手続14は次にステップ74でサービス・ディレ
クタ12を呼び出し、サービス・ディレクタ12はその
要求が、内部サービスのためのものかどうかを決定する
。もし要求された手続がサービス・ディレクタ12にと
って内部でないなら、サービス・ディレクタ12は、ス
テップ78で、サービス・テーブル中で所望の手続を見
付ける。上述のように、サービス・テーブル・エントリ
は、サービス・ディレクタ12が要求されたライブラリ
手続を適正に呼び出すために必要な情報を示すものであ
る。
クタ12を呼び出し、サービス・ディレクタ12はその
要求が、内部サービスのためのものかどうかを決定する
。もし要求された手続がサービス・ディレクタ12にと
って内部でないなら、サービス・ディレクタ12は、ス
テップ78で、サービス・テーブル中で所望の手続を見
付ける。上述のように、サービス・テーブル・エントリ
は、サービス・ディレクタ12が要求されたライブラリ
手続を適正に呼び出すために必要な情報を示すものであ
る。
サービス・ディレクタ12は次に、ステップ80でライ
ブラリ手続を呼び出すためのパラメータをセットアツプ
し、ステップ82でライブラリ手続を呼び出す。サービ
ス手続はステップ84で通常の方法で実行され、ステッ
プ86でサービス・ディレクタ12に対して発生した何
らかの結果を戻す。
ブラリ手続を呼び出すためのパラメータをセットアツプ
し、ステップ82でライブラリ手続を呼び出す。サービ
ス手続はステップ84で通常の方法で実行され、ステッ
プ86でサービス・ディレクタ12に対して発生した何
らかの結果を戻す。
サービス・ディレクタ12は、ステップ72でセットさ
れたフラグによつて示されるようにアプリケ−シロン・
プログラム1Gの呼び出し規約を一致させるべく、ステ
ップ88でその戻りパラメータをセットアツプする。そ
の結果は次に、ステ・シブ90でスタブ手続14に戻さ
れ、スタブ手続14はその結果を、ステップ92でアプ
リケーション・プログラムに戻す。
れたフラグによつて示されるようにアプリケ−シロン・
プログラム1Gの呼び出し規約を一致させるべく、ステ
ップ88でその戻りパラメータをセットアツプする。そ
の結果は次に、ステ・シブ90でスタブ手続14に戻さ
れ、スタブ手続14はその結果を、ステップ92でアプ
リケーション・プログラムに戻す。
ステップ76で、もしサービス・ディレクタ12が、内
部サービスが要求されていることを検出したなら、サー
ビス・ディレクタ12は、ステップ94でそのような内
部手続を実行してステップ90に行く。サービス・ディ
レクタ12はステップ72における呼び出し言語フラグ
・セットのため、アプリケーション・プログラム1Gに
よって使用されるパラメータ引き渡し機構を理解してい
るので、必要な変換を直接扱うことができる。
部サービスが要求されていることを検出したなら、サー
ビス・ディレクタ12は、ステップ94でそのような内
部手続を実行してステップ90に行く。サービス・ディ
レクタ12はステップ72における呼び出し言語フラグ
・セットのため、アプリケーション・プログラム1Gに
よって使用されるパラメータ引き渡し機構を理解してい
るので、必要な変換を直接扱うことができる。
F1発明の効果
上述のシステム及び方法は、システム・ライブラリ・プ
ログラムを異なるプログラミング言語で書くことを可能
ならしめるものである。もしある特定のプログラミング
言語が、ある特定の所望のライブラリ手続を書くために
適切であるなら、そのプログラミング言語を使用するこ
とができる。
ログラムを異なるプログラミング言語で書くことを可能
ならしめるものである。もしある特定のプログラミング
言語が、ある特定の所望のライブラリ手続を書くために
適切であるなら、そのプログラミング言語を使用するこ
とができる。
そして、所与の機能を実行するために単一のライブラリ
手続しか必要でなく、以てシステム・ライブラリ手続の
保守性を著しく改善するのである。
手続しか必要でなく、以てシステム・ライブラリ手続の
保守性を著しく改善するのである。
もし特定の手続が追加または削除され、あるいはある手
続が異なる手続規約を使用するプログラミング言語を使
用して書き直されても、そのような更新情報は単にサー
ビス・テーブルに反映されるだけである。このことは、
サービス・ディレクタ自体は修正する必要がなく、ライ
ブラリ手続の変更に必要な修正はサービス・テーブルに
対するものだけであることを意味する。この変更は、直
接テーブル変更を行うプログラムの使用を通してサービ
ス・テーブルを更新することによって容易に行うことが
できる。
続が異なる手続規約を使用するプログラミング言語を使
用して書き直されても、そのような更新情報は単にサー
ビス・テーブルに反映されるだけである。このことは、
サービス・ディレクタ自体は修正する必要がなく、ライ
ブラリ手続の変更に必要な修正はサービス・テーブルに
対するものだけであることを意味する。この変更は、直
接テーブル変更を行うプログラムの使用を通してサービ
ス・テーブルを更新することによって容易に行うことが
できる。
ライブラリ手続は動的にリンクされるので、実行可能な
アプリケーション・プログラムは小さいままである。さ
らに、特定の手続に対するリンクは直接アプリケーショ
ン・プログラム中に維持されないので、アプリケーショ
ン・プログラムは常にライブラリ手続の最新バージョン
を呼び出す。
アプリケーション・プログラムは小さいままである。さ
らに、特定の手続に対するリンクは直接アプリケーショ
ン・プログラム中に維持されないので、アプリケーショ
ン・プログラムは常にライブラリ手続の最新バージョン
を呼び出す。
サービス・ディレクタはシステム内の既知の位置に置か
れ、サービス呼び出しを行う必要がある全てのアプリケ
ージ甘ン・プログラムに利用可能である。それゆえ、ア
プリケーション・プログラムに悪影響を及ぼすことなく
サービス・ディレクタに変更を行うことも可能である。
れ、サービス呼び出しを行う必要がある全てのアプリケ
ージ甘ン・プログラムに利用可能である。それゆえ、ア
プリケーション・プログラムに悪影響を及ぼすことなく
サービス・ディレクタに変更を行うことも可能である。
ライブラリ手続の動年に課せられる制約は、システム及
びデータの完全性を保証するために必要な典型的なもの
ばかりである。ライブラリ手続は、浮動小数点ライブラ
リやデータベース・サーバなどの、共通に使用される単
純なブロックでよく、あるいはより複雑なものでもよい
。ライブラリ手続は入出力を実行することができ、アプ
リケーション・プログラムのユーザーと直接インターフ
ェースすることもできる。ライブラリ手続は他のライブ
ラリ手続、または他のプログラムあるいはシステムを呼
び出すこともできる。他のライブラリ手続の呼び出しは
、直接行ってもよいし、アプリケーション・プログラム
が行うようにサービス・ディレクタを通してでもよい。
びデータの完全性を保証するために必要な典型的なもの
ばかりである。ライブラリ手続は、浮動小数点ライブラ
リやデータベース・サーバなどの、共通に使用される単
純なブロックでよく、あるいはより複雑なものでもよい
。ライブラリ手続は入出力を実行することができ、アプ
リケーション・プログラムのユーザーと直接インターフ
ェースすることもできる。ライブラリ手続は他のライブ
ラリ手続、または他のプログラムあるいはシステムを呼
び出すこともできる。他のライブラリ手続の呼び出しは
、直接行ってもよいし、アプリケーション・プログラム
が行うようにサービス・ディレクタを通してでもよい。
ライブラリ手続は、リアルタイム・データ収集及び制御
などの目的のために、ハードウェアを直接操俸するため
に使用することもできる。
などの目的のために、ハードウェアを直接操俸するため
に使用することもできる。
第1図は、本発明に従いライブラリ手続を呼び出すため
のシステムのブロック図、 第2図は、弓イブラリ・ルーチンを呼び出すためのフォ
ーマット壱示す図、 第3図は、ライブラリ手続を呼び出すために行なわれる
ステップのフローチャートを示す図である。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 代理人 頓 宮 孝 − (他1名)
のシステムのブロック図、 第2図は、弓イブラリ・ルーチンを呼び出すためのフォ
ーマット壱示す図、 第3図は、ライブラリ手続を呼び出すために行なわれる
ステップのフローチャートを示す図である。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 代理人 頓 宮 孝 − (他1名)
Claims (2)
- (1)ディジタル・コンピュータにおいて手続を呼び出
すためのシステムであって、 (a)アプリケーション・プログラムによって呼び出し
可能であり、アプリケーション・プログラムから手続識
別子とパラメータとを受け取る能力をもつインターフェ
ース手段と、 (b)上記インターフェース手段によって呼び出し可能
な複数の手続とを有し、 (c)上記手続識別子に対応する手続が上記パラメータ
を使用して上記インターフェース手段によって呼び出さ
れ、 (d)上記呼び出された手続は上記インターフェース手
段に結果を返し、 (e)上記インターフェース手段は上記アプリケーショ
ン・プログラムに結果を返すことを特徴とする、 ディジタル・コンピュータ・システム。 - (2)コンピュータ・システムにおいて手続を呼び出す
ための方法であって、 (a)アプリケーション・プログラムから第1の呼び出
し規約を使用してインターフェース手段を呼び出し、呼
び出される手続識別子とパラメータを該インターフェー
ス手段に渡す段階と、 (b)上記インターフェース手段から第2の呼び出し規
約を使用して上記手続を呼び出し、上記パラメータを該
呼び出された手続に渡す段階を有する、 手続呼び出し方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/320,086 US5146593A (en) | 1989-03-06 | 1989-03-06 | Procedure call interface |
US320086 | 1989-03-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02272627A true JPH02272627A (ja) | 1990-11-07 |
Family
ID=23244821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2052890A Pending JPH02272627A (ja) | 1989-03-06 | 1990-03-06 | デイジタル・コンピユータ・システムとその手続呼び出し方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5146593A (ja) |
EP (1) | EP0387172A3 (ja) |
JP (1) | JPH02272627A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05505274A (ja) * | 1991-03-07 | 1993-08-05 | ディジタル イクイップメント コーポレイション | 2個の非類似プログラムユニット間の呼出規格を自動的にインターフェイスさせるシステム及び方法 |
JPH05224931A (ja) * | 1991-09-06 | 1993-09-03 | Internatl Business Mach Corp <Ibm> | 実行時プログラム条件を表現し、信号で通知する方法及びシステム |
US7472261B2 (en) | 2005-11-08 | 2008-12-30 | International Business Machines Corporation | Method for performing externally assisted calls in a heterogeneous processing complex |
US7934063B2 (en) | 2007-03-29 | 2011-04-26 | International Business Machines Corporation | Invoking externally assisted calls from an isolated environment |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5404519A (en) * | 1989-10-11 | 1995-04-04 | Texas Instruments Incorporated | System for extending software calls to functions on another processor by means of a communications buffer |
JP2991242B2 (ja) * | 1989-10-12 | 1999-12-20 | テキサス インスツルメンツ インコーポレーテッド | マルチプロセッサコンピュータシステム使用方法 |
JP2753500B2 (ja) * | 1991-03-07 | 1998-05-20 | ディジタル インイプメント コーポレイション | 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法 |
MX9200935A (es) * | 1991-03-07 | 1993-03-01 | Digital Equipment Corp | Sistema y metodo para detectar llamadas de instruccion de dominio cruzado en un sistema de computadora |
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 |
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 |
JP3270102B2 (ja) * | 1991-03-11 | 2002-04-02 | ヒューレット・パッカード・カンパニー | ライセンス付与方法及びシステム |
JPH05233326A (ja) * | 1991-12-19 | 1993-09-10 | Internatl Business Mach Corp <Ibm> | コンピュータシステムにおいて事象を取り扱う方法及びシステム |
DE69329577T2 (de) * | 1992-07-01 | 2001-05-31 | Ericsson Telefon Ab L M | Verfahren und system für implementierung-unabhängige schnittstellenspezifikation |
US6209040B1 (en) | 1992-10-09 | 2001-03-27 | Microsoft Corporation | Method and system for interfacing to a type library |
US5452456A (en) * | 1992-12-18 | 1995-09-19 | Apple Computer, Inc. | Apparatus for executing a plurality of program segments having different object code types in a single program or processor environment |
US5487158A (en) * | 1993-04-06 | 1996-01-23 | International Business Machines Corporation | Method and procedure call mechanism for calling 16-bit functions from 32-bit functions |
CA2093451C (en) * | 1993-04-06 | 2000-03-14 | David M. Mooney | Method and mechanism for calling 32-bit functions from 16-bit functions |
CA2123924A1 (en) * | 1993-06-02 | 1994-12-03 | Charles Douglas Blewett | Specifying contexts in callback style programming |
US5493671A (en) * | 1993-06-04 | 1996-02-20 | Marcam Corporation | Method and apparatus for conversion of database data into a different format on a field by field basis using a table of conversion procedures |
US5572709A (en) * | 1993-06-18 | 1996-11-05 | Lucent Technologies Inc. | Using dynamically-linked libraries to add side effects to operations |
US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
US5581769A (en) * | 1993-12-29 | 1996-12-03 | International Business Machines Corporation | Multipurpose program object linkage protocol for upward compatibility among different compilers |
US6199200B1 (en) * | 1994-04-15 | 2001-03-06 | International Business Machines Corporation | Method and system for supporting dual conventions for methods that return structures |
US5745649A (en) * | 1994-07-07 | 1998-04-28 | Nynex Science & Technology Corporation | Automated speech recognition using a plurality of different multilayer perception structures to model a plurality of distinct phoneme categories |
US5732270A (en) * | 1994-09-15 | 1998-03-24 | Visual Edge Software Limited | System and method for providing interoperability among heterogeneous object systems |
US6083282A (en) * | 1994-10-21 | 2000-07-04 | Microsoft Corporation | Cross-project namespace compiler and method |
US5978914A (en) * | 1995-01-23 | 1999-11-02 | Tandem Computers Incorporated | Method and apparatus for preventing inadvertent changes to system-critical files in a computing system |
US6016516A (en) * | 1996-08-07 | 2000-01-18 | Fuji Xerox Co. Ltd. | Remote procedure processing device used by at least two linked computer systems |
US6192419B1 (en) * | 1997-06-18 | 2001-02-20 | International Business Machines Corporation | Collaborative framework for disparate application programs |
US6378001B1 (en) * | 1997-06-18 | 2002-04-23 | International Business Machines Corp. | Collaborative framework with shared objects |
US6898792B1 (en) * | 1998-02-18 | 2005-05-24 | Iona Technologies, Plc | Foreign object definition information repository |
US6341338B1 (en) * | 1999-02-04 | 2002-01-22 | Sun Microsystems, Inc. | Protocol for coordinating the distribution of shared memory |
US7035989B1 (en) | 2000-02-16 | 2006-04-25 | Sun Microsystems, Inc. | Adaptive memory allocation |
US9710242B1 (en) * | 2000-03-03 | 2017-07-18 | The Mathworks, Inc. | Method selection in an external language based on output parameters |
US6802057B1 (en) | 2000-05-03 | 2004-10-05 | Sun Microsystems, Inc. | Automatic generation of fortran 90 interfaces to fortran 77 code |
US6647546B1 (en) * | 2000-05-03 | 2003-11-11 | Sun Microsystems, Inc. | Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code |
US6874148B1 (en) * | 2000-06-14 | 2005-03-29 | National Instruments Corporation | System and method for exporting a graphical program to a shared library |
US6986130B1 (en) | 2000-07-28 | 2006-01-10 | Sun Microsystems, Inc. | Methods and apparatus for compiling computer programs using partial function inlining |
US6910107B1 (en) | 2000-08-23 | 2005-06-21 | Sun Microsystems, Inc. | Method and apparatus for invalidation of data in computer systems |
US7406681B1 (en) | 2000-10-12 | 2008-07-29 | Sun Microsystems, Inc. | Automatic conversion of source code from 32-bit to 64-bit |
US6957208B1 (en) | 2000-10-31 | 2005-10-18 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for performance analysis using semantic knowledge |
US20020180790A1 (en) * | 2001-05-31 | 2002-12-05 | International Business Machines Corporation | System and method for encapsulating software components in an application program interface using a proxy object |
US20020180793A1 (en) * | 2001-05-31 | 2002-12-05 | International Business Machines Corporation | Dynamic buffering of graphic images by a platform independent application program interface |
US7571389B2 (en) * | 2001-05-31 | 2009-08-04 | International Business Machines Corporation | System, computer-readable storage device, and method for combining the functionality of multiple text controls in a graphical user interface |
US6957391B2 (en) * | 2001-05-31 | 2005-10-18 | International Business Machines Corporation | Application program interface that can maintain similar look and feel of a displayed image regardless of whether the interface is platform dependent or platform independent |
US7562306B2 (en) * | 2001-05-31 | 2009-07-14 | International Business Machines Corporation | System and method for reducing memory use associated with the graphical representation of a list control |
US20020191018A1 (en) * | 2001-05-31 | 2002-12-19 | International Business Machines Corporation | System and method for implementing a graphical user interface across dissimilar platforms yet retaining similar look and feel |
US6993773B2 (en) | 2001-05-31 | 2006-01-31 | International Business Machines Corporation | System and method for introducing enhanced features into a java swing application program interface |
US7571388B2 (en) | 2001-05-31 | 2009-08-04 | International Business Machines Corporation | Computer-readable memory medium for fast drawing of text fields and labels using a Java swing application program interface |
US6918093B2 (en) * | 2001-05-31 | 2005-07-12 | International Business Machines Corp. | Inheritance of background color in a containment hierarchy of objects in a graphical user interface |
US7228551B2 (en) * | 2001-06-11 | 2007-06-05 | Microsoft Corporation | Web garden application pools having a plurality of user-mode web applications |
US7225362B2 (en) * | 2001-06-11 | 2007-05-29 | Microsoft Corporation | Ensuring the health and availability of web applications |
US7430738B1 (en) * | 2001-06-11 | 2008-09-30 | Microsoft Corporation | Methods and arrangements for routing server requests to worker processes based on URL |
US7594230B2 (en) | 2001-06-11 | 2009-09-22 | Microsoft Corporation | Web server architecture |
US7454746B2 (en) * | 2001-07-24 | 2008-11-18 | The Mathworks, Inc. | Function call translation |
US8473922B2 (en) * | 2001-09-19 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Runtime monitoring in component-based systems |
US7490137B2 (en) * | 2002-03-22 | 2009-02-10 | Microsoft Corporation | Vector-based sending of web content |
US7159025B2 (en) * | 2002-03-22 | 2007-01-02 | Microsoft Corporation | System for selectively caching content data in a server based on gathered information and type of memory in the server |
US6915384B2 (en) * | 2002-03-22 | 2005-07-05 | Microsoft Corporation | Multiple-level persisted template caching |
US6813751B2 (en) * | 2002-07-16 | 2004-11-02 | International Business Machines Corporation | Creating standard VHDL test environments |
US7353521B1 (en) | 2002-10-19 | 2008-04-01 | Borland Software Corporation | Object oriented distributed software system with methodology for piggybacked reflective callbacks |
US7421705B2 (en) * | 2003-10-30 | 2008-09-02 | Sprint Communications Company L.P. | System and method for asynchronous processing in COBOL |
US7386865B2 (en) * | 2004-06-24 | 2008-06-10 | Sap Ag | System and method for processing remote function calls |
US7418712B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support multiple-protocol processing within worker processes |
US7418719B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | Method and system to support a unified process model for handling messages sent in different protocols |
US7418709B2 (en) * | 2004-08-31 | 2008-08-26 | Microsoft Corporation | URL namespace to support multiple-protocol processing within worker processes |
US8762976B2 (en) * | 2007-03-09 | 2014-06-24 | Microsoft Corporation | Static extensibility models with dynamic languages and scripts |
FR2923037A1 (fr) * | 2007-10-26 | 2009-05-01 | France Telecom | Procede de realisation d'un appel de procedure et produit programme d'ordinateur correspondant. |
US8549093B2 (en) | 2008-09-23 | 2013-10-01 | Strategic Technology Partners, LLC | Updating a user session in a mach-derived system environment |
US20130007773A1 (en) * | 2011-06-28 | 2013-01-03 | Steven Scott Guilford | Systems, methods, apparatuses, and computer program products for facilitating integration of third party technology with a database |
US10452409B2 (en) * | 2015-10-23 | 2019-10-22 | Oracle International Corporation | Universal adapter for native calling |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5890248A (ja) * | 1981-11-25 | 1983-05-28 | Hitachi Ltd | プログラム間制御移動方式 |
JPS6386638A (ja) * | 1986-09-29 | 1988-04-18 | Nec Corp | 異機種コンピユ−タ対応型端末システム |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4205371A (en) * | 1975-11-03 | 1980-05-27 | Honeywell Information Systems Inc. | Data base conversion system |
US4455604A (en) * | 1981-05-22 | 1984-06-19 | Data General Corporation | Digital data processing system having addressing means for translating operands into descriptors identifying data, plural multilevel microcode control means, and ability to execute a plurality of internal language dialects |
US4862351A (en) * | 1983-09-01 | 1989-08-29 | Unisys Corporation | Method of executing called activities via depictor-linked low level language microcode, hardware logic, and high level language commands; and apparatus for same |
JPH0630066B2 (ja) * | 1983-10-24 | 1994-04-20 | 株式会社日立製作所 | テーブル型言語翻訳方法 |
US4736321A (en) * | 1986-05-05 | 1988-04-05 | International Business Machines Corporation | Communication method between an interactive language processor workspace and external processes |
-
1989
- 1989-03-06 US US07/320,086 patent/US5146593A/en not_active Expired - Lifetime
-
1990
- 1990-02-02 EP EP19900480012 patent/EP0387172A3/en not_active Withdrawn
- 1990-03-06 JP JP2052890A patent/JPH02272627A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5890248A (ja) * | 1981-11-25 | 1983-05-28 | Hitachi Ltd | プログラム間制御移動方式 |
JPS6386638A (ja) * | 1986-09-29 | 1988-04-18 | Nec Corp | 異機種コンピユ−タ対応型端末システム |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05505274A (ja) * | 1991-03-07 | 1993-08-05 | ディジタル イクイップメント コーポレイション | 2個の非類似プログラムユニット間の呼出規格を自動的にインターフェイスさせるシステム及び方法 |
JPH05224931A (ja) * | 1991-09-06 | 1993-09-03 | Internatl Business Mach Corp <Ibm> | 実行時プログラム条件を表現し、信号で通知する方法及びシステム |
US7472261B2 (en) | 2005-11-08 | 2008-12-30 | International Business Machines Corporation | Method for performing externally assisted calls in a heterogeneous processing complex |
US8195759B2 (en) | 2005-11-08 | 2012-06-05 | International Business Machines Corporation | Performing externally assisted calls in a heterogeneous processing complex |
US7934063B2 (en) | 2007-03-29 | 2011-04-26 | International Business Machines Corporation | Invoking externally assisted calls from an isolated environment |
Also Published As
Publication number | Publication date |
---|---|
EP0387172A2 (en) | 1990-09-12 |
US5146593A (en) | 1992-09-08 |
EP0387172A3 (en) | 1992-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02272627A (ja) | デイジタル・コンピユータ・システムとその手続呼び出し方法 | |
US6029207A (en) | Apparatus and method for dynamic linking of computer software components | |
US5339430A (en) | System for dynamic run-time binding of software modules in a computer system | |
US5790860A (en) | Method and apparatus for patching code residing on a read only memory device | |
US5946486A (en) | Apparatus and method for tracing entries to or exits from a dynamic link library | |
US6378127B1 (en) | Software installation and validation using custom actions | |
US6185728B1 (en) | Development system with methods for type-safe delegation of object events to event handlers of other objects | |
US6003095A (en) | Apparatus and method for demand loading a dynamic link library | |
US5675804A (en) | System and method for enabling a compiled computer program to invoke an interpretive computer program | |
US7107579B2 (en) | Preserving program context when adding probe routine calls for program instrumentation | |
Shapiro et al. | Persistence and migration for C++ objects | |
US5490256A (en) | Method and mechanism for calling 32-bit functions from 16-bit functions | |
US20040268301A1 (en) | Adding new compiler methods to an integrated development environment | |
EP0855056B1 (en) | Object-oriented method maintenance mechanism that does not require cessation of the computer system | |
US8601456B2 (en) | Software transactional protection of managed pointers | |
JPH01154267A (ja) | 入出力機器制御プログラムのアドレス解決方法 | |
JPH01306923A (ja) | 異種言語間連絡方式 | |
US6691118B1 (en) | Context management system for modular software architecture | |
US6810519B1 (en) | Achieving tight binding for dynamically loaded software modules via intermodule copying | |
US7584452B1 (en) | System and method for controlling the visibility and use of data in a programming environment | |
US6769126B1 (en) | Apparatus and method for demand load analysis | |
US20040123308A1 (en) | Hybird of implicit and explicit linkage of windows dynamic link labraries | |
US6799320B1 (en) | Providing binding options for component interfaces | |
US5715458A (en) | Incorporation of services written in one operating system environment into another operating system environment | |
US7155701B1 (en) | System for dynamically constructing an executable computer program |