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

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

Info

Publication number
JPH04277838A
JPH04277838A JP3282046A JP28204691A JPH04277838A JP H04277838 A JPH04277838 A JP H04277838A JP 3282046 A JP3282046 A JP 3282046A JP 28204691 A JP28204691 A JP 28204691A JP H04277838 A JPH04277838 A JP H04277838A
Authority
JP
Japan
Prior art keywords
class
description
message
function
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3282046A
Other languages
English (en)
Other versions
JPH0693227B2 (ja
Inventor
Martin West Andrew
アンドルー、マーチン、ウエスト
Anthias Tefcros
テフクロス、アンティアス
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)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

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++等その生産言語にあるが、新しいコードはS
malltalk のようなそれとは異なるより適切な
言語で試作できる。本発明は、クラス階層が異なる言語
にわたることを可能にもする。第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がメモリにロードされ、クラス
定義のアドレスを戻す環境マッピングファンクション(
EMF)スタブにメッセージを送ることによりその定義
が発見される。EMFスタブは、それぞれインスタンス
メッセージとクラスメッセージに対応する2つの入力点
「classname 」と「_classname 
」をもつ。 2.クラスCがスーパークラスBをもつので、クラスB
はメモリにロードされ、クラスの定義が発見され、クラ
スBの定義のアドレスがクラスCの定義にセーブされる
。 3.同様に、階層の該当ブランチのすべてのスーパーク
ラスがロードされ発見されるまでステップ2は繰り返さ
れる。本例では、この処理はクラスAをロードした後で
停止する。 4.階層の該当ブランチのすべてのインスタンス変数の
長さが計算される。本例では、4+12+8(図2の(
al))。 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)は、新メッセージを処理するときに、S
malltalk 環境のこのクラスのSmallta
lk オブジェクトを作成する。それは以下のステップ
によって行なわれる。 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 のPMPLU
Sメッセージハンドラにメッセージを送る。 3.PMPLUS Smalltalkメッセージハン
ドラはそのメッセージを受け取り、その指標が有効でオ
ブジェクトがメッセージを処理することを確認する。 4.オブジェクトがそのメッセージを処理しない場合、
「メッセージ未発見」の指示が(メッセージ送信処理に
)戻される。メッセージの探索は、第1の例のステップ
6cと6dにおけるようにクラス階層の上に向かって継
続する。 5.そうでない場合、クラス定義に前もって定義され含
まれたメッセージパラメータ記述子を用いてSmall
talk 環境にマップされる。 6.Smalltalk メッセージが実行され、戻り
値が呼出しファンクションに戻される。 7.Smalltalk 方法は、ある処理を実行しメ
ッセージをそのスーパークラスに送るために選ぶことが
可能である。PMPLUS SendMsgSuper
 ファンクションを用いてこれが実行される。すべての
PMPLUSファンクションは、プレゼンテーションマ
ネージャAPIが定義されるのと同じ方法でSmall
talk 環境で定義される。SendMsgSupe
r処理はSendMsg ファンクションと非常に良く
にている、ただしメッセージの探索は、SendMsg
Super呼出しプログラムのスーパークラス(この場
合クラスB)で始まる。以後の処理は第3の例に記載さ
れている、ただし更新ファンクションが呼び出される。
【0021】第5の例は、Cオブジェクトにメッセージ
への送付を記載している。強調メッセージがオブジェク
トYに送られる。 1.SendMsg ファンクションはオブジェクト処
理からクラス定義のアドレスを獲得し、その定義により
指定されたEMFルーチン(e2)を呼び出す。 2.メッセージは最初に、第4の例のように、Smal
ltalk クラスDに送られる。 3.メッセージはSmalltalk クラスにより処
理されないので、メッセージがクラスBの定義を介して
C言語EMF共通ルーチン(e3)に送られる。 4.C言語EMF共通ルーチン(e3)は、クラスBの
クラス定義の中に強調メッセージを発見する。 5.該ルーチンは、インスタンス変数領域の基底アドレ
スにインスタンス変数オフセットを追加してクラスBの
インスタンス変数のアドレスを計算する。 6.(アドレスがメッセージ表にある)ファンクション
は、オブジェクト処理により、SendMsg 呼出し
からインスタンス変数のアドレスとパラメータを呼び出
す。
【0022】これまで、本発明の動作と環境の境界を越
える問題を解決する方法を記載するのにOS/2環境を
用いてきた。OS/2プログラミングに関するより詳細
な情報は、Microsoft Press 刊、Ch
arlesPetzold 著、「OS/2Prese
ntation Manager」(ISBN 1−5
5615−170−5)に見いだされ、Smallta
lk のより詳細な情報は、Digitalk社刊の「
Tutorial and  Programming
 Handbook」と呼ばれるSmalltalk/
VPM と一緒に発刊されたマニュアルに見いだされる
。Smalltalk 環境の他の解決方は、Smal
ltalk ウインドウ処理を獲得するように動的デー
タ交換(DDE)を使用し、Smalltalk でP
MPLUSメッセージを通信するDDEファンクション
を使用することである。
【0023】開発された解決法は、ウインドウ、X−W
indows、MOTIF、大型コンピュータ用のオペ
レーティングシステムなどの他のワークステーション環
境に同様に適用できる(ウインドウズはマイクロソフト
社の商標であり、XーWINDOWSはAT&T社の商
標で、MOTIFはOpen Software Fo
undationの商標である)。
【図面の簡単な説明】
【図1】単純なクラス階層を示す図。
【図2】単純なクラス階層の背後の内部構造とクラス記
述(オブジェクト記述を含む)を示す図。

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 true JPH04277838A (ja) 1992-10-02
JPH0693227B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998019236A1 (fr) * 1996-10-31 1998-05-07 Sony Corporation Systeme et procede de traitement d'informations

Families Citing this family (41)

* 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
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998019236A1 (fr) * 1996-10-31 1998-05-07 Sony Corporation Systeme et procede de traitement d'informations

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
JPH0693227B2 (ja) 1994-11-16
US5511199A (en) 1996-04-23

Similar Documents

Publication Publication Date Title
JPH04277838A (ja) データ処理システム、及びデータ処理システムを動作させる方法
US6067578A (en) Container independent control architecture
JP3072709B2 (ja) 要求伝達方法
US5689664A (en) Interface sharing between objects
US5613148A (en) Method and apparatus for activating and executing remote objects
JP4146983B2 (ja) サーバ・オブジェクトのメソッドを呼び出すプロセス方法及びデータ処理システム
EP0660231B1 (en) Method and system for dynamically generating object connections
EP0669020B1 (en) Methods for marshalling interface pointers for remote procedure calls
US5581760A (en) Method and system for referring to and binding to objects using identifier objects
US5848419A (en) Methods and apparatus for providing transparent persistence in a distributed object operating environment
US6167565A (en) Method and system of custom marshaling of inter-language parameters
US6226690B1 (en) Method and apparatus for utilizing proxy objects to communicate with target objects
US8191077B2 (en) Method for providing stand-in objects
US6792606B2 (en) Method and apparatus for object persistence
US6578090B1 (en) System and method for interfacing two modules supporting various applications
JPH0687222B2 (ja) アプリケーションとデータベース管理システム間の相互通信システム及び方法
JPH0836493A (ja) オブジェクト集合方法及びシステム
JP2001125787A (ja) プログラム・オブジェクトのシリアライゼーション方法、およびプログラム・オブジェクトのデシリアライゼーション方法
WO2005085995A1 (en) Method, system, and program for invoking methods between computer languages
US6405363B1 (en) Class casting support for run-time extensible items in an object oriented framework
US6208994B1 (en) Supporters providing extensible classes without recoding for object-oriented applications
US6223227B1 (en) Method for providing stand-in objects
US6799320B1 (en) Providing binding options for component interfaces
JP4084956B2 (ja) オブジェクト集合方法およびシステム
JPH08202551A (ja) インターフェース継承を伴うオブジェクト上での呼出しのための方法および機構

Legal Events

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