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
Application number
JP2052890A
Other languages
English (en)
Inventor
Richard T Brandle
リチヤード・テイー・ブランデル
Don L Goodliffe
ドン・エル・グツドリイーフ
Donald E Keith
ドナルド・イー・キイース
Randy A Robinette
ランデイ・エー・ロビネツト
Robert C Sizemore
ロバート・シイー・シズモーレ
Garry J Smithwick
ガリイ・ジエイ・スミスウイツク
Anthony J Zappavigna
アンソニイ・ジエイ・ザパビガーナ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH02272627A publication Critical patent/JPH02272627A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing 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ン・プログラマが共通機能を実行す
るためのコードを書いたりデバッグしたりしなくてもよ
いようにしている。システムの設計構造に応じて、ライ
ブラリ機能はリンク時にアプリケーション・プログラム
にリンクすることもできるし、もしオペレーティング・
システムによってサポートされているなら実行時に動的
にリンクしてもよい。
さて1手続ライブラリの使用に関して、上述の言語呼び
出し規約の問題がある。すなわち、ライブラリ手続は典
型的にはそのシステムによってサポートされるめいめい
の言語で書かれなくてはならず、よって、同一のライブ
ラリ機能を実行する゛ために複数の手続が存在すること
になる。代替策は、1つまたは限定された数の手続を単
一の特定の言語で書かせ、アプリケーション・プログラ
マに、興なる言語で書かれた手続を呼び出すために必要
なあらゆるステップを実行すること合要求することであ
る。
単一の共通機能を実行するために、システムに、興なる
言語で書かれた複数の手続を維持することを要求するこ
とは不十分である。アプリケーション・プログラマに、
異なる呼び出し規約を使用する手続を呼び出すために必
要なステ・ンプを請は負うことを強いるのは常に可能と
いう訳ではなく、たとえ可能であるヒしても明らかに望
ましくない。
それゆえに、もともと手続が言語で書かれた言語によっ
て使用される呼び出し規約に関係なくアプリケーション
・プログラムがライブラリ手続を呼び出し得るような能
力を提供することが望ましい。また、そのようなシステ
ムが、そのような手続を呼び出すアプリケーション・プ
ログラムに悪影響を及ぼすことなく、手続が書かれた言
語の変更を含むライブラリ手続の変更能力を提供するこ
とも望ましい。
C0発明が解決しようとする課題 この発明の目的は、手続がもともと書かれた言語が使用
する呼び出し規約に関係なくプログラムが共通ライブラ
リを呼び出すことを可能ならしめるような、コンピュー
タ・システム・インターフェースを提供=することにあ
る。
この発明の他の目的は、そのような手続を呼び出すアプ
リケージ9ン・プログラムに悪影響を及ぼすことなくラ
イブラリ・ルーチンに対して変更を加えることを可能な
らしめるコンピュータ・システム・インターフェースを
提供することにある。
この発明のさらに他の目的は、単一のライブラリ手続を
所望の機能のためシステム上で使用することを可能なら
しめるとともに、手続呼び出し規約の差異に関係なくそ
のような手続を任意の言語で書きなおすことを可能なら
しめることにある。
09課題を解決するための手段 本発明によれば、標準フォーマットを使用してアプリケ
ーション・プログラムによって呼び出されるシステム・
ソフトウェア・インターフェースが提供される。そして
、システム・ライブラリ・ルーチンに対する全ての呼び
出しはこのインターフェースを通じてなされる。呼び出
された時、このインターフェースは、所望のライブラリ
手続によって使用される位置及び呼び出し規約を決定す
る。インターフェースは次に、パラメータをセットアツ
プし、期待される呼び出し規約を使用してそのような手
続を呼び出す。インターフェースはライブラリ手続によ
って発生される何らかの結果を受取り、それらを呼び出
し側アプリケーション・プログラムによって使用される
戻り規約に変換し、その結果を呼び出し側アプリケーシ
リン・プログラムに戻す。
E、実施例 ここで説明されるソフトウェア・システムは、はヒんビ
全ての汎用ディジタル・コンピュータに適合する。すな
わち、メインフレーム・コンピュータ、ミニコンピユー
タ、エンジニアリング・ワークステーション、及びデス
クトップ・パーソナル・コンピュータが以下で説明する
システムをサポートすることができる。そして、本発明
のシテスムを実現するためにはさまざまな既存の言語コ
ンパイラに、以下で説明するわずかな変更を加えるだけ
でよく、そのような変更は、この分野の熟練した当業者
の能力範囲である。
さて、第1図を参照すると、ライブラリ手続呼び出しを
処理するためのシステム10は、サービス・ディレクタ
12を含んでいる。サービス・ディレクタ12は、スタ
ブ(切り取り部分)手続14によって呼び出されるソフ
トウェア手続である。スタブ手続14は、アプリケーシ
ョン・プログラム16の一部である。
サービス・ディレクタ12は、内部サービス18を決定
する複数の手続を含む。サービス・ディレクタ12はま
た、サービス・テーブル20を決定するデータ構造に対
するアクセスを有する。実行の間に、サービス・ディレ
クタ12は、ライブラリ・ルーチン22.24.26及
び28に対する手続呼び出しを行うことができる。
アプリケーション・プログラム16は、任意のユーザー
用途またはシステム機能を実行することができ、典型的
にはCまたはC0BOLなどの高レベル言語で書かれて
いる。アプリケーション・プログラム16は、アセンブ
リ言語で書くこともできるけれども、それは次第に減少
している。スタブ手続14は、実行時にアプリケーショ
ン・プログラム16にリンクされる小さい手続である。
スタブ手続14は、アプリケーション・プログラム16
によって、格別の手続方法で呼び出される。すなわち、
スタブ手続14に渡されるパラメータは、システム・ラ
イブラリ手続またはサービスと、誰の実行が要望されて
いるかを記述する。スタブ手続14は、これらのパラメ
ータを、サービス・ディレクタ12に対して手続呼び出
しを行うために使用する。
プログラミング言語が異なると手続呼び出し規約も異な
るので、サポートされる各プログラミソゲ言語毎にシス
テムによって異なるスタブ手続14が用意されなくては
ならない。しかし、単一のスタブ・プログラム14は全
ての所望のライブラリ・サービスのためにサービス・デ
ィレクタ12に対して全ての呼び出しを行う。
サービス・ディレクタ12は、ライブラリ手続が呼び出
される時アプリケーション・プログラム16によって使
用されるインターフェースである。サービス・ディレク
タ12は、呼び出された時、Iiされたパラメータを検
査して、どのライブラリ手続を呼び出すべきかを決定す
る。ある手続は好適にはサービス・ディレクタ12のコ
ードに直接台まれている。これらの手続は内部サービス
18または環境サービスと呼ばれる。これらの手続は典
型的には頻繁に実行され、あまり複雑でないものである
。システム性能の低下全防止するためには、これらの手
続18に対する効率的な呼び出しが好ましい。サービス
・ディレクタ12に対して内部サービス18として含め
ることができる典型的なシステム・サービスとして、プ
ログラム及び記憶管理、日付及びそれに類するシステム
・サービス、サービス・ディレクタ12自体の動伶に直
接向けられた初期化及び制御ルーチンがある。
アプリケージ9ン・プログラム16がスタブ14を通じ
てサービス・ディレクタ12を呼び出す時、実行される
べき手続は、それに渡されるパラメータによって識別さ
れる。所望のパラメータが一旦識別されると、サービス
・ディレクタ12は、その手続がシステムのどこに記憶
されており、何のパラメータが必要であり、その手続が
もともと書かれた言語が何であるかを決定しなくてはな
らない。その手続がもともと書かれた言語は、所望のラ
イブラリ手続が呼び出される時に使用しなくてはならな
い手続呼び出し規約を示す。
サービス・ディレクタ12はこの情報をサービス・テー
ブル20から見出す。サービス・テーブル20は、シス
テム・ライブラリ手続の名前から上述の情報に対するマ
ツピングを与えるデータ構造であり、よく知られている
いくつかのデータ構造のうちの1つで実現することがで
きる。
サービス・ディレクタ12が一旦呼び出すべきライブラ
リ手続を識別すると、サービス・ディレクタ12は、そ
の手続によって期待される呼び出し規約に適切であるよ
うに渡すべきパラメータを配列し、その手続を呼び出す
。その手続から戻される結果は、サービス・ディレクタ
12に渡される。もし必要なら、サービス・ディレクタ
12はこの結果を再フォ−マツトし、それをスタブ手続
14に戻す。
多くの例では、アプリケージシン・プログラム16及び
呼び出されるライブラリ手続は同一の言語で書かれてお
り、よって必要な手続呼び出しを行う際に困難に逢着す
ることは殆どない。そうでない場合、1つの言語の実現
プログラムがパラメータを渡してそれをレジスタで返し
、一方別の言語の実現プログラムがスタックを使用する
、ということがある。サービス・ディレクタ12は、1
つの呼び出し規約と別の呼び出し規約の間で変換を行う
ために何が必要であるか壱「知って」おり、かなり簡単
な方法でこれらの変換を行うのである。例えば、データ
及びポインタが、レジスタからスタックへ移動される、
及びその逆等である。
好適な実施例では、アプリケーション・プログラムは、
システム・ライブラリ手続呼び出しの前にサービス・デ
ィレクタ12に対して初期化呼び出しを行わなくてはな
らない。この呼び出しはそのアプリケーション・プログ
ラムを識別するパラメータを渡し、サービス・ディレク
タ12が適切なサービス・テーブル20を見付けだすこ
とを可能ならしめる。異なるアプリケーション・プログ
ラムが興なるサービス・テーブルの組を使用することが
あり得る。この呼び出しは、第2図に関連して後述する
機能をもつ共通制御ブロックに対するポインタをも与え
る。
また、ライブラリ手続に対する全ての呼び出しが完了し
た後、アプリケーション・プログラム16がサービス・
ディレクタ12に対して終了呼び出しを行うことが望ま
しい。これにより、サービス・ディレクタ12が割当て
られたメモリを解放し、アプリケージジン・プログラム
16の後始末を行うことが可能となる。
第2図は、ライブラリ手続を呼び出すためにアプリケー
ション・プログラム16内で使用するための典型的なコ
マンドを表すものである。コマンド・ライン40が、ス
タブ手続名42をもつスタブ手続14に対する呼び出し
である。FORTRANなどの幾つかの言語では、CA
LLという単語が、スタブ手続14を呼び出すステート
メントの一部として実際に現れる。他の多くの言語では
、スタブ手続14は、単にその名前42を使用すること
により呼び出される。
スタブ手続名42は好適には比較的任意であり、従って
記述的な手続名の使用と混同しないようになされる。シ
ステム・リンカがスタブ14中でアプリケーション・プ
ログラム16の言語に適切にリンクを行うことができる
ようにするために、スタブ手続名42はどの言語が使用
されているかを示す。第2図には、′°−°′が示され
ているか、この°°−゛は、好適には使用されている言
語を示す1つまたはそれ以上のキャラクタで置き換えら
れる。例えば、これらのキャラクタは、C言言吾の場合
”C”であり、C0BOLの場合”CBL”であり、ア
センブラの場合”ASM”である。代替的には、全ての
言語に対して同一のスタブ言語名を使用し、各コンパイ
ラが、アプリケーション・プログラム1Gをコンパイル
する時に作成するオブジェクト・ファイル中に必要な外
部リンク情報杏配置することによって適切なスタブ手続
14を識別するようにしてもよい。
スタブ手続14に渡される第1のパラメータは、サービ
ス・パラメータ44であり、これはサービス名ブロック
46と呼ばれるデータ構造に対するポインタである。渡
すべき第2のパラメータは、共通ブロック識別子48で
あり、これは共通ブロックに対するポインタを含む。第
3のパラメータは手続ブロック54に対するポインタで
あり、追加的なパラメータは個別のパラメータ・ブロッ
クに対するポインタである。
カギ括弧で示されているパラメータ52及び56は、場
合によってはオプションである。すなわち、日付などの
内部サービス呼び出しは、実施例によってはパラメータ
44及び48しか必要としない。
サービス・パラメータ44は、サービス名ブロック46
を指し示す。サービス名ブロック46は、複数の異なる
情報項目を含むメモリの割り振られたブロックである。
プロ・yり46に示されている数は、そのフィールドが
占有するバイト数である。好適な実施例では、サービス
名ブロック46中の第1のフィールドは、サービス名ブ
ロック46の全バイト数を示す長さフィールドである。
次のフィールドは、サービスの名前である名前フィール
ドである。パラメータ数フィールドは、呼び出されるフ
ィールドに渡されるべきパラメータの数を示す。この数
は、手続パラメータ52が渡されているか、ということ
と、いくつのパラメータ項目が渡されているか、という
ことを決定するために使用される。
フラグ・フィールドは、スタブ手続14からサービス・
ディレクタ12へ情報を渡すために使用される。渡され
る典型的な情報の1つとして呼び出し側言語の識別子が
ある。さまざまな言語のための全てのスタブ手続14は
、同一のエントリ点でサービス・ディレクタ12を呼び
出し、サービス名ブロック中のフラグ・フィールドは、
サービス・ディレクタ12に、どの呼び出し規約が使用
されているかを指示する。
インデックス・フィールドは、特定のサービスについて
の情報の位置をより迅速に識別するために使用される。
サービスが呼び出される最初の時点では、サービス・デ
ィレクタ12は、名前フィールドをテーブル20中で画
用であるさまざまな名前に対して突き合わせるt二めに
、サービス・テーブル20の全体を検索しなくてはなら
ない。
そうしてこの突き合わせが行なわれると、サービス・デ
ィレクタ12はそのテーブル20中のエントリのアドレ
スをインデックス・フィールド中に配置する。このサー
ビスのさまざまな機能が将来呼び出される時、このアド
レスはサービス・テーブル20中の適切なエントリにア
クセスするために使用される。
共通ブロック50は、サービス・ディレクタ12によっ
て、アプリケーション・プログラム1Gに状況及び他の
情報を戻すために使用される。長さフィールドは、共通
ブロック50のサイズを示す。戻りコード・フィールド
は、アプリケーション・プログラム16に状況コードを
戻すために使用される。好適な実施例の規約によれば、
戻りコードの正の値は単に呼び出されたライブラリ手続
によって発生された戻りコードを通過するだけである。
さらに規約によれば、戻りコードの負の値は、サービス
・ディレクタ12によって、その責任範囲内での障害を
示すために使用される。そのような障害としては、例え
ば、所望のライブラリ手続を見付けることができなかっ
た、ということがある。拡張コード・フィールドは、エ
ラー・コードを返すための追加的な能力を与える。
追加要素フィールドは、オプションであって、アプリケ
ーション・プログラム16にデータを戻すべく、データ
またはポインタを転送するために使用される。
長さフィールド以外に、手続ブロック54は機能コード
・フィールドを有する。このフィールドは、サービスの
との機能が望まれているかを示す数である。
好適な実施例では、関連機能がグループとして集められ
ていることが予想され、このグループはサービスと呼ば
れる。これらの手続のうちの1つにアクセスするために
は、そのサービスに全体として適用される名前が必要で
あり、それはサービス名ブロックに見出され、そのサー
ビス内のどの手続が要求されているかの表示は手続ブロ
ック54に見出される。例えば、行列演算を実行するた
めのルーチンのグループは単一のサービスによって識別
することができ、そのとき手続ブロック54は、行列式
、行列掛算、逆行列、その他の行列演算のうちどれが要
求されているかを示す。
各パラメータ・ブロック58は、1つのパラメータを要
求されたライブラリ手続に伝達するために使用される。
パラメータ・プロ・ンク58中のサービス・データ・フ
ィールドは、直接データを含むか、データに対するポイ
ンタを含む。各パラメータ・ブロック58中に含まれる
データのタイプは、めいめいの個別のライブラリ手続が
何を期待するかに依存し、その特定のライブラリ手続の
ために文書中に記載されることになる。
第3図は、アプリケーション・プログラム16によるラ
イブラリ手続の呼び出しの間に生じるステップを示すフ
ローチャートである。第3図のフローチャートは、サー
ビス・ディレクタ12に対して行う必要がある初期化呼
び出しは既に行なわれているものと想定する。第3図は
、ライブラリ手続に対する単一の呼び出しの間に生じる
事象の列のみを表している。
最初に、アプリケーション・プログラム16は、ステッ
プ70でスタブ手続14を呼び出し、それにパラメータ
を渡す。これらのパラメータは、第2図に関連して説明
したように、好適には少なくとも1つのサービスと共通
ブロックを識別し、オプションとしてもし必要なら手続
識別子及びパラメータを識別する。スタブ手続は、次に
ステップ72で呼び出し言語フラグ72をセットする。
このフラグは、サービス・ディレクタ12に対して、ア
プリケーション・プログラム16の言語を示し、以てア
プリケーション・プログラム16及びスタブ手続14に
よってとの呼び出し規約が使用されるかを示唆するもの
である。
スタブ手続14は次にステップ74でサービス・ディレ
クタ12を呼び出し、サービス・ディレクタ12はその
要求が、内部サービスのためのものかどうかを決定する
。もし要求された手続がサービス・ディレクタ12にと
って内部でないなら、サービス・ディレクタ12は、ス
テップ78で、サービス・テーブル中で所望の手続を見
付ける。上述のように、サービス・テーブル・エントリ
は、サービス・ディレクタ12が要求されたライブラリ
手続を適正に呼び出すために必要な情報を示すものであ
る。
サービス・ディレクタ12は次に、ステップ80でライ
ブラリ手続を呼び出すためのパラメータをセットアツプ
し、ステップ82でライブラリ手続を呼び出す。サービ
ス手続はステップ84で通常の方法で実行され、ステッ
プ86でサービス・ディレクタ12に対して発生した何
らかの結果を戻す。
サービス・ディレクタ12は、ステップ72でセットさ
れたフラグによつて示されるようにアプリケ−シロン・
プログラム1Gの呼び出し規約を一致させるべく、ステ
ップ88でその戻りパラメータをセットアツプする。そ
の結果は次に、ステ・シブ90でスタブ手続14に戻さ
れ、スタブ手続14はその結果を、ステップ92でアプ
リケーション・プログラムに戻す。
ステップ76で、もしサービス・ディレクタ12が、内
部サービスが要求されていることを検出したなら、サー
ビス・ディレクタ12は、ステップ94でそのような内
部手続を実行してステップ90に行く。サービス・ディ
レクタ12はステップ72における呼び出し言語フラグ
・セットのため、アプリケーション・プログラム1Gに
よって使用されるパラメータ引き渡し機構を理解してい
るので、必要な変換を直接扱うことができる。
F1発明の効果 上述のシステム及び方法は、システム・ライブラリ・プ
ログラムを異なるプログラミング言語で書くことを可能
ならしめるものである。もしある特定のプログラミング
言語が、ある特定の所望のライブラリ手続を書くために
適切であるなら、そのプログラミング言語を使用するこ
とができる。
そして、所与の機能を実行するために単一のライブラリ
手続しか必要でなく、以てシステム・ライブラリ手続の
保守性を著しく改善するのである。
もし特定の手続が追加または削除され、あるいはある手
続が異なる手続規約を使用するプログラミング言語を使
用して書き直されても、そのような更新情報は単にサー
ビス・テーブルに反映されるだけである。このことは、
サービス・ディレクタ自体は修正する必要がなく、ライ
ブラリ手続の変更に必要な修正はサービス・テーブルに
対するものだけであることを意味する。この変更は、直
接テーブル変更を行うプログラムの使用を通してサービ
ス・テーブルを更新することによって容易に行うことが
できる。
ライブラリ手続は動的にリンクされるので、実行可能な
アプリケーション・プログラムは小さいままである。さ
らに、特定の手続に対するリンクは直接アプリケーショ
ン・プログラム中に維持されないので、アプリケーショ
ン・プログラムは常にライブラリ手続の最新バージョン
を呼び出す。
サービス・ディレクタはシステム内の既知の位置に置か
れ、サービス呼び出しを行う必要がある全てのアプリケ
ージ甘ン・プログラムに利用可能である。それゆえ、ア
プリケーション・プログラムに悪影響を及ぼすことなく
サービス・ディレクタに変更を行うことも可能である。
ライブラリ手続の動年に課せられる制約は、システム及
びデータの完全性を保証するために必要な典型的なもの
ばかりである。ライブラリ手続は、浮動小数点ライブラ
リやデータベース・サーバなどの、共通に使用される単
純なブロックでよく、あるいはより複雑なものでもよい
。ライブラリ手続は入出力を実行することができ、アプ
リケーション・プログラムのユーザーと直接インターフ
ェースすることもできる。ライブラリ手続は他のライブ
ラリ手続、または他のプログラムあるいはシステムを呼
び出すこともできる。他のライブラリ手続の呼び出しは
、直接行ってもよいし、アプリケーション・プログラム
が行うようにサービス・ディレクタを通してでもよい。
ライブラリ手続は、リアルタイム・データ収集及び制御
などの目的のために、ハードウェアを直接操俸するため
に使用することもできる。
【図面の簡単な説明】
第1図は、本発明に従いライブラリ手続を呼び出すため
のシステムのブロック図、 第2図は、弓イブラリ・ルーチンを呼び出すためのフォ
ーマット壱示す図、 第3図は、ライブラリ手続を呼び出すために行なわれる
ステップのフローチャートを示す図である。 出願人 インターナショナル・ビジネス・マシーンズ・
コーポレーション 代理人  頓  宮  孝  − (他1名)

Claims (2)

    【特許請求の範囲】
  1. (1)ディジタル・コンピュータにおいて手続を呼び出
    すためのシステムであって、 (a)アプリケーション・プログラムによって呼び出し
    可能であり、アプリケーション・プログラムから手続識
    別子とパラメータとを受け取る能力をもつインターフェ
    ース手段と、 (b)上記インターフェース手段によって呼び出し可能
    な複数の手続とを有し、 (c)上記手続識別子に対応する手続が上記パラメータ
    を使用して上記インターフェース手段によって呼び出さ
    れ、 (d)上記呼び出された手続は上記インターフェース手
    段に結果を返し、 (e)上記インターフェース手段は上記アプリケーショ
    ン・プログラムに結果を返すことを特徴とする、 ディジタル・コンピュータ・システム。
  2. (2)コンピュータ・システムにおいて手続を呼び出す
    ための方法であって、 (a)アプリケーション・プログラムから第1の呼び出
    し規約を使用してインターフェース手段を呼び出し、呼
    び出される手続識別子とパラメータを該インターフェー
    ス手段に渡す段階と、 (b)上記インターフェース手段から第2の呼び出し規
    約を使用して上記手続を呼び出し、上記パラメータを該
    呼び出された手続に渡す段階を有する、 手続呼び出し方法。
JP2052890A 1989-03-06 1990-03-06 デイジタル・コンピユータ・システムとその手続呼び出し方法 Pending JPH02272627A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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