JPH0693227B2 - データ処理システム、及びデータ処理システムを動作させる方法 - Google Patents

データ処理システム、及びデータ処理システムを動作させる方法

Info

Publication number
JPH0693227B2
JPH0693227B2 JP3282046A JP28204691A JPH0693227B2 JP H0693227 B2 JPH0693227 B2 JP H0693227B2 JP 3282046 A JP3282046 A JP 3282046A JP 28204691 A JP28204691 A JP 28204691A JP H0693227 B2 JPH0693227 B2 JP H0693227B2
Authority
JP
Japan
Prior art keywords
class
message
target
description
function
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.)
Expired - Fee Related
Application number
JP3282046A
Other languages
English (en)
Other versions
JPH04277838A (ja
Inventor
アンドルー、マーチン、ウエスト
テフクロス、アンティアス
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 JPH04277838A publication Critical patent/JPH04277838A/ja
Publication of JPH0693227B2 publication Critical patent/JPH0693227B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Computer And Data Communications (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データ処理システムに
関する。より詳細には、本発明はデータ処理システムに
おけるオブジェクト指向コンピュータプログラムの実行
に関する。
【0002】
【従来の技術】従来のコンピュータプログラムは、処理
中のデータを処理するように連続して実行される命令リ
ストを含んでいる。コンピュータプログラムを書くこと
は、時間がかかり、技能が要求され、費用のかかる仕事
である。こうした問題をすくなくするように、異なるコ
ンピュータプログラム間でのコードの再使用が可能にな
るよう支援する技術が開発されている。こうしたオブジ
ェクト指向プログラミング技術は、コードとそのコード
により処理されたデータをオブジェクトとよぶ部分に分
割するものである。コードとデータをカプセル封じすれ
ば、複数のオブジェクトを異なるプログラムで再使用す
るのが容易になる。こうしたオブジェクト指向プログラ
ムの実行には、オブジェクト間でメッセージをやり取り
することが含まれている。オブジェクトは複数の階層に
構成され、それらの階層では子オブジェクトがその親か
らファンクションを継承するようになっている。この構
成により、所与のファンクションを実行するために複数
個のコードを書く必要性も減少する。あるプログラムか
らの1つまたは複数のオブジェクトは他のプログラムに
転送されて使用される。
【0003】Smalltalk (ディジトーク社の商標)やC
++など多くのオブジェクト指向プログラミング言語が
ある。これら様々なオブジェクト指向プログラミング言
語は、多様な目的に適合するように様々な特性を備えて
いる。Smalltalk は、修飾が容易なので手本にするのに
適した解釈言語である。しかし、動作が比較的遅いので
生産言語としてはふさわしくない。逆に、C++は、変
更するのが難しいので模範にするのにはふさわしくない
コンパイル言語である。しかし、動作が速いので生産言
語としては適している。コンピュータ言語というものは
利点と欠点を持っている。あらゆる目的にかなったコン
ピュータ言語はない。コードの各部分の環境がそのコー
ドで使用された言語に適合するようにコンピュータプロ
グラムの様々な部分が様々な言語で書かれるのが望まし
い。
【0004】従来の非オブジェクト指向コンピュータ言
語を用いれば、第1言語で書かれたコンピュータプログ
ラムは第2言語で書かれたコンピュータプログラムと協
同して処理を実行できるようなタスクは、複雑でかなり
のオーバーヘッドが加わるようになる。これと対照的
に、オブジェクト指向コンピュータプログラムは、複数
のオブジェクトがもともと分離されており互いに独立し
ている細分化またはカプセル封じ構造をもつ。これらの
オブジェクトは通常メッセージのやり取りを通してのみ
かかわりを持つ。理論上は、この特色により、協同言語
間処理が容易になるはずである。
【0005】
【発明が解決しようとする問題点】しかし、実際は、異
なるオブジェクト指向プログラミング言語は全く異なる
ように動作する。ある言語環境中のあるオブジェクトが
受取るのに適しているメッセージは、他の言語環境中の
オブジェクトには理解されない。問題は、単にメッセー
ジの構文を変換しさえすればよいというようなものでは
ない。各言語がオブジェクト間でメッセージのやり取り
を管理する方法は言語毎にかなり異なっている。第1の
コンピュータプログラムがメッセージを第2のコンピュ
ータプログラムに送れるようにするには、第1のコンピ
ュータプログラムが第2のコンピュータプログラムの中
に入りメッセージを処理するのに第2のコンピュータプ
ログラムが必要とする情報を見つける必要がある。この
情報を求めて第2言語で書かれたコンピュータプログラ
ムの中に入ることができる第1言語で書かれたコンピュ
ータプログラムを提供するのは、それに伴う大きなオー
バーヘッドとともにかなり大きな問題となる。すなわ
ち、一見、オブジェクト指向プログラミング技術を使用
すれば異なる言語のオブジェクト間の通信が単にメッセ
ージの通信の問題になるようにみえるが、実際は、これ
はかなり単純化のしすぎであり、様々な問題点がある。
【0006】
【課題を解決するための手段】1つの好適実施例による
と、目標ファンクションを実行するために第1のコンピ
ュータ言語で書かれた第1のコンピュータプログラム
が、第2のコンピュータ言語で書かれた第2のオブジェ
クト指向コンピュータプログラムの目標クラスの目標オ
ブジェクトにメッセージを送るような、前記第1のコン
ピュータプログラムと第2のオブジェクト指向コンピュ
ータプログラムの制御下でデータ処理システムを動作す
る方法において、前記目標ファンクションが、前記第1
のプログラムが、前記第2のコンピュータプログラムの
複数のクラスの所定の記述にアクセスして、汎用メッセ
ージ送信ファンクションを呼び出すステップ、前記汎用
メッセージ送信ファンクションが、前記記述を読むこと
により前記目標クラス内から前記目標ファンクションを
発見するステップ、前記汎用メッセージ送信ファンクシ
ョンが、前記メッセージを前記第2の言語が要求した形
式にマップするステップ、および前記汎用メッセージ送
信ファンクションが前記メッセージを前記目標オブジェ
クトに送信するステップ、により実行される。
【0007】本実施例では、上記のような複雑な構成を
もつことなく、オブジェクト指向プログラムを2つのコ
ンピュータ言語で書くことが可能である。2つのコンピ
ュータプログラム間に追加層が導入される。この層は、
目標コンピュータプログラム中のオブジェクトの記述を
含む。一見すると、この追加層を導入するとシステムは
一層複雑になるように見える。しかし、この追加層によ
り言語独立オブジェクトモデル(記述)が構築可能にな
る。この追加層により、任意の特定の言語の特異性に起
因する複雑な要因からメッセージのやり取りが解放され
る。したがって、異なる言語のコンピュータプログラム
間でのメッセージのやり取りが実際的になる。
【0008】本発明の適用例は、追加コードを追加する
ことにより新しいバージョンのコンピュータプログラム
を作成するのが望ましい場合である。この従来のコード
は、C++等その生産言語にあるが、新しいコードはSm
alltalk のようなそれとは異なるより適切な言語で試作
できる。本発明は、クラス階層が異なる言語にわたるこ
とを可能にもする。第1の言語の子オブジェクトは、第
2の言語の親オブジェクトからファンクションを継承で
きる。本発明により、所与のオブジェクトが他のオブジ
ェクトから完全に独立しメッセージを送ることで他のオ
ブジェクトと通信できるオブジェクト指向の理想に動作
中のシステムがより接近することが可能になる。所与の
クラス内のオブジェクトはそれらの特徴の大半を共有す
ることを理解することが重要である。したがって、各オ
ブジェクト記述には、そのオブジェクトに固有のインス
タンス変数を識別するデータとそのクラスの記述を示す
ポインタが含まれている。この構成のおかげで記述の全
体の大きさが減少する。
【0009】実際の状況ではほとんど、環境間境界を越
えて両方向にメッセージを送るのが望ましいことが理解
されるであろう。したがって、本発明の好ましい実施例
では、前記汎用メッセージ送信ファンクションが、複数
のコンピュータプログラムにメッセージを送ることを可
能にする複数のオブジェクト指向コンピュータプログラ
ムのオブジェクトの記述にアクセスする。
【0010】オブジェクト指向コンピュータプログラム
内では、よく発生するファンクションの継承に起因する
要件は、子クラスのメッセージをその親クラスに送る要
求である。本発明の状況において、親オブジェクトは、
異なるコンピュータ言語で書かれたコンピュータプログ
ラム内の場合もある。この要件を処理するためには、本
発明の好ましい実施例において、前記第2のオブジェク
ト指向コンピュータプログラムは、少なくとも1つの子
クラスと少なくとも1つの親クラスを含み、子クラスの
記述は、その親クラスを示すポインタを含み、前記子ク
ラスが、前記ポインタを読むことによりその親クラスを
発見する。本発明のこの特色は、SendSuper ファンクシ
ョンにより親クラスに実施される直接呼出しを可能にす
ることである。
【0011】継承の他の結果は、メッセージが目標オブ
ジェクトに送られるとき、送付オブジェクトは、目標オ
ブジェクトが要求されたファンクションを提供するかそ
のメッセージをその親クラスに送るかどうか分からな
い。より効率的にするために、本発明の好ましい実施例
では、クラスの各記述が、そのクラスが供給するファン
クションのリストを含み、前記目標クラスが提供しない
目標ファンクションを要求するメッセージが受信される
と、前記親クラス記述を示す前記ポインタが読み取ら
れ、前記目標ファンクションは、親クラスのファンクシ
ョンの対応するリストの中で探索される。この特色によ
り、要求されたファンクションを処理するクラスがより
速い速度でオブジェクト記述内から識別可能である。
【0012】他の問題は、オブジェクトインスタンス変
数データの構成にいたる一貫した方法を達成する方法で
ある。これを処理するために、複数のクラスの前記記述
は、所与のクラス内でオブジェクトのインスタンス変数
データの長さと位置を識別するデータを含み、新しいオ
ブジェクトが作成されると、そのオブジェクトに対する
インスタンス変数データの長さは、前記新しいオブジェ
クトのオブジェクト階層全体に対するインスタンス変数
長に基づいて計算され、インスタンス変数用の記憶機構
が割り当てられ、インスタンス変数アドレスは、前記汎
用メッセージ送信ファンクションにより目標オブジェク
トに送られたメッセージの中のパラメータとして送付さ
れる。
【0013】上記のように、メッセージ構文が、汎用メ
ッセージ送信ファンクションにより実行されたマッピン
グにより提供される必要がある。本発明の好ましい実施
例では、クラスの各記述は、前記クラスのコンピュータ
プログラムと前記マッピングを実行するコードを示すポ
インタを識別する。コードの一部分だけが各コンピュー
タプログラムへのマッピングのために提供される必要が
ある。
【0014】本発明の他の実施例では、第1のコンピュ
ータ言語で書かれた第1のコンピュータプログラムと第
2のコンピュータ言語で書かれた第2のオブジェクト指
向コンピュータプログラムの制御下で動作し、目標ファ
ンクションを実行するために前記第1のプログラムから
前記第2のプログラムにおける目標クラスの目標オブジ
ェクトにメッセージを送る手段をもつデータ処理システ
ムにおいて、前記送信手段が、 前記第2のコンピュー
タプログラムの複数のクラスの所定の記述へのアクセス
により汎用メッセージ送信ファンクションを呼び出す前
記第1のプログラムのための手段、前記記述を読むこと
により前記目標クラス内から前記目標ファンクションを
発見する前記汎用メッセージ送信ファンクションのため
の手段、前記第2の言語に要求される形式に前記メッセ
ージをマップする前記汎用メッセージ送信ファンクショ
ンのための手段、および前記メッセージを前記目標オブ
ジェクトに送信する前記汎用メッセージ送信関数のため
の手段を含む。
【0015】
【実施例】本発明は、複数のオペレーティングシステム
プラットフォームを横切る様々な言語環境間での相互操
作性を備えている。この環境間の相互操作性は、言語独
立オブジェクト指向プログラミング環境において様々な
プログラミング言語間にも備えられている。このオブジ
ェクト指向プログラミング環境は、言語独立オブジェク
トモデルを備えている。
【0016】これを実証する方法は、OS/2プレゼン
テーションマネージャ環境(OS/2とプレゼンテーシ
ョンマネージャはIBM社の商標である)において2つ
のオブジェクトを作成しそれらのオブジェクトにメッセ
ージを送信する動作を記述することである。これは、継
承、インスタンス変数、および言語間の相互操作性ファ
ンクションを例示するものである。図1のクラス構造は
クラスエディタにより作成される。関連する表と方法に
よる各クラス定義がコンパイルされ、DLL(動的リン
クライブラリ)にリンク編集される。
【0017】第1の例は、C++オブジェクトも含む階
層内にCオブジェクトの作成である。クラスCの例であ
るオブジェクトX(図2)が作成される。 1.クラスC DLLがメモリにロードされ、クラス定
義のアドレスを戻す環境マッピングファンクション(E
MF)スタブにメッセージを送ることによりその定義が
発見される。EMFスタブは、それぞれインスタンスメ
ッセージとクラスメッセージに対応する2つの入力点
「classname 」と「_classname 」をもつ。 2.クラスCがスーパークラスBをもつので、クラスB
はメモリにロードされ、クラスの定義が発見され、クラ
スBの定義のアドレスがクラスCの定義にセーブされ
る。 3.同様に、階層の該当ブランチのすべてのスーパーク
ラスがロードされ発見されるまでステップ2は繰り返さ
れる。本例では、この処理はクラスAをロードした後で
停止する。 4.階層の該当ブランチのすべてのインスタンス変数の
長さが計算される。本例では、4+12+8(図2の(a
l))。 5.オブジェクト記憶機構は、インスタンス変数とクラ
ス定義への連係にたいして割り当てられる。本記憶機構
のアドレスは汎用オブジェクト処理として使用される。 6.新しいメッセージが、各クラスが初期化と特殊な構
成ファンクションを実行可能なオブジェクトに送られ
る。SendMsg ファンクションは以下のように実行され
る。 a.SendMsg ファンクションは、オブジェクト処理から
クラス定義のアドレスを獲得し、定義により指定された
EMFルーチン(図2の(e1))を呼び出す。 b.「C」EMFスタブルーチンは制御を受け取り、定
義のアドレスの要求ではないメッセージは、制御を
「C」EMF共通ルーチン(e3)に渡す。 c.「C」EMF共通ルーチンは、新しいメッセージの
該当クラスに関連するメッセージテーブルを走査し、そ
れが見つからないと、クラスBの定義により指定された
EMFルーチン(e3)を呼び出す。クラスBの定義のア
ドレスは、クラスCの定義(c1)のスーパークラス定義ポ
インタから獲得される。 d.上記メッセージが発見されスーパークラス鎖の頂点
に達するまでステップCは繰り返される。スーパークラ
ス鎖の頂点に達してもメッセージが見つからない場合、
FALSE がSendMsg の呼出しプログラムに戻される。 e.この場合、処理はクラスAのC++EMF共通ルー
チンに到達する。C++EMF共通ルーチンは、新メッ
セージにたいして特殊な処理を実行する。このルーチン
は、アドレスがメッセージ表にあるクラス構成ルーチン
を呼び出して、汎用メッセージハンドラ(以後、PMP
LUS)のインスタンス変数に戻された値(C++処
理)をセーブする。このC++処理はその後メッセージ
をC++方法に送るときに使用される。 7.汎用処理はオブジェクト作成ファンクションの呼出
しプログラムに戻される。
【0018】第2の例はCとC++オブジェクトの両方
を含む階層内でのSmalltalk オブジェクトの作成に関す
る。オブジェクトY、クラスDの例が作成される。しか
し、クラスAとBの定義は前述の例のステップ2と3で
ロードされているので、これらは見つけだされて再使用
される。Smalltalk EMF共通ルーチン(e2)は、新メ
ッセージを処理するときに、Smalltalk 環境のこのクラ
スのSmalltalk オブジェクトを作成する。それは以下の
ステップによって行なわれる。 1.Smalltalk 環境内で通信中かどうかが確認される。
これはOS/2と名付けられた記憶機構を獲得すること
により行なわれる。 2.これがうまくいかない場合、Smalltalk が起動し、
以下のことにより通信が初期化される。 a.初期化コードで、名付けられた共有記憶機構を割り
当てて、Smalltalkウインドウ処理の値を記憶機構に入
力するSmalltalk/VPM を起動する。 b.PMPLUSメッセージハンドラオブジェクトが作成され
る。このオブジェクトはPM通知プログラムに追加さ
れ、PMPLUS-Smalltalkメッセージを通知プログラムによ
る処理に追加する。 c.合図を送って、待機中の環境に初期化が完了したこ
とを通知する。 3.共有記憶機構のウインドウ処理(aのセットアッ
プ)を用いて、Smalltalk環境にメッセージを送り、オ
ブジェクトを作成する。このメッセージは以下のように
処理される。 a.PMPLUSメッセージハンドラは通知プログラムを介し
て作成オブジェクトメッセージを受け取る。 b.該当クラスがあるかどうか確認する。 c.該当クラスのインスタンスを作成する。 d.指標をこのクラスに戻す。 4.戻された指標はPMPLUSインスタンス変数にセーブさ
れる。 5.第1の例のステップ6dと6eにおけるように処理
が継続する。 6.オブジェクトYの処理(h2)を作成オブジェクトフ
ァンクションの呼出しプログラムに戻す。
【0019】第3の例はC++オブジェクトへのメッセ
ージの送付を例示する。描画メッセージがオブジェクト
Xに送られる。その処理は、ステップ6eの処理を除い
て第2例のステップ6aないし6eで記載された処理に
非常に良くにており、C++ファンクションのアドレス
はメッセージ表から獲得される。C++ファンクション
は、第1例のステップ6eのPMPLUSインスタンス変数に
セーブされたC++処理とSendMsg ファンクションから
のパラメータを使用して呼び出される。C++方法から
の戻り値がSendMsg ファンクションの呼出しプログラム
に戻される。
【0020】第4の例はSmalltalk オブジェクトへのメ
ッセージの送付を例示する。更新メッセージがオブジェ
クトYに送られる。 1.SendMsg ファンクションは、オブジェクト処理から
のクラス定義のアドレスを獲得し、その定義により指定
されたEMFルーチン(e2)を呼び出す。 2.Smalltalk EMF共通ルーチンは制御を受け取り、
第2の例のステップ4でセーブされたオブジェクト指標
とともにSmalltalk のPMPLUSメッセージハンドラにメッ
セージを送る。 3.PMPLUS Smalltalkメッセージハンドラはそのメッセ
ージを受け取り、その指標が有効でオブジェクトがメッ
セージを処理することを確認する。 4.オブジェクトがそのメッセージを処理しない場合、
「メッセージ未発見」の指示が(メッセージ送信処理
に)戻される。メッセージの探索は、第1の例のステッ
プ6cと6dにおけるようにクラス階層の上に向かって
継続する。 5.そうでない場合、クラス定義に前もって定義され含
まれたメッセージパラメータ記述子を用いてSmalltalk
環境にマップされる。 6.Smalltalk メッセージが実行され、戻り値が呼出し
ファンクションに戻される。 7.Smalltalk 方法は、ある処理を実行しメッセージを
そのスーパークラスに送るために選ぶことが可能であ
る。PMPLUS SendMsgSuper ファンクションを用いてこれ
が実行される。すべてのPMPLUSファンクションは、プレ
ゼンテーションマネージャAPIが定義されるのと同じ
方法でSmalltalk 環境で定義される。SendMsgSuper処理
はSendMsg ファンクションと非常に良くにている、ただ
しメッセージの探索は、SendMsgSuper呼出しプログラム
のスーパークラス(この場合クラスB)で始まる。以後
の処理は第3の例に記載されている、ただし更新ファン
クションが呼び出される。
【0021】第5の例は、Cオブジェクトにメッセージ
への送付を記載している。強調メッセージがオブジェク
トYに送られる。 1.SendMsg ファンクションはオブジェクト処理からク
ラス定義のアドレスを獲得し、その定義により指定され
たEMFルーチン(e2)を呼び出す。 2.メッセージは最初に、第4の例のように、Smalltal
k クラスDに送られる。 3.メッセージはSmalltalk クラスにより処理されない
ので、メッセージがクラスBの定義を介してC言語EM
F共通ルーチン(e3)に送られる。 4.C言語EMF共通ルーチン(e3)は、クラスBのク
ラス定義の中に強調メッセージを発見する。 5.該ルーチンは、インスタンス変数領域の基底アドレ
スにインスタンス変数オフセットを追加してクラスBの
インスタンス変数のアドレスを計算する。 6.(アドレスがメッセージ表にある)ファンクション
は、オブジェクト処理により、SendMsg 呼出しからイン
スタンス変数のアドレスとパラメータを呼び出す。
【0022】これまで、本発明の動作と環境の境界を越
える問題を解決する方法を記載するのにOS/2環境を
用いてきた。OS/2プログラミングに関するより詳細
な情報は、Microsoft Press 刊、CharlesPetzold 著、
「OS/2Presentation Manager」(ISBN 1-55615-170
-5)に見いだされ、Smalltalk のより詳細な情報は、Di
gitalk社刊の「Tutorial and Programming Handbook」
と呼ばれるSmalltalk/VPM と一緒に発刊されたマニュア
ルに見いだされる。Smalltalk 環境の他の解決方は、Sm
alltalk ウインドウ処理を獲得するように動的データ交
換(DDE)を使用し、Smalltalk でPMPLUSメッセージ
を通信するDDEファンクションを使用することであ
る。
【0023】開発された解決法は、ウインドウ、X−W
indows、MOTIF、大型コンピュータ用のオペ
レーティングシステムなどの他のワークステーション環
境に同様に適用できる(ウインドウズはマイクロソフト
社の商標であり、XーWINDOWSはAT&T社の商
標で、MOTIFはOpen Software Foundationの商標で
ある)。
【図面の簡単な説明】
【図1】単純なクラス階層を示す図。
【図2】単純なクラス階層の背後の内部構造とクラス記
述(オブジェクト記述を含む)を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 テフクロス、アンティアス イギリス国ハンプシャー、ロムシー、アン プフィールド、ナップ、レーン、オール ド、スクール、ハウス(番地なし)

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】第1のコンピュータ言語で書かれた第1の
    コンピュータプログラムと第2のコンピュータ言語で書
    かれた第2のオブジェクト指向コンピュータプログラム
    の制御下で、前記第1のプログラムが前記第2のプログ
    ラムの目標クラスの目標オブジェクトにメッセージを送
    るデータ処理システムを動作させる方法において、前記
    第1のプログラムが、前記第2のコンピュータプログラ
    ムの複数のクラスの所定の記述へのアクセスにより汎用
    メッセージ送信ファンクションを呼び出すステップと、
    前記汎用メッセージ送信ファンクションが、前記記述を
    読みだすことにより前記目標クラス内から目標ファンク
    ションを見つけるステップと、前記汎用メッセージ送信
    ファンクションが、前記メッセージを前記第2の言語が
    必要とする形式にマッピングするステップと、前記汎用
    メッセージ送信ファンクションが前記メッセージを前記
    目標オブジェクトに送信するステップと、によって前記
    目標ファンクションを実行することを特徴とする方法。
  2. 【請求項2】各オブジェクト記述は、そのオブジェクト
    に固有のインスタンス変数を識別するデータとそのクラ
    スの記述へのポインタを含むことを特徴とする請求項1
    記載の方法。
  3. 【請求項3】前記汎用メッセージ送信ファンクション
    は、メッセージを複数のコンピュータプログラムに送信
    することが可能な複数のオブジェクト指向コンピュータ
    プログラムの複数のクラスのある記述にアクセスできる
    ことを特徴とする請求項1または2のいずれかに記載の
    方法。
  4. 【請求項4】前記第2のオブジェクト指向コンピュータ
    プログラムは少なくとも1つの子クラスと少なくとも1
    つの親クラスを有し、前記子クラスの各記述はその親ク
    ラスの記述へのポインタを含み、前記子クラスは前記ポ
    インタを読むことによりその親クラスを見つけだすこと
    を特徴とする請求項1乃至3のいずれかに記載の方法。
  5. 【請求項5】クラスの各記述は、そのクラスがもつファ
    ンクションのリストを含み、前記目標クラスがもってな
    い目標ファンクションを要求するメッセージが受信され
    る場合、前記親クラス記述への前記ポインタが読み取ら
    れ、前記親クラスの対応するファンクションリストにお
    いて前記目標ファンクションが探索されることを特徴と
    する請求項4記載の方法。
  6. 【請求項6】オブジェクトの前記記述は、新オブジェク
    トが作成されると、そのオブジェクトのインスタンス変
    数データの長さが前記新オブジェクトの完全なクラス階
    層のインスタンス変数長に基づいて計算され、インスタ
    ンス変数の記憶機構が割り当てられ、インスタンス変数
    アドレスが前記汎用メッセージ送信ファンクションによ
    りメッセージ内のパラメータとして目標オブジェクトに
    送られるようにして、所与のオブジェクトクラス内でオ
    ブジェクト用のインスタンス変数データの長さと位置を
    識別するデータを含むことを特徴とする請求項1乃至5
    のいずれかに記載の方法。
  7. 【請求項7】クラスの各記述は、前記マッピングを実行
    するために前記クラスの前記コンピュータ言語とコード
    へのポインタとを識別することを特徴とする請求項1乃
    至6のいずれかに記載の方法。
  8. 【請求項8】第1のコンピュータ言語で書かれた第1の
    コンピュータプログラムと第2のコンピュータ言語で書
    かれた第2のオブジェクト指向コンピュータプログラム
    の制御下で動作し、目標ファンクションを実行するため
    に前記第1のプログラムから前記第2のプログラムの目
    標クラスの目標オブジェクトにメッセージを送信する手
    段を有するデータ処理システムにおいて、前記手段が、
    前記第2のコンピュータプログラムの複数のクラスの所
    定の記述へのアクセスにより前記第1のプログラムに汎
    用メッセージ送信ファンクションを呼び出させる手段
    と、前記汎用メッセージ送信ファンクションに、前記記
    述を読むことにより前記目標クラス内から前記目標ファ
    ンクションを見つけださせる手段と、前記汎用メッセー
    ジ送信ファンクションに、前記メッセージを前記第2の
    言語が必要とする形式にマップさせる手段と、前記汎用
    メッセージ送信ファンクションに、前記メッセージを前
    記目標オブジェクトに送信させる手段と、を備えている
    ことを特徴とするデータ処理システム。
  9. 【請求項9】前記第2のオブジェクト指向コンピュータ
    プログラムは少なくとも1つの子クラスと少なくとも1
    つの親クラスを含み、前記子クラスの各記述はその親ク
    ラスの記述へのポインタを含み、前記子クラスは前記ポ
    インタを読みだすことによりそのクラスオブジェクトを
    見つけ、クラスの各記述は、そのクラスがもつファンク
    ションのリストを含み、前記目標クラスがもってない目
    標ファンクションを要求するメッセージが受信される場
    合、前記親オブジェクト記述への前記ポインタが読み取
    られ、その親クラスの対応するファンクションリストに
    おいて前記目標ファンクションが探索されることを特徴
    とする請求項8記載のデータ処理システム。
  10. 【請求項10】複数のオブジェクトの前記記述は、新オ
    ブジェクトが作成されるとき、そのオブジェクトのイン
    スタンス変数データの長さが前記新オブジェクトの全ク
    ラス階層のインスタンス変数データに基づいて計算さ
    れ、インスタンス変数の記憶機構が割り当てられて、イ
    ンスタンス変数アドレスが前記メッセージ送信ファンク
    ションにより送信されたメッセージにおいてパラメータ
    として目標オブジェクトに渡されるようにして、所与の
    オブジェクトクラス内のオブジェクトのインスタンス変
    数の長さと位置を識別するデータを含むことを特徴とす
    る請求項8または9のいずれかに記載のデータ処理シス
    テム。
JP3282046A 1991-01-18 1991-10-02 データ処理システム、及びデータ処理システムを動作させる方法 Expired - Fee Related JPH0693227B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP91300413A EP0495279B1 (en) 1991-01-18 1991-01-18 Object oriented programming platform
GB91300413.1 1991-01-18

Publications (2)

Publication Number Publication Date
JPH04277838A JPH04277838A (ja) 1992-10-02
JPH0693227B2 true JPH0693227B2 (ja) 1994-11-16

Family

ID=8208166

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3282046A Expired - Fee Related JPH0693227B2 (ja) 1991-01-18 1991-10-02 データ処理システム、及びデータ処理システムを動作させる方法

Country Status (4)

Country Link
US (2) US5511199A (ja)
EP (1) EP0495279B1 (ja)
JP (1) JPH0693227B2 (ja)
DE (1) DE69126857T2 (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327562A (en) * 1992-05-06 1994-07-05 Microsoft Corporation Method for implementing virtual function tables in a compiler for an object-oriented programming language
US5307490A (en) * 1992-08-28 1994-04-26 Tandem Computers, Inc. Method and system for implementing remote procedure calls in a distributed computer system
JPH06332712A (ja) * 1993-05-25 1994-12-02 Fujitsu Ltd オブジェクトを持つデータ処理システム
US5379432A (en) * 1993-07-19 1995-01-03 Taligent, Inc. Object-oriented interface for a procedural operating system
US5517645A (en) * 1993-11-05 1996-05-14 Microsoft Corporation Method and system for interfacing components via aggregate components formed by aggregating the components each with an instance of a component manager
US5485617A (en) 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US5689724A (en) * 1993-12-23 1997-11-18 International Business Machines Corporation Generic font specification leading to specific font selection
US6377874B1 (en) * 1994-09-07 2002-04-23 Spd Technologies Inc. Power distribution system including integrated power node control center
US5732270A (en) * 1994-09-15 1998-03-24 Visual Edge Software Limited System and method for providing interoperability among heterogeneous object systems
GB2293470A (en) * 1994-09-22 1996-03-27 Ibm Message encapsulation in Object Oriented Programming.
US6704744B1 (en) * 1994-12-07 2004-03-09 Next Computer, Inc. Method and apparatus for mapping objects to multiple tables of a database
US5873093A (en) * 1994-12-07 1999-02-16 Next Software, Inc. Method and apparatus for mapping objects to a data source
JPH08241342A (ja) * 1995-03-02 1996-09-17 Matsushita Electric Ind Co Ltd 設計プロセス記録方法及び設計プロセス記録装置
US5832264A (en) * 1995-07-19 1998-11-03 Ricoh Company, Ltd. Object-oriented communications framework system with support for multiple remote machine types
US5918051A (en) 1995-07-19 1999-06-29 Ricoh Company, Ltd. Object-oriented communication system with support for multiple remote machine types
US5732261A (en) * 1995-07-19 1998-03-24 Ricoh Company, Ltd. Method of using an object-oriented communication system with support for multiple remote machine types
US5737607A (en) * 1995-09-28 1998-04-07 Sun Microsystems, Inc. Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats
US5732263A (en) * 1995-10-03 1998-03-24 International Business Machines Corporation Systems, methods and computer program products for generating and validating user defined object classes in an object oriented programming environment after build time
FR2742245B1 (fr) * 1995-12-08 1998-01-23 Transtar Procede de manipulation de modeles de donnees utilises en genie logiciel
US6067413A (en) * 1996-06-13 2000-05-23 Instantations, Inc. Data representation for mixed-language program development
JPH10133712A (ja) * 1996-10-31 1998-05-22 Sony Corp 情報処理システム及び情報処理方法
AU5355098A (en) * 1996-11-14 1998-06-03 Alcatel Usa Sourcing, L.P. Generic software state machine and method of constructing dynamic objects for an application program
US6240466B1 (en) * 1997-04-21 2001-05-29 International Business Machines Corporation Object-oriented apparatus and method for determining new object location relative to an existing object
US6378001B1 (en) * 1997-06-18 2002-04-23 International Business Machines Corp. Collaborative framework with shared objects
GB2335763A (en) * 1998-03-27 1999-09-29 Ibm Facilitating polymorphic behaviour from static object interfaces in data processing
US6243860B1 (en) * 1998-10-30 2001-06-05 Westinghouse Electric Company Llc Mechanism employing a memory area for exchanging information between a parent process and a child process compiled during execution of the parent process or between a run time compiler process and an application process
US6668284B1 (en) 1998-11-04 2003-12-23 Beckman Coulter, Inc. Software messaging system
US6779184B1 (en) * 1999-01-21 2004-08-17 Oracle International Corporation Method for loosely coupling object oriented and non-object oriented applications in a messaging-based communication infrastructure
US6978464B1 (en) * 1999-10-07 2005-12-20 Sprint Communications Company L.P. Communicating between a process and a destination
US6658642B1 (en) 2000-06-21 2003-12-02 International Business Machines Corporation System, method and program product for software development
GB0023169D0 (en) * 2000-09-20 2000-11-01 Ibm Message parsing in message processing systems
US7313593B1 (en) 2000-10-24 2007-12-25 International Business Machines Corporation Method and apparatus for providing full duplex and multipoint IP audio streaming
US7844957B2 (en) * 2005-08-19 2010-11-30 Sybase, Inc. Development system with methodology providing optimized message parsing and handling
US8484556B2 (en) 2006-08-22 2013-07-09 Autodesk, Inc. Drawing interoperability between different computer-aided design applications
US20090100439A1 (en) * 2007-10-12 2009-04-16 Mcneil Donald H Information engine
US20090271765A1 (en) * 2008-04-29 2009-10-29 Microsoft Corporation Consumer and producer specific semantics of shared object protocols
US20120159515A1 (en) * 2010-12-16 2012-06-21 Microsoft Corporation Sharing object representations
US8719539B2 (en) * 2011-06-30 2014-05-06 Red Hat, Inc. Using heuristics for field types of a structure to categorize dynamic memory allocations
US8725978B2 (en) * 2011-06-30 2014-05-13 Red Hat, Inc. Using symbol information for categorization of dynamic memory allocations
US10346183B2 (en) * 2017-11-17 2019-07-09 Aetna Inc. Reusable dynamic object in runtime environment
CN111797090B (zh) * 2019-09-16 2022-07-22 厦门雅基软件有限公司 描述信息的存储方法、描述信息的访问方法和装置
CN112035278B (zh) * 2020-08-20 2024-04-02 北京字节跳动网络技术有限公司 函数的执行方法、装置、设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4943932A (en) * 1986-11-25 1990-07-24 Cimflex Teknowledge Corporation Architecture for composing computational modules uniformly across diverse developmental frameworks
JPS647231A (en) * 1987-06-30 1989-01-11 Toshiba Corp Parallel processing device for object directional system
US5067072A (en) * 1987-11-06 1991-11-19 Visystems, Inc. Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies
US5187787B1 (en) * 1989-07-27 1996-05-07 Teknekron Software Systems Inc Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
US5247650A (en) * 1989-08-30 1993-09-21 Industrial Technology Institute System for combining originally software incompatible control, kinematic, and discrete event simulation systems into a single integrated simulation system

Also Published As

Publication number Publication date
EP0495279A1 (en) 1992-07-22
US5606700A (en) 1997-02-25
DE69126857T2 (de) 1998-01-08
DE69126857D1 (de) 1997-08-21
EP0495279B1 (en) 1997-07-16
US5511199A (en) 1996-04-23
JPH04277838A (ja) 1992-10-02

Similar Documents

Publication Publication Date Title
JPH0693227B2 (ja) データ処理システム、及びデータ処理システムを動作させる方法
US5692183A (en) Methods and apparatus for providing transparent persistence in a distributed object operating environment
US6810522B2 (en) Method and system for associating parameters of containers and contained objects
US5911068A (en) Container independent control architecture
CA2099918C (en) Method and system for naming and binding objects
US6401101B1 (en) Method, server/computer and data structure for implementation of complex objects in an object-oriented database
US5689664A (en) Interface sharing between objects
JP2680255B2 (ja) オブジェクト指向環境においてデータを転送するためのシステム及び方法
US8191077B2 (en) Method for providing stand-in objects
EP0733970B1 (en) Methods and apparatus for managing collections of objects
EP0660231A2 (en) Method and system for dynamically generating object connections
US6792606B2 (en) Method and apparatus for object persistence
JPH0756643B2 (ja) オブジェクト指向インタフェース標準を与えるシステムおよび方法
JPH03231352A (ja) オブジェクトクラス定義情報実装装置
JPH0687222B2 (ja) アプリケーションとデータベース管理システム間の相互通信システム及び方法
WO2005085995A1 (en) Method, system, and program for invoking methods between computer languages
JP2000187594A (ja) インタ―フェ―スのランタイム付加
US6208994B1 (en) Supporters providing extensible classes without recoding for object-oriented applications
US6223227B1 (en) Method for providing stand-in objects
JPH08202551A (ja) インターフェース継承を伴うオブジェクト上での呼出しのための方法および機構
US20110296438A1 (en) Creating an object in an object-oriented programming platform
KR100624512B1 (ko) 객체지향성 프로그래밍 구현을 위한 방법 및 이를 위한 구조체가 저장되는 메모리
CN117519879A (zh) 自定义对象的加载方法、系统、设备及存储介质
JPH0934710A (ja) オブジェクト指向プログラミング方法
JPH03157729A (ja) 多重継承制御方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees