JP3018992B2 - オブジェクト指向言語の実行処理方式 - Google Patents

オブジェクト指向言語の実行処理方式

Info

Publication number
JP3018992B2
JP3018992B2 JP8188574A JP18857496A JP3018992B2 JP 3018992 B2 JP3018992 B2 JP 3018992B2 JP 8188574 A JP8188574 A JP 8188574A JP 18857496 A JP18857496 A JP 18857496A JP 3018992 B2 JP3018992 B2 JP 3018992B2
Authority
JP
Japan
Prior art keywords
class
information
class information
information storage
storage device
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
JP8188574A
Other languages
English (en)
Other versions
JPH1021077A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP8188574A priority Critical patent/JP3018992B2/ja
Publication of JPH1021077A publication Critical patent/JPH1021077A/ja
Application granted granted Critical
Publication of JP3018992B2 publication Critical patent/JP3018992B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オブジェクト指向
言語の実行処理方式に関する。
【0002】
【従来の技術】従来技術を説明する前に、本発明の対象
となっているオブジェクト指向言語について、簡単に説
明する。
【0003】オブジェクト指向言語において、オブジェ
クトとは、データとそのデータを処理する手続きの論理
的な融合体である。この手続きのことをメソッドと呼
ぶ。実行時にメモリ上に生成されるオブジェクトは、或
るクラスに属している。クラスには、そのクラスから生
成されるオブジェクト(これをインスタンスという)に
共通の性質となるオブジェクトデータの型やメソッドの
振る舞い等が記述されている。また、オブジェクト指向
言語には、クラスを定義する時に、別のクラスのメソッ
ドを継承する機能がある。別のクラス(これをスーパー
クラスという)から継承したメソッドは、継承したクラ
ス(これをサブクラスという)のメソッドとして使用で
きる。このオブジェクトに対してメッセージと呼ばれる
処理依頼を行うことにより、プログラムが実行される。
つまり、メッセージを受け取ったオブジェクトは、要求
されたメッセージに対応するメソッドを選択し実行す
る。
【0004】さて、このようなオブジェクト指向言語の
従来の実行処理方式においては、例えば特開平5−20
082号公報に見られるように、生成されたオブジェク
トのクラス情報を、そのオブジェクト自身で保持する構
成が採用されていた。このとき、クラス情報の持ちかた
には、以下の2通りの方式があるので、それらの方式に
ついて説明しておく。
【0005】一つの方式は、図9に示すように、オブジ
ェクト100に、そのオブジェクトが属するクラスのク
ラス情報101が存在する領域のポインタ102を持た
せ、また、スーパークラスがある場合、クラス情報10
1内にそのスーパークラスのクラス情報103が存在す
る領域のポインタ104を持たせる方式(以下、従来方
式(1)と称す)である。この方式では、オブジェクト
は要求されたメッセージに対するメソッドを以下のよう
に検索する。
【0006】まず、オブジェクト100は、初めに自分
が属するクラスのクラス情報101をポインタ102を
たどって参照し、その中にメッセージに対応するメソッ
ドが存在するか否かを調べる。見つかったら検索を終了
するが、見つからなければポインタ104をたどってス
ーパークラスのクラス情報103を参照して、その中に
メッセージに対応するメソッドが存在するか否かを調べ
る。そして、ここでも見つからなければ、さらにそのク
ラスのスーパークラスを検索していく。このように、
(1)の方式でのメソッドの検索は、処理が複雑であ
り、実行時においてクラスおよびスーパークラスのクラ
ス情報へのポインタ設定処理も必要となる。
【0007】他の一つの方式は、図10に示すように、
オブジェクト200に、そのオブジェクトが属するクラ
スのクラス情報201および全てのスーパークラスのク
ラス情報202を持たせる方式(以下、従来方式(2)
と称す)である。オブジェクトが要求されたメッセージ
に対するメソッドを検索する場合、この従来方式(2)
にあっては、いずれのクラス情報に対してもポインタを
たどる必要はない。しかし、スーパークラスのクラス情
報202が静的にオブジェクト200内に取り込まれて
いるため、スーパークラスを修正した場合、オブジェク
ト200が持つスーパークラスのクラス情報202も修
正が必要となり、クラスの変更に対する柔軟性に欠け
る。また、自分が属するクラスのクラス情報201およ
び全てのスーパークラスのクラス情報202をオブジェ
クト毎に持つため、同一の情報が重複して存在すること
になり、メモリの使用効率が低下する。
【0008】
【発明が解決しようとする課題】上述したように、従来
は、図9および図10に示したような方式によってオブ
ジェクトのクラス情報をそのオブジェクト自身で保持す
る構成を採用している。このため、クラス情報を一元管
理することができず、クラス情報の管理が容易でない。
また、生成されたオブジェクトに影響を与えずにクラス
情報を修正し変更することが困難である。
【0009】そこで本発明の目的は、クラス情報をクラ
ス情報格納手段で一元的に管理することにより、クラス
情報の管理を容易にすることにある。
【0010】本発明の別の目的は、メッセージに対応す
るメソッドを検索する処理からオブジェクトを解放し、
オブジェクトはメソッド検索手段に対して問い合わせを
出すだけでメッセージに対応するメソッドを決定するこ
とができるようにすることにある。
【0011】本発明のまた別の目的は、オブジェクトに
影響を与えずにクラス情報の修正や変更が行えるように
することにある。
【0012】本発明のまた更に別の目的は、複数のクラ
ス情報格納手段を動的に切り換えることで、様々な実行
処理システムを容易に実現できるようにすることにあ
る。
【0013】
【課題を解決するための手段】本発明は、オブジェクト
指向言語の実行処理方式において、クラス名とクラス属
性と少なくとも1つのメソッド情報及びメソッド定義と
を含むクラス情報を、各クラスに付与されたクラスID
によって検索可能に保持するクラス情報格納手段と、
ラス定義ソースプログラムのコンパイル時にクラス情報
を抽出して前記クラス情報格納手段に格納するクラス情
報抽出手段と、クラスIDおよびメソッド選択情報を指
定した問い合わせに応答して、前記クラス情報格納手段
中から、そのクラスIDおよびメソッド選択情報に適合
するメソッドを検索するメソッド検索手段と、前記メソ
ッド検索手段による前記クラス情報格納手段へのアクセ
スと前記クラス情報抽出手段による前記クラス情報格納
手段へのアクセスとの排他制御を行う排他制御手段と、
クラスIDを保持し、メソッド選択情報を含むメッセー
ジの受信時に、クラスIDおよびメソッド選択情報を指
定した問い合わせを前記メソッド検索手段に出し、検索
されたメソッドを実行するオブジェクトとを含むことを
特徴とする。
【0014】このような構成にあっては、各クラスのク
ラス情報がクラス情報格納手段にまとめて格納されてい
るため、クラス情報の一元管理が可能となり、クラス情
報の管理が容易となる。また、オブジェクトは、メソッ
ド検索手段に対して問い合わせを行うだけで、受信した
メッセージに対応するメソッドを決定することができ
る。なお、クラス情報格納手段に格納されている個々の
クラス情報におけるメソッド情報としては、例えば、メ
ソッド名,メソッド属性,メソッドパラメータ情報,メ
ソッド戻り値情報,およびメソッド定義の主記憶へのロ
ーディングの有無ならびにローディング済みのときはそ
の位置を示すアドレスを表すメソッド定義のアドレスと
が含まれる。また、オブジェクトが問い合わせ時に出す
メッセージ選択情報としては、メッセージ中に含まれて
いた例えばメソッド名,メソッドパラメータおよびメソ
ッド戻り値に関する情報が用いられる。このような場
合、メソッド検索手段は、クラスIDおよびメソッド選
択情報を指定した問い合わせに応答して、クラス情報格
納手段からそのクラスIDを持つクラスのクラス情報お
よびそのクラスのスーパークラスのクラス情報を検索
し、且つ、そのクラス情報中から前記メソッド選択情報
に適合するメソッド情報を選択し、該メソッド情報中の
メソッド定義のアドレスが主記憶にローディング済みの
メソッド定義のアドレスを示すときは、そのアドレスを
回答し、メソッド定義のアドレスが未ローディングを示
すNULL値のときは、メソッド定義をローディングし
た後にそのアドレスを回答する。
【0015】また、本発明は、クラス定義ソースプログ
ラムのコンパイル時にクラス情報を抽出して前記クラス
情報格納手段に格納するクラス情報抽出手段を備えるこ
とによって、クラスが定義されているソースプログラム
のコンパイル時に自動的にクラス情報を抽出してクラス
情報格納手段に格納できる。
【0016】さらに、本発明は、前記メソッド検索手段
による前記クラス情報格納手段へのアクセスと前記クラ
ス情報抽出手段による前記クラス情報格納手段へのアク
セスとの排他制御を行う排他制御手段を備えることに
り、メソッド検索手段とクラス情報抽出手段とを並行し
て動作させても、クラス情報抽出手段によるクラス情報
の変更,修正中にメソッド検索手段による同クラス情報
の参照が行われることがなくなり、各オブジェクトがク
ラス情報へのポインタやクラス情報自体を持たずクラス
IDだけを持つことと相まって、オブジェクトに影響を
与えずにシステム動作中におけるクラス情報の変更,修
正が可能となる。
【0017】
【0018】
【0019】
【発明の実施の形態】次に本発明の実施の形態の例につ
いて図面を参照して詳細に説明する。
【0020】図1は本発明の一実施例のブロック図であ
る。本実施例のオブジェクト指向言語の実行処理方式
は、同図に示されるように、各クラス毎のクラス情報3
1をクラスIDで検索可能に格納するクラス情報格納装
置3と、クラス定義ソースプログラム1のコンパイル時
にクラス情報を抽出してクラス情報格納装置3に格納す
るクラス情報抽出手段2と、クラスIDおよびメソッド
選択情報を指定した問い合わせに対してクラス情報格納
装置3中から、そのクラスIDおよびメソッド選択情報
に適合するメソッドを検索するメソッド検索手段5と、
オブジェクトデータ41およびクラスID42を保持
し、メソッド選択情報を含むメッセージ6の受信時に、
クラスID42およびメソッド選択情報を指定した問い
合わせをメソッド検索手段5に出し、検索されたメソッ
ドを実行する複数のオブジェクト4と、メソッド検索手
段5によるクラス情報格納装置3へのアクセスとクラス
情報抽出手段2によるクラス情報格納装置3へのアクセ
スとの排他制御を行う排他制御手段7とから構成されて
いる。
【0021】以下、このように構成された本実施例のオ
ブジェクト指向言語の実行処理方式の各部の詳細な機能
をその動作と共に説明する。
【0022】まず、クラス定義ソースプログラム1,ク
ラス情報抽出手段2,クラス情報格納装置3について説
明する。
【0023】クラス定義ソースプログラム1は、クラス
が定義されているソースプログラムであり、オブジェク
トデータの型,メソッドの定義,スーパークラスの指定
等が記述されている。或るオブジェクト指向言語では、
クラス自身もオブジェクトとなる。このとき、クラスオ
ブジェクトデータの型やクラスメソッドの定義も記述さ
れている。
【0024】クラス情報抽出手段2は、クラス定義ソー
スプログラム1をコンパイルする図示しないコンパイラ
内に設けられており、コンパイラがクラス定義ソースプ
ログラム1をコンパイルするときに動作し、定義された
クラス情報をクラス情報格納装置3に格納する。
【0025】図2はクラス情報抽出手段2の処理例を示
すフローチャートである。クラス情報抽出手段2はクラ
ス定義ソースプログラム1から1つのクラス情報を抽出
すると(S1)、その登録を行うために、まず排他制御
手段7に対してクラス情報格納装置3のロックを要求
し、クラス情報格納装置3のロックを取得する(S
2)。クラス情報格納装置3のロックを取得するのは、
本実施例ではオブジェクト4の生成後のシステム実行中
においてもクラス情報の追加,修正,変更を可能として
おり、システム実行中においてはメソッド検索手段5が
クラス情報格納装置3をアクセスするため、変更中のク
ラス情報をメソッド検索手段5がアクセスしないように
するためである。
【0026】クラス情報抽出手段2はクラス情報格納装
置3のロックを取得すると、今回抽出したクラス情報の
クラス名と同一のクラス名を持つクラス情報がクラス情
報格納装置3に登録されているか否かを調べる(S
3)。同一のクラス名のクラス情報が登録されていない
ときは、新規登録とみなし、今回のクラスに対して連番
で表されるクラスIDを採番し(S4)、このクラスI
Dに関連づけて今回抽出したクラス情報をクラス情報格
納装置3に登録する(S5)。そして、排他制御手段7
に対してロック解除を要求してクラス情報格納装置3の
ロックを解除し(S7)、今回抽出したクラス情報の格
納処理を終える。他方、同一のクラス名のクラス情報が
既に登録されているときは、クラス情報の修正とみな
し、クラス情報格納装置3に登録されている同一クラス
名のクラス情報を今回のクラス情報で更新する(S
6)。そして、クラス情報格納装置3のロックを解除し
て(S7)、今回抽出したクラス情報の格納処理を終え
る。
【0027】図3はクラス情報格納装置3に格納される
クラス情報の構成例を示す図である。同図に示すよう
に、1つのクラス情報31は、クラスID311,クラ
ス名312,クラス属性313,1つ以上のメソッド情
報314,このメソッド情報314の数だけのメソッド
定義315から構成される。
【0028】クラス情報31において、クラスID31
1はクラス情報抽出手段2によって採番されたユニーク
なIDを示し、クラス名312は当該クラス情報にかか
るクラスの名前である。またクラス属性313は当該ク
ラスの属性を示し、スーパークラス数やスーパークラス
のクラスID,メソッド数等が設定される。メソッド定
義315はメソッドを定義した部分で、後述するように
オブジェクト4によって実行される手続きが記述されて
いる。
【0029】メソッド情報314は、図3に示すよう
に、メソッド名3141,メソッド属性3142,メソ
ッドパラメータ情報3143,メソッド戻り値情報31
44,メソッド定義のアドレス3145で構成される。
メソッド名3141はメソッドの名前、メソッド属性3
142は当該メソッドを外部に公開するか否かの情報や
当該メソッドが再定義メソッドか否かを示す情報、メソ
ッドパラメータ情報3143はメソッド実行時に受け取
る引数に関する情報、メソッド戻り値情報3144はメ
ソッド実行終了時に返却すべき戻り値に関する情報であ
る。また、メソッド定義のアドレス3155は、メソッ
ド定義が既に主記憶(図示せず)にローディングされて
いるときはそのローディング位置を示すアドレスが、未
ローディングのときは例えばNULL値が設定される。
【0030】図4はクラス定義ソースプログラム1の一
例を示す。このようなクラス定義ソースプログラム1が
コンパイルされたとき、クラス情報抽出手段2は図5に
示すような2つのクラス情報をクラス情報格納装置3に
登録する。一つは、クラス名がcls1のクラス情報で
あり、他の一つはクラス名がcls2のクラス情報であ
る。それぞれクラスIDとしては、00001,000
02が付与されている。また、クラスcls1にはスー
パークラスがないため、スーパークラス数は0,スーパ
ークラスを指し示すクラスIDはNULL値となってお
り、2つのメソッドmethod−1,method−
2を持つため各々のメソッド情報とメソッド定義とが記
述され、メソッド数は2になっている。他方、クラスc
ls2にはスーパークラスとしてクラス名cls1が定
義されているので、スーパークラス数は1,スーパーク
ラスを指し示すクラスIDは00001になっており、
3つのメソッドmethod−2,method−3,
method−4を持つため各々のメソッド情報とメソ
ッド定義とが記述され、メソッド数は3になっている。
なお、図4,図5ではメソッド情報,メソッド定義はそ
の内容を例示せず、method−1等として抽象的に
示してある。
【0031】図3および図5に示すようなクラス情報を
格納するクラス情報格納装置3は、各クラスに付与され
たクラスIDによってクラス情報が検索できるようなフ
ァイル、例えばクラスIDによって索引することのでき
る索引順編成ファイルで構成される。
【0032】次に、オブジェクト4,メソッド検索手段
5について説明する。
【0033】本実施例におけるオブジェクト4は、その
生成時に、オブジェクトデータ41と、そのオブジェク
トを生成したクラスのクラスID42とをオブジェクト
内に保持するようにする。従来方式(2)のようにクラ
ス情報は保持せず、また従来方式(1)のようにクラス
情報へのポインタも保持しない。これによって、クラス
の管理と実行時のクラス情報の参照とを分離でき、実行
時のクラス修正および変更が可能となる。
【0034】オブジェクト指向言語では、このオブジェ
クト4にメッセージ6を送ることによりプログラムの実
行が処理される。メッセージ6では、宛先のオブジェク
ト4を示すオブジェクト識別子以外に、実行するメソッ
ドを定めるためのメソッド選択情報が含まれる。メソッ
ド選択情報としては、メソッド名,メソッドパラメータ
に関する情報,メソッドの戻り値の項目等がある。
【0035】オブジェクト4は、メッセージ6を受け取
ると、自オブジェクト4が保有するクラスID42とメ
ッセージ6中のメソッド選択情報とを指定した問い合わ
せをメソッド検索手段5に出す。メソッド検索手段5
は、この問い合わせに対して、クラス情報格納装置3中
から、そのクラスIDおよびメソッド選択情報に適合す
るメソッドを検索する。オブジェクト4は、この検索さ
れたメソッドを実行する。
【0036】図6はメソッド検索手段5の処理例を示す
フローチャートである。メソッド検索手段5は、オブジ
ェクト4から問い合わせがあると、先ず、排他制御手段
7に対してクラス情報格納装置3のロックを要求し、ク
ラス情報格納装置3のロックを取得する(S11)。次
に、オブジェクト4から通知されたクラスIDを持つク
ラス情報をクラス情報格納装置3から検索し(S1
2)、この検索したクラス情報中に、オブジェクト4か
ら通知されたメソッド選択情報に適合するメソッド情報
が存在するか否かを調べる(S13)。すなわち、メソ
ッド選択情報として、メソッド名,メソッドパラメー
タ,メソッド戻り値に関する情報が指定されている場
合、図3に示したクラス情報31に含まれるメソッド情
報314のうち、メソッド名3141が通知されたメソ
ッド名と一致し、メソッドパラメータ情報3143が通
知されたメソッドパラメータに関する情報に適合し、メ
ソッド戻り値情報3144が通知されたメソッド戻り値
に関する情報に適合するメソッド情報314を探索す
る。そして、適合するメソッド情報314が存在する場
合は、そのメソッド情報314中に記述されているメソ
ッド定義のアドレス3145がNULL値であれば、当
該メソッド情報314に対応するメソッド定義315を
主記憶にローディングし、このローディングした位置を
示すアドレスをメソッド定義のアドレス3145に設定
すると共にオブジェクト4に回答する(S14)。ま
た、そのメソッド定義のアドレス3145がNULL値
でなければ、既にローディング済みなので、メソッド定
義のアドレス3145に設定されているアドレスをオブ
ジェクト4に回答する(S14)。そして、排他制御手
段7にロック解除を要求してクラス情報格納装置3のロ
ックを解除し(S18)、今回の問い合わせ処理を終了
する。
【0037】他方、通知されたクラスIDのクラス情報
中に適合するメソッド情報が存在しなかった場合は、そ
のクラス情報中にスーパークラスが定義されているか否
かを調べ(S15)、定義されていればそのスーパーク
ラスのクラス情報をクラス情報格納装置3から検索する
(S16)。そして、この検索したスーパークラスのク
ラス情報中に、オブジェクト4から通知されたメソッド
選択情報に適合するメソッド情報が存在するか否かを調
べ(S13)、適合するメソッド情報が存在した場合に
はそのメソッド情報中に記述されているメソッド定義の
アドレスの値がNULLか否かによって、必要に応じて
メソッド定義のローディングを行って、そのアドレスを
オブジェクト4に回答する(S14)。また、このスー
パークラスのクラス情報にも適合するメソッド情報が存
在しなければ、更にスーパークラスがあればそれを検索
して同様の処理を繰り返す。
【0038】なお、通知されたクラスIDのクラス情報
中に適合するメソッド情報が存在せず、そのクラスにス
ーパークラスがないか、あってもそのスーパークラスの
クラス情報にも適合するメソッド情報が存在しない場合
には、適合するメソッド定義が存在しない旨をオブジェ
クト4に回答し(S17)、クラス情報格納装置3のロ
ックを解除して(S18)、処理を終える。
【0039】メソッド検索手段5からメソッド定義のア
ドレスの回答を受けたオブジェクト4は、そのアドレス
に従ってメソッドの動的リンクを行い、メソッドを実行
することにより、受け付けたメッセージ6にかかる処理
を実行する。他方、適合するメソッド情報が存在しない
との回答を得た場合には、メッセージ6に対してエラー
を返す。
【0040】例えば、クラスID=00002を持つオ
ブジェクト4があるとし、このオブジェクト4に対し
て、メソッドmethod−3を選択するためのメソッ
ド選択情報を含むメッセージ6が送られたとすると、こ
のメソッド選択情報とクラスID=00002とを含む
問い合わせがメソッド検索手段5に出される。このと
き、クラス情報格納装置3の内容が図5に示したもので
あるとすると、メソッド検索手段5は、クラスID=0
0002中のクラス情報を検索し、その中からメソッド
選択情報に適合するメソッド情報metod−3を見つ
け、そのメソッド定義のアドレスを回答する。
【0041】他方、同じオブジェクト4に対して、メソ
ッドmethod−1を選択するためのメソッド選択情
報を含むメッセージ6が送られた場合、このメソッド選
択情報とクラスID=00002とを含む問い合わせが
メソッド検索手段5に出され、メソッド検索手段5はク
ラスID=00002中のクラス情報を検索し、その中
からメソッド選択情報に適合するメソッド情報を探す
が、該当するメソッド情報は図5の場合存在しない。そ
こで、メソッド検索手段5は、スーパークラスの定義に
従って、クラスID=00001のクラスのクラス情報
を検索し、その中からメソッド選択情報に適合するメソ
ッド情報method−1を見つけ、そのメソッド定義
のアドレスを回答する。
【0042】以上のように本実施例では、クラス情報が
クラス情報格納装置3で一元管理されるため、クラス情
報を重複して持つことはない。また、実行時のスーパー
クラスへのポインタ設定も必要ない。これは、クラス情
報が一つのクラスで独立しており、クラスIDによって
のみ参照されるからである。また、オブジェクト4が保
持しているのはクラスIDであり、クラス情報自体やク
ラス情報へのポインタを保持していないので、オブジェ
クト4が生成された後のシステム実行中においても、オ
ブジェクト4に影響を与えることなく、クラス情報抽出
手段2によってクラス情報格納装置3中のクラス情報の
修正,変更が可能となる。
【0043】なお、図1では、1つのクラス情報格納装
置3にシステム内の全クラス情報を格納するようにし
た。しかし、大規模なシステムにおいては、資源の管理
上、クラス情報格納装置が物理的に複数存在する可能性
もある。図7は、このように複数のクラス情報格納装置
3−1〜3−nで実質的に1つのクラス情報格納装置3
を構築した実施例であり、システム内の全クラス情報が
複数のクラス情報格納装置3−1〜3−nに分散して格
納されている。従って、メソッド検索手段5は、その各
々に対して検索を実行することになる。オブジェクト指
向においては、そのシステムのサービスのみ外部に公開
し、その実装方式は隠蔽する。図7の実施例において
も、クラス情報格納装置が複数存在することは、クラス
情報格納装置内の問題であり、クラス情報格納装置を利
用するオブジェクトは関知しない。
【0044】図8は本発明の別の実施例のブロック図で
ある。この実施例は、それぞれ異なる装置IDを割り当
てた複数のクラス情報格納装置3−1〜3−mを備えて
いる。各クラス情報格納装置3−1〜3−mはそれぞれ
別々の実行処理システム用のものであり、その実行処理
システムにおける全クラスのクラス情報を保持する。他
方、各オブジェクト4は、オブジェクトデータ41とク
ラスID42とに加え、更に複数のクラス情報格納装置
3−1〜3−mの何れかに割り当てられた装置IDを保
有している。また、各オブジェクト4は、メソッド検索
手段5に問い合わせを行う際、前述したメソッド選択情
報とクラスID42とに加えて、自らが保有する装置I
D43を指定し、メソッド検索手段5は、装置ID43
によって複数のクラス情報格納装置3−1〜3−mの中
から1つのクラス情報格納装置を選択した後、図6に示
した処理でメソッドの選択を行う。
【0045】この図8の実施例では、オブジェクト群
(4)とクラス情報格納装置3−1〜3−mとを組み合
わせることで、様々な実行処理システムを簡単に構築す
ることができる。また、実行時に問い合わせを行うクラ
ス情報格納装置の設定を変えることにより、動的に実行
処理システムを切り換えることができる。例えば、クラ
ス情報格納装置3−1が或る実行処理システムαに適合
するクラス情報を全て保有しており、クラス情報格納装
置3−mがそれとは異なる或る実行処理システムβに適
合するクラス情報を全て保有しているとし、全てのオブ
ジェクト4が装置ID43としてクラス情報格納装置3
−1に割り当てられた装置IDを保有させた場合、メソ
ッド検索手段5は問い合わせに対してクラス情報格納装
置3−1を検索してメソッド定義を選択するので、当該
システムを実行処理システムαとして機能させることが
できる。反対に全てのオブジェクト4が装置ID43と
してクラス情報格納装置3−mに割り当てられた装置I
Dを保有させた場合、当該システムを実行処理システム
βとして機能させることができる。勿論、全オブジェク
ト4が保有する装置ID43を同じにする必要はなく、
異なる装置IDを持つオブジェクト4を混在させること
も可能である。
【0046】
【発明の効果】以上説明したように本発明によれば下記
の効果を得ることができる。
【0047】各クラスのクラス情報がクラス情報格納手
段にまとめて格納されているため、クラス情報の一元管
理が可能となり、クラス情報の管理が容易となる。ま
た、従来方式(2)のようにクラス情報を重複して持つ
ことがないため、クラス情報のメモリ占有率を低減する
ことができる。
【0048】オブジェクトはメソッド検索手段に対して
問い合わせを出すだけでメッセージに対応するメソッド
を決定することができる。従って、従来方式(1)のよ
うにオブジェクトは複雑なメソッド検索処理を行う必要
がない。
【0049】クラス情報の変更,修正は、クラス情報格
納手段に格納されているクラス情報を変更,修正するだ
けで良く、その際にオブジェクトを変更,修正する必要
がない。また、排他制御手段を備えることによって、オ
ブジェクト生成後のシステム実行中におけるクラス情報
の修正,変更が可能となる。
【0050】
【図面の簡単な説明】
【図1】本発明の一実施例のブロック図である。
【図2】クラス情報抽出手段の処理例を示すフローチャ
ートである。
【図3】クラス情報格納装置に格納されるクラス情報の
構成例を示す図である。
【図4】クラス定義ソースプログラムの一例を示す図で
ある。
【図5】図4のクラス定義ソースプログラムのコンパイ
ル時にクラス情報抽出手段によってクラス情報格納装置
に登録されるクラス情報の例を示す図である。
【図6】メソッド検索手段の処理例を示すフローチャー
トである。
【図7】本発明の別の実施例のブロック図である。
【図8】本発明の更に別の実施例のブロック図である。
【図9】従来のクラス情報の持ちかたの一例の説明図で
ある。
【図10】従来のクラス情報の持ちかたの別の例の説明
図である。
【符号の説明】
1…クラス定義ソースプログラム 2…クラス情報抽出手段 3,3−1〜3−m,3−1〜3−n…クラス情報格納
装置 31…クラス情報 4…オブジェクト 41…オブジェクトデータ 42…クラスID 43…装置ID 5…メソッド検索手段 6…メッセージ 7…排他制御手段
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/44

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 オブジェクト指向言語の実行処理方式に
    おいて、 クラス名とクラス属性と少なくとも1つのメソッド情報
    及びメソッド定義とを含むクラス情報を、各クラスに付
    与されたクラスIDによって検索可能に保持するクラス
    情報格納手段と、クラス定義ソースプログラムのコンパイル時にクラス情
    報を抽出して前記クラス情報格納手段に格納するクラス
    情報抽出手段と、 クラスIDおよびメソッド選択情報を指定した問い合わ
    せに応答して、前記クラス情報格納手段中から、そのク
    ラスIDおよびメソッド選択情報に適合するメソッドを
    検索するメソッド検索手段と、前記メソッド検索手段による前記クラス情報格納手段へ
    のアクセスと前記クラス情報抽出手段による前記クラス
    情報格納手段へのアクセスとの排他制御を行う排他制御
    手段と、 クラスIDを保持し、メソッド選択情報を含むメッセー
    ジの受信時に、クラスIDおよびメソッド選択情報を指
    定した問い合わせを前記メソッド検索手段に出し、検索
    されたメソッドを実行するオブジェクトとを含むことを
    特徴とするオブジェクト指向言語の実行処理方式。
JP8188574A 1996-06-29 1996-06-29 オブジェクト指向言語の実行処理方式 Expired - Fee Related JP3018992B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8188574A JP3018992B2 (ja) 1996-06-29 1996-06-29 オブジェクト指向言語の実行処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8188574A JP3018992B2 (ja) 1996-06-29 1996-06-29 オブジェクト指向言語の実行処理方式

Publications (2)

Publication Number Publication Date
JPH1021077A JPH1021077A (ja) 1998-01-23
JP3018992B2 true JP3018992B2 (ja) 2000-03-13

Family

ID=16226072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8188574A Expired - Fee Related JP3018992B2 (ja) 1996-06-29 1996-06-29 オブジェクト指向言語の実行処理方式

Country Status (1)

Country Link
JP (1) JP3018992B2 (ja)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
「情報処理学会研究報告」Vol.95,No.82(95−PRO−2)(1995−8)P.121−128
「情報処理学会第39回(平成元年後期)全国大会講演論文集」P.1947−1948

Also Published As

Publication number Publication date
JPH1021077A (ja) 1998-01-23

Similar Documents

Publication Publication Date Title
AU638138B2 (en) Methods and apparatus for implementing data bases to provide object-oriented invocation of applications
US5519855A (en) Summary catalogs
AU639802B2 (en) Methods and apparatus for providing dynamic invocation of applications in a distributed heterogeneous environment
EP0471442B1 (en) Method for implementing server functions in a distributed heterogeneous environment
US5133053A (en) Interprocess communication queue location transparency
US5414854A (en) Object-oriental system for managing shared libraries
KR100293795B1 (ko) 분산형데이터베이스시스템및데이터엔티티액세스방법
US7313572B2 (en) Attribute partitioning for user extensibility
JP2001527243A (ja) オブジェクト指向アプリケーション内のクラスに対応するリレーショナル・データベース内のインデックスを生成するための方法及び装置
JPH1063561A (ja) データベース・オブジェクト処理命令を挿入するためにデータベース・アクセス方法を自動的に変更するシステム及び方法
JPH0877023A (ja) ローカル・オブジェクト・アドレス及びグローバル・オブジェクト識別子を結合して単一オブジェクト・ポインタにするためのシステム
JPH11327919A (ja) オブジェクト指向割込みシステム用の方法およびデバイス
JPH06110808A (ja) クライアントインターフェースをアプリケーションのオブジェクト指向呼出しに対処するための方法及び装置
JPH10154095A (ja) 多数ディレクトリサービスに一様にアクセスするための方法及びシステム
JPH0997204A (ja) 分散オブジェクト操作環境において透明性のある不変性を提供する方法および装置
US7543004B2 (en) Efficient support for workspace-local queries in a repository that supports file versioning
US20200342008A1 (en) System for lightweight objects
US20060130034A1 (en) Apparatus, system, and method for providing access to a set of resources available directly to a particular class loader
US20080313623A1 (en) Changing metadata without invalidating cursors
US6513030B2 (en) Persistence storage architecture
US6691121B1 (en) Method and apparatus for online and dynamic extension of IMS data entry databases
JP3018992B2 (ja) オブジェクト指向言語の実行処理方式
US8108831B2 (en) Iterative component binding
JP2001527241A (ja) オブジェクト指向データ依存性に対応するデータベース内の記憶済み手続をロードするための方法及び装置
JP3019915B2 (ja) 手続き呼出し方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080107

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090107

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100107

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees