JP2580536B2 - オブジェクト指向言語における動的オブジェクトの管理方式 - Google Patents
オブジェクト指向言語における動的オブジェクトの管理方式Info
- Publication number
- JP2580536B2 JP2580536B2 JP6121081A JP12108194A JP2580536B2 JP 2580536 B2 JP2580536 B2 JP 2580536B2 JP 6121081 A JP6121081 A JP 6121081A JP 12108194 A JP12108194 A JP 12108194A JP 2580536 B2 JP2580536 B2 JP 2580536B2
- Authority
- JP
- Japan
- Prior art keywords
- class
- instance
- floating
- change
- relationship
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
Description
【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、オブジェクト指向言
語におけるプログラム中のクラスオブジェクト及びイン
スタンスオブジェクトの定義の動的変更を管理するため
の管理方式に関するものである。
語におけるプログラム中のクラスオブジェクト及びイン
スタンスオブジェクトの定義の動的変更を管理するため
の管理方式に関するものである。
【0002】
【従来の技術】オブジェクト指向型言語では、オブジェ
クトを単位として、プログラムの記述を行う。オブジェ
クトは自律性をもつ有機的なプログラムの単位であり、
データと手続きを一体化した形で記述される。プログラ
ム全体としての仕事は、オブジェクト間のメッセージ交
換(message passing)により進められ
る。メッセージを受信することにより起動される手続き
はメソッド(method)と呼ばれる。オブジェクト
への仕事の依頼は、メソッドを介してのみ行うことがで
き、オブジェクト内のデータへの直接のアクセスは禁止
される。また、メッセージおよびメソッドの受信部の記
述形式を、プロトコル(protocol)と呼ぶ。異
なるオブジェクトであっても、同じ種類の仕事を行うメ
ソッドのプロトコルを統一しておくことにより、プログ
ラムの記述性を向上させることができる。
クトを単位として、プログラムの記述を行う。オブジェ
クトは自律性をもつ有機的なプログラムの単位であり、
データと手続きを一体化した形で記述される。プログラ
ム全体としての仕事は、オブジェクト間のメッセージ交
換(message passing)により進められ
る。メッセージを受信することにより起動される手続き
はメソッド(method)と呼ばれる。オブジェクト
への仕事の依頼は、メソッドを介してのみ行うことがで
き、オブジェクト内のデータへの直接のアクセスは禁止
される。また、メッセージおよびメソッドの受信部の記
述形式を、プロトコル(protocol)と呼ぶ。異
なるオブジェクトであっても、同じ種類の仕事を行うメ
ソッドのプロトコルを統一しておくことにより、プログ
ラムの記述性を向上させることができる。
【0003】オブジェクト内では、データの格納場所を
任意の個数定義することができる。この場所は、スロッ
ト(slot)と呼ばれ、それぞれにスロット名がつけ
られている。スロットには整数、実数、文字列などの任
意のデータが格納できるほか、他のオブジェクトも格納
することができる。クラスオブジェクトはオブジェクト
の一つの型である。これに対応するものとして、インス
タンス(instance)オブジェクトという型もあ
る。
任意の個数定義することができる。この場所は、スロッ
ト(slot)と呼ばれ、それぞれにスロット名がつけ
られている。スロットには整数、実数、文字列などの任
意のデータが格納できるほか、他のオブジェクトも格納
することができる。クラスオブジェクトはオブジェクト
の一つの型である。これに対応するものとして、インス
タンス(instance)オブジェクトという型もあ
る。
【0004】下位のクラスオブジェクトが上位のクラス
オブジェクトの性質を参照することを、クラスの継承
(inheritance)と呼ぶ。クラスの継承で
は、具体的には、スロットとメソッドの両者を継承す
る。したがって、下位のクラスオブジェクトで使用でき
るスロットとメソッドは上位のクラスのそれを包含する
関係にある。
オブジェクトの性質を参照することを、クラスの継承
(inheritance)と呼ぶ。クラスの継承で
は、具体的には、スロットとメソッドの両者を継承す
る。したがって、下位のクラスオブジェクトで使用でき
るスロットとメソッドは上位のクラスのそれを包含する
関係にある。
【0005】各クラスの性質を継承関係により整理する
ことにより、階層構造(hierachical st
ructure)を構成することができる。またクラス
間の継承関係を a kind of とか is a
と呼ぶので、 a kind of または is
a による継承とも呼ぶ。
ことにより、階層構造(hierachical st
ructure)を構成することができる。またクラス
間の継承関係を a kind of とか is a
と呼ぶので、 a kind of または is
a による継承とも呼ぶ。
【0006】
【発明が解決しようとする課題】このようなオブジェク
ト指向言語は、モジュール構造、クラス階層などの特徴
があり、実世界の状態をプログラミングするのにすぐれ
ているとされている。しかし、一般のコンパイラ型言語
と同様、言語実行系上でプログラム(クラスオブジェク
ト及びにインスタンスオブジェクト)の定義の変更を行
うことができないので、プログラム開発及びメインテナ
ンスに支障を生じていた。一部のオブジェクト指向言語
ではそれが可能なものもあるが、問題の本質的な解決に
なっていなかった。この発明は上記の如き事情に鑑みて
なされたものであって、プログラムの変更が容易で、か
つその変更を言語実行系上で行うことができるオブジェ
クト指向言語における動的オブジェクトの管理方式を提
供することを目的とするものである。
ト指向言語は、モジュール構造、クラス階層などの特徴
があり、実世界の状態をプログラミングするのにすぐれ
ているとされている。しかし、一般のコンパイラ型言語
と同様、言語実行系上でプログラム(クラスオブジェク
ト及びにインスタンスオブジェクト)の定義の変更を行
うことができないので、プログラム開発及びメインテナ
ンスに支障を生じていた。一部のオブジェクト指向言語
ではそれが可能なものもあるが、問題の本質的な解決に
なっていなかった。この発明は上記の如き事情に鑑みて
なされたものであって、プログラムの変更が容易で、か
つその変更を言語実行系上で行うことができるオブジェ
クト指向言語における動的オブジェクトの管理方式を提
供することを目的とするものである。
【0007】
【課題を解決するための手段】この目的に対応して、こ
の発明のオブジェクト指向言語における動的オブジェク
トの管理方式は、データを格納するスロットと、データ
に対する操作をするアルゴリズムの集合からなるメソッ
ドを記述してあるクラスオブジェクトの階層と、それぞ
れのクラスオブジェクトに対応したインスタンスオブジ
ェクトを有するオブジェクト指向言語において、クラス
オブジェクト及びインスタンスオブジェクトを変更させ
るためのメタ操作群を備えさせ、クラスを変更する場合
にはクラスオブジェクトを複写したフローティングクラ
スオブジェクトを設けてフローティングクラスオブジェ
クトをメタ操作群により変更して新クラスオブジェクト
を設けるとともに新クラスオブジェクトに変更前のクラ
スオブジェクト(元クラスオブジェクトと称する)との
関係及び変更の履歴を記述したリンクにより連結し、イ
ンスタンスオブジェクトを変更する場合にはメタ操作群
により変更前のインスタンスオブジェクト(元インスタ
ンスオブジェクトと称する)を変更するとともに新イン
スタンスオブジェクトに元インスタンスオブジェクトの
親クラスオブジェクトとの関係及び変更の履歴を記述
し、または元インスタンスオブジェクトを複写したフロ
ーティングインスタンスオブジェクトを設けてフローテ
ィングインスタンスオブジェクトをメタ操作郡により変
更して新インスタンスオブジェクトを設けるとともに新
インスタンスオブジェクトに元インスタンスオブジェク
トとの関係及び変更の履歴を記述したリンクにより元イ
ンスタンスオブジェクトと対応するクラスオブジェクト
に連結することを特徴としている。
の発明のオブジェクト指向言語における動的オブジェク
トの管理方式は、データを格納するスロットと、データ
に対する操作をするアルゴリズムの集合からなるメソッ
ドを記述してあるクラスオブジェクトの階層と、それぞ
れのクラスオブジェクトに対応したインスタンスオブジ
ェクトを有するオブジェクト指向言語において、クラス
オブジェクト及びインスタンスオブジェクトを変更させ
るためのメタ操作群を備えさせ、クラスを変更する場合
にはクラスオブジェクトを複写したフローティングクラ
スオブジェクトを設けてフローティングクラスオブジェ
クトをメタ操作群により変更して新クラスオブジェクト
を設けるとともに新クラスオブジェクトに変更前のクラ
スオブジェクト(元クラスオブジェクトと称する)との
関係及び変更の履歴を記述したリンクにより連結し、イ
ンスタンスオブジェクトを変更する場合にはメタ操作群
により変更前のインスタンスオブジェクト(元インスタ
ンスオブジェクトと称する)を変更するとともに新イン
スタンスオブジェクトに元インスタンスオブジェクトの
親クラスオブジェクトとの関係及び変更の履歴を記述
し、または元インスタンスオブジェクトを複写したフロ
ーティングインスタンスオブジェクトを設けてフローテ
ィングインスタンスオブジェクトをメタ操作郡により変
更して新インスタンスオブジェクトを設けるとともに新
インスタンスオブジェクトに元インスタンスオブジェク
トとの関係及び変更の履歴を記述したリンクにより元イ
ンスタンスオブジェクトと対応するクラスオブジェクト
に連結することを特徴としている。
【0008】
【作用】変更のあったインスタンスオブジェクトとその
元のインスタンスオブジェクトの親クラスオブジェクト
との関係を was_a 関係と定義し、 is_a関
係との違いをメタオペレータ列の履歴により表現するこ
とにする。こうすることによりインスタンスオブジェク
トの変更を is_a 関係を乱すことなく可能にな
る。またクラスオブジェクトからそのコピーであるフロ
ーティングクラスオブジェクトを作成し、元のクラスオ
ブジェクトと was 関係をもたせる。元親クラスオ
ブジェクトと was 関係を持つクラスオブジェクト
に変更を加えると、wasリンクにその変更の履歴を記
録し、その影響はそれを継承するインスタンスオブジェ
クトすべてに波及することになる。
元のインスタンスオブジェクトの親クラスオブジェクト
との関係を was_a 関係と定義し、 is_a関
係との違いをメタオペレータ列の履歴により表現するこ
とにする。こうすることによりインスタンスオブジェク
トの変更を is_a 関係を乱すことなく可能にな
る。またクラスオブジェクトからそのコピーであるフロ
ーティングクラスオブジェクトを作成し、元のクラスオ
ブジェクトと was 関係をもたせる。元親クラスオ
ブジェクトと was 関係を持つクラスオブジェクト
に変更を加えると、wasリンクにその変更の履歴を記
録し、その影響はそれを継承するインスタンスオブジェ
クトすべてに波及することになる。
【0009】
【実施例】以下、この発明の詳細を一実施例を示す図面
について説明する。図1はオブジェクト指向言語による
プログラム1の構造を示す。プログラム1の基本単位は
オブジェクト2であり、オブジェクト2には図2に示す
ようにデータを格納するスロット3とそのデータを操作
するアルゴリズムの集合であるメソッド4が記述してあ
る。メソッド4にはメタ操作が含まれている。メタ操作
は言語の根幹のメカニズムを変更する操作である。この
メタ操作によってデータ構造、メソッドの追加/消去、
継承関係の変更を動的に行う。
について説明する。図1はオブジェクト指向言語による
プログラム1の構造を示す。プログラム1の基本単位は
オブジェクト2であり、オブジェクト2には図2に示す
ようにデータを格納するスロット3とそのデータを操作
するアルゴリズムの集合であるメソッド4が記述してあ
る。メソッド4にはメタ操作が含まれている。メタ操作
は言語の根幹のメカニズムを変更する操作である。この
メタ操作によってデータ構造、メソッドの追加/消去、
継承関係の変更を動的に行う。
【0010】論理型オブジェクト指向言語を例にとる
と、メタ操作は例えば次のようなものである。 (1) merge(Inst1, Inst2) (2) swap(Inst1, Inst2) (3) create_floating_class
(Obj, Floating Class) (4) create_settled_class
(Floating Class, Class) (5) create_slot(Obj, Slo
t, Position,Slot Content
s) (6) delete_slot(Obj, Slo
t) (7) create_method(Obj, Me
thod) (8) delete_method(Obj, Me
thod) (9) create_local_predicat
e(Obj, Predicate) (10) delete_local_predica
te(Obj, Predicate) Objは変更後のクラスオブジェクトまたはインスタン
スオブジェクト Classは、変更前のクラスオブジェクト。
と、メタ操作は例えば次のようなものである。 (1) merge(Inst1, Inst2) (2) swap(Inst1, Inst2) (3) create_floating_class
(Obj, Floating Class) (4) create_settled_class
(Floating Class, Class) (5) create_slot(Obj, Slo
t, Position,Slot Content
s) (6) delete_slot(Obj, Slo
t) (7) create_method(Obj, Me
thod) (8) delete_method(Obj, Me
thod) (9) create_local_predicat
e(Obj, Predicate) (10) delete_local_predica
te(Obj, Predicate) Objは変更後のクラスオブジェクトまたはインスタン
スオブジェクト Classは、変更前のクラスオブジェクト。
【0011】structure merging
(1)は、二つのインスタンス間のデータ構造及びに制
約記述の和集合に相当するインスタンスを生成する操作
である。structure swapping(2)
は一方のインスタンス(Inst1)を他方のインスタ
ンス(Inst2)に置き換える操作である。(3)は
変更後のクラスオブジェクトを変更前のクラスオブジェ
クトまたはインスタンスオブジェクトから生成する操作
である。スロット、メソッドの追加/消去などのメタ操
作は変更前のクラス自体には許されず、それから複写さ
れたフローティングクラスオブジェクト及びにインスタ
ンスオブジェクトのみに許される。変更前のクラスオブ
ジェクトからフローティングクラスオブジェクトが生成
されると、すでに生成されているインスタンスオブジェ
クトの継承関係はフローティングクラスオブジェクト側
に変更される。フローティングクラスオブジェクトの概
念は、クラス階層の破壊を防ぐために導入された。
(4)は、フローティングクラスオブジェクトから変更
後のクラスオブジェクトを生成し、フローティングクラ
スオブジェクトを消去する操作である。すでに生成され
たインスタンスオブジェクトの継承関係は変更後のクラ
ス側に変更される。(5)、(6)は、インスタンスオ
ブジェクトまたはフローティングクラスに対してスロッ
トをその内容と共に追加及びに削除するメタ操作であ
る。(7)、(8)は同様に、メソッドの追加/削除
を、(9)、(10)はローカル述語の追加/削除を行
う。(5)、(6)、(7)、(8)、(9)、(1
0)の操作をフローティングクラスオブジェクトに対し
て行った場合、その結果はそれを継承するすべてのイン
スタンスオブジェクトに自動的に波及する。インスタン
スオブジェクトに対するメタ操作は、他のオブジェクト
に影響を及ぼさない。
(1)は、二つのインスタンス間のデータ構造及びに制
約記述の和集合に相当するインスタンスを生成する操作
である。structure swapping(2)
は一方のインスタンス(Inst1)を他方のインスタ
ンス(Inst2)に置き換える操作である。(3)は
変更後のクラスオブジェクトを変更前のクラスオブジェ
クトまたはインスタンスオブジェクトから生成する操作
である。スロット、メソッドの追加/消去などのメタ操
作は変更前のクラス自体には許されず、それから複写さ
れたフローティングクラスオブジェクト及びにインスタ
ンスオブジェクトのみに許される。変更前のクラスオブ
ジェクトからフローティングクラスオブジェクトが生成
されると、すでに生成されているインスタンスオブジェ
クトの継承関係はフローティングクラスオブジェクト側
に変更される。フローティングクラスオブジェクトの概
念は、クラス階層の破壊を防ぐために導入された。
(4)は、フローティングクラスオブジェクトから変更
後のクラスオブジェクトを生成し、フローティングクラ
スオブジェクトを消去する操作である。すでに生成され
たインスタンスオブジェクトの継承関係は変更後のクラ
ス側に変更される。(5)、(6)は、インスタンスオ
ブジェクトまたはフローティングクラスに対してスロッ
トをその内容と共に追加及びに削除するメタ操作であ
る。(7)、(8)は同様に、メソッドの追加/削除
を、(9)、(10)はローカル述語の追加/削除を行
う。(5)、(6)、(7)、(8)、(9)、(1
0)の操作をフローティングクラスオブジェクトに対し
て行った場合、その結果はそれを継承するすべてのイン
スタンスオブジェクトに自動的に波及する。インスタン
スオブジェクトに対するメタ操作は、他のオブジェクト
に影響を及ぼさない。
【0012】まず、このようなプログラム1のインスタ
ンスオブジェクト6に追加/削除、その他の変更の一例
としてスロットの増加をする場合の管理を図3について
説明する。クラスオブジェクト5(class x)と
インスタンスオブジェクト6(instance x#
1)の間には「is_a」関係を表すリンク7が存在す
る。次に instance x#1 のメソッド4を
使用してスロット3の追加を行う(create_sl
ot(#1,d,last,#d))。これによってイ
ンスタンスオブジェクト6がインスタンスオブジェクト
6′(instance x#1)に変更される。そし
て(class x)と変更を受けた(instanc
e x#1)とを繋げるリンク7を「was_a」の関
係と定義し、変更の履歴を(was_a(#1,x,
[create_slot(#1,d,last, #
d)]))の形で記述する。
ンスオブジェクト6に追加/削除、その他の変更の一例
としてスロットの増加をする場合の管理を図3について
説明する。クラスオブジェクト5(class x)と
インスタンスオブジェクト6(instance x#
1)の間には「is_a」関係を表すリンク7が存在す
る。次に instance x#1 のメソッド4を
使用してスロット3の追加を行う(create_sl
ot(#1,d,last,#d))。これによってイ
ンスタンスオブジェクト6がインスタンスオブジェクト
6′(instance x#1)に変更される。そし
て(class x)と変更を受けた(instanc
e x#1)とを繋げるリンク7を「was_a」の関
係と定義し、変更の履歴を(was_a(#1,x,
[create_slot(#1,d,last, #
d)]))の形で記述する。
【0013】次にフローティングインスタンスオブジェ
クトからそのフローティング親クラスオブジェクトを生
成する場合の管理を図4について説明する。インスタン
ス#1のフローティング親クラスyを生成するにはメタ
操作(create_floating_class
(#1,y))を実施する。これによってフローティン
グクラスオブジェクト(class y)が生成され
る。そしてインスタンスオブジェクト#1の親クラスオ
ブジェクト(class x)と新たな(class
y)とを繋げるリンク7を「was」の関係と定義し、
両者の違いを表す変更の履歴を(was(y,x,[c
reate_slot(#y,d,last,#
d)]))の形で記述する。なお、このとき(clas
s y)とそれに対応するインスタンスオブジェクト6
(instance y#1)との関係は「is_a」
関係と定義する。ここでクラスyの定義は自己完結して
おり、クラスxとの継承関係は存在しない。次にフロー
ティングクラスオブジェクトをクラスオブジェクトに変
更する場合の管理を図5によって説明する。図4におけ
るフローティングクラスyに対してメタ操作(crea
te_settled_cass(y,z)を実行する
と、フローティングクラスyが削除され、クラスzが作
成される。クラスzはフローティングクラスyとwas
関係のあったクラスxとis_a 関係を持つ。インス
タンスオブジェクト#1は自動的にクラスzとis_a
関係をとる。クラスzの定義はクラスxからの継承を
利用し簡潔に記述される点で、フローティングクラスy
における定義と大きく異なる。
クトからそのフローティング親クラスオブジェクトを生
成する場合の管理を図4について説明する。インスタン
ス#1のフローティング親クラスyを生成するにはメタ
操作(create_floating_class
(#1,y))を実施する。これによってフローティン
グクラスオブジェクト(class y)が生成され
る。そしてインスタンスオブジェクト#1の親クラスオ
ブジェクト(class x)と新たな(class
y)とを繋げるリンク7を「was」の関係と定義し、
両者の違いを表す変更の履歴を(was(y,x,[c
reate_slot(#y,d,last,#
d)]))の形で記述する。なお、このとき(clas
s y)とそれに対応するインスタンスオブジェクト6
(instance y#1)との関係は「is_a」
関係と定義する。ここでクラスyの定義は自己完結して
おり、クラスxとの継承関係は存在しない。次にフロー
ティングクラスオブジェクトをクラスオブジェクトに変
更する場合の管理を図5によって説明する。図4におけ
るフローティングクラスyに対してメタ操作(crea
te_settled_cass(y,z)を実行する
と、フローティングクラスyが削除され、クラスzが作
成される。クラスzはフローティングクラスyとwas
関係のあったクラスxとis_a 関係を持つ。インス
タンスオブジェクト#1は自動的にクラスzとis_a
関係をとる。クラスzの定義はクラスxからの継承を
利用し簡潔に記述される点で、フローティングクラスy
における定義と大きく異なる。
【0014】次に1つのクラスオブジェクト5に2つの
インスタンスオブジェクト6が対応する場合の、2つの
インスタンスオブジェクト6を同時に同じ内容で変更す
る場合の管理について図6によって説明する。インスタ
ンスオブジェクト6(e1 ,e2 )を同時に同じ内容で
変更しようとする場合にはクラスオブジェクト5(E)
のメソッド4を利用して(E)の複写操作をする。(c
reate_floating_class(E′,
E))。これによって(E)のフローティングクラスオ
ブジェクト5″(E′)を作成する。そして元の(E)
と新たな(E′)とを繋げるリンク7を「was」の関
係と定義し(was(E′,E,[]))と記述する。
その後、フローティングクラスE′にスロット/メソッ
ドの追加/削除などの変更を加えると、その影響はイン
スタンスe1 , e2 に及ぶと共に、wasリンクに変
更の履歴が追加される。
インスタンスオブジェクト6が対応する場合の、2つの
インスタンスオブジェクト6を同時に同じ内容で変更す
る場合の管理について図6によって説明する。インスタ
ンスオブジェクト6(e1 ,e2 )を同時に同じ内容で
変更しようとする場合にはクラスオブジェクト5(E)
のメソッド4を利用して(E)の複写操作をする。(c
reate_floating_class(E′,
E))。これによって(E)のフローティングクラスオ
ブジェクト5″(E′)を作成する。そして元の(E)
と新たな(E′)とを繋げるリンク7を「was」の関
係と定義し(was(E′,E,[]))と記述する。
その後、フローティングクラスE′にスロット/メソッ
ドの追加/削除などの変更を加えると、その影響はイン
スタンスe1 , e2 に及ぶと共に、wasリンクに変
更の履歴が追加される。
【0015】
【発明の効果】このようにオブジェクト指向言語におけ
る、クラス/インスタンスオブジェクトの動的変更を可
能にするために、動的変更用のメタ操作群を導入し、さ
らに、動的変更により乱されるオブジェクト間(クラス
−クラス及びにクラス−インスタンス間)の継承関係
(is_a 関係と呼ばれている)を管理するために、
was_a 関係と was 関係を導入する。これら
は変更後のインスタンスオブジェクトとクラスオブジェ
クトの関係、並びにクラスオブジェクトとクラスオブジ
ェクトの間の関係を定義したもので、これらには、 i
s_a 関係との違いを明確にするためにオブジェクト
の変更の履歴が記述される。こうして was_a と
was 関係を利用して、インスタンスの変更を可能
にしたり、フローティングクラスを作ることにより他の
クラスヘの影響を及ぼすことなく、クラスオブジェクト
の変更を可能にし、フローティングインスタンスからフ
ローティングクラスオブジェクトを生成したり、フロー
ティングクラスオブジェクトから変更後のクラスオブジ
ェクトを生成することが可能になる。
る、クラス/インスタンスオブジェクトの動的変更を可
能にするために、動的変更用のメタ操作群を導入し、さ
らに、動的変更により乱されるオブジェクト間(クラス
−クラス及びにクラス−インスタンス間)の継承関係
(is_a 関係と呼ばれている)を管理するために、
was_a 関係と was 関係を導入する。これら
は変更後のインスタンスオブジェクトとクラスオブジェ
クトの関係、並びにクラスオブジェクトとクラスオブジ
ェクトの間の関係を定義したもので、これらには、 i
s_a 関係との違いを明確にするためにオブジェクト
の変更の履歴が記述される。こうして was_a と
was 関係を利用して、インスタンスの変更を可能
にしたり、フローティングクラスを作ることにより他の
クラスヘの影響を及ぼすことなく、クラスオブジェクト
の変更を可能にし、フローティングインスタンスからフ
ローティングクラスオブジェクトを生成したり、フロー
ティングクラスオブジェクトから変更後のクラスオブジ
ェクトを生成することが可能になる。
【図1】プログラムの構成説明図。
【図2】オブジェクトの構成説明図。
【図3】インスタンスオブジェクトの変更操作を示す説
明図。
明図。
【図4】クラスオブジェクトの変更操作を示す説明図。
【図5】フローティングクラスオブジェクトの変更操作
を示す説明図。
を示す説明図。
【図6】インスタンスオブジェクトの他の変更操作を示
す説明図。
す説明図。
1 プログラム 2 オブジェクト 3 スロット 4 メソッド 5 クラスオブジェクト 6 インスタンスオブジェクト 7 リンク
Claims (1)
- 【請求項1】 データを格納するスロットと、前記デー
タに対する操作をするアルゴリズムの集合からなるメソ
ッドを記述してあるクラスオブジェクトの階層と、それ
ぞれのクラスオブジェクトに対応したインスタンスオブ
ジェクトを有するオブジェクト指向言語において、前記
クラスオブジェクト及びインスタンスオブジェクトを変
更させるためのメタ操作群を備えさせ、前記クラスを変
更する場合には前記クラスオブジェクトを複写したフロ
ーティングクラスオブジェクトを設けて前記フローティ
ングクラスオブジェクトを前記メタ操作群により変更し
て新クラスオブジェクトを設けるとともに前記新クラス
オブジェクトに変更前のクラスオブジェクト(元クラス
オブジェクトと称する)との関係及び変更の履歴を記述
したリンクにより連結し、前記インスタンスオブジェク
トを変更する場合には前記メタ操作群により前記変更前
のインスタンスオブジェクト(元インスタンスオブジェ
クトと称する)を変更するとともに新インスタンスオブ
ジェクトに元インスタンスオブジェクトの親クラスオブ
ジェクトとの関係及び変更の履歴を記述し、または元イ
ンスタンスオブジェクトを複写したフローティングイン
スタンスオブジェクトを設けて前記フローティングイン
スタンスオブジェクトを前記メタ操作郡により変更して
新インスタンスオブジェクトを設けるとともに前記新イ
ンスタンスオブジェクトに元インスタンスオブジェクト
との関係及び変更の履歴を記述したリンクにより元イン
スタンスオブジェクトと対応するクラスオブジェクトに
連結することを特徴とするオブジェクト指向言語におけ
る動的オブジェクトの管理方式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6121081A JP2580536B2 (ja) | 1994-06-02 | 1994-06-02 | オブジェクト指向言語における動的オブジェクトの管理方式 |
US08/410,750 US5560014A (en) | 1994-06-02 | 1995-03-27 | Dynamic object management method in object oriented language |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6121081A JP2580536B2 (ja) | 1994-06-02 | 1994-06-02 | オブジェクト指向言語における動的オブジェクトの管理方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07325719A JPH07325719A (ja) | 1995-12-12 |
JP2580536B2 true JP2580536B2 (ja) | 1997-02-12 |
Family
ID=14802394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6121081A Expired - Lifetime JP2580536B2 (ja) | 1994-06-02 | 1994-06-02 | オブジェクト指向言語における動的オブジェクトの管理方式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5560014A (ja) |
JP (1) | JP2580536B2 (ja) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678880B1 (en) * | 1995-05-08 | 2004-01-13 | Apple Computer, Inc. | System for iteratively designing an object heterarchy in an object-oriented computing environment |
US5867709A (en) * | 1995-10-18 | 1999-02-02 | Kapre Software, Inc. | Method and system for reusing customizations to a software product |
US5822587A (en) * | 1995-10-20 | 1998-10-13 | Design Intelligence, Inc. | Method and system for implementing software objects |
WO1997022925A1 (en) * | 1995-12-15 | 1997-06-26 | Object Dynamics Corp. | Method and system for constructing software components and systems as assemblies of independent parts |
US6044224A (en) * | 1996-06-26 | 2000-03-28 | Sun Microsystems, Inc. | Mechanism for dynamically associating a service dependent representation with objects at run time |
JP3763937B2 (ja) | 1996-06-28 | 2006-04-05 | 富士通株式会社 | オブジェクト指向プログラミング装置、およびオブジェクト結合プログラム記憶媒体 |
US6052778A (en) * | 1997-01-13 | 2000-04-18 | International Business Machines Corporation | Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs |
US6363436B1 (en) | 1997-01-27 | 2002-03-26 | International Business Machines Corporation | Method and system for loading libraries into embedded systems |
US6263492B1 (en) * | 1997-06-06 | 2001-07-17 | Microsoft Corporation | Run time object layout model with object type that differs from the derived object type in the class structure at design time and the ability to store the optimized run time object layout model |
US7127420B1 (en) * | 1997-08-01 | 2006-10-24 | Financial Systems Technology (Intellectual Property) Pty. Ltd. | Data processing system for complex pricing and transactional analysis |
US6195794B1 (en) | 1997-08-12 | 2001-02-27 | International Business Machines Corporation | Method and apparatus for distributing templates in a component system |
US5978579A (en) * | 1997-08-12 | 1999-11-02 | International Business Machines Corporation | Architecture for customizable component system |
US5970252A (en) * | 1997-08-12 | 1999-10-19 | International Business Machines Corporation | Method and apparatus for loading components in a component system |
US6093215A (en) * | 1997-08-12 | 2000-07-25 | International Business Machines Corporation | Method and apparatus for building templates in a component system |
US6182279B1 (en) | 1997-08-12 | 2001-01-30 | International Business Machines Corporation | Method and apparatus for storing templates in a component system |
US5983234A (en) * | 1997-09-17 | 1999-11-09 | Novell, Inc. | Method and apparatus for generically viewing and editing objects |
US6119122A (en) * | 1997-09-17 | 2000-09-12 | Novell, Inc. | Method and apparatus for generically viewing and editing objects |
US6003040A (en) * | 1998-01-23 | 1999-12-14 | Mital; Vijay | Apparatus and method for storing, navigating among and adding links between data items in computer databases |
US6345382B1 (en) | 1998-02-12 | 2002-02-05 | International Business Machines Corporation | Run-time customization in object-oriented design |
US6182277B1 (en) * | 1998-04-15 | 2001-01-30 | Oracle Corporation | Methods and apparatus for declarative programming techniques in an object oriented environment |
US6031747A (en) * | 1999-08-02 | 2000-02-29 | Lockheed Martin Missiles & Space Company | Interleaved synchronous flyback converter with high efficiency over a wide operating load range |
US6880126B1 (en) | 1999-08-03 | 2005-04-12 | International Business Machines Corporation | Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data |
US6779177B1 (en) | 1999-10-28 | 2004-08-17 | International Business Machines Corporation | Mechanism for cross channel multi-server multi-protocol multi-data model thin clients |
US6862686B1 (en) | 1999-10-29 | 2005-03-01 | International Business Machines Corporation | Method and apparatus in a data processing system for the separation of role-based permissions specification from its corresponding implementation of its semantic behavior |
US7181686B1 (en) | 1999-10-29 | 2007-02-20 | International Business Machines Corporation | Selecting screens in a GUI using events generated by a set of view controllers |
JP4039800B2 (ja) * | 2000-12-19 | 2008-01-30 | 株式会社日立製作所 | データ管理方法、オブジェクト統合管理システム |
US7058939B2 (en) * | 2001-04-05 | 2006-06-06 | International Business Machines Corporation | Automatic link maintenance to ensure referential integrity constraints |
US20030149799A1 (en) * | 2001-05-03 | 2003-08-07 | Scott Shattuck | System supporting unified event handling in ECMAScript |
US20020178146A1 (en) * | 2001-05-24 | 2002-11-28 | International Business Machines Corporation | System and method for selective object history retention |
US7861158B2 (en) * | 2001-07-26 | 2010-12-28 | Irise | System and process for gathering, recording and validating requirements for computer applications |
US6907433B2 (en) * | 2001-08-01 | 2005-06-14 | Oracle International Corp. | System and method for managing object to relational one-to-many mapping |
US20030084427A1 (en) * | 2001-10-30 | 2003-05-01 | Bryan Hunt | Nature emulation oriented programming method |
US6976244B2 (en) * | 2002-01-09 | 2005-12-13 | International Business Machines Corporation | Method, system, and product for storage of attribute data in an object oriented environment |
US7117052B2 (en) * | 2003-02-18 | 2006-10-03 | Fisher-Rosemount Systems, Inc. | Version control for objects in a process plant configuration system |
CA2419904A1 (en) * | 2003-02-26 | 2004-08-26 | Ibm Canada Limited - Ibm Canada Limitee | Version-insensitive serialization and deserialization of program objects |
US8972380B2 (en) * | 2003-09-29 | 2015-03-03 | International Business Machines Corporaton | System and method for monitoring events against continual range queries |
US7835953B2 (en) * | 2003-09-29 | 2010-11-16 | International Business Machines Corporation | Method and structure for monitoring moving objects |
US8291375B2 (en) * | 2004-03-29 | 2012-10-16 | Sybase, Inc. | Attribute-based component programming system and methodology for object-oriented languages |
US7596546B2 (en) * | 2004-06-14 | 2009-09-29 | Matchett Douglas K | Method and apparatus for organizing, visualizing and using measured or modeled system statistics |
EP1785396A1 (en) * | 2005-11-09 | 2007-05-16 | Nederlandse Organisatie voor Toegepast-Natuuurwetenschappelijk Onderzoek TNO | Process for preparing a metal hydroxide |
US8533692B2 (en) * | 2005-12-30 | 2013-09-10 | Sap Ag | Dynamic software enhancement parameters |
US8171452B2 (en) * | 2005-12-30 | 2012-05-01 | Sap Ag | Dynamic software enhancement |
US20070192215A1 (en) * | 2006-02-10 | 2007-08-16 | Taylor Thomas B | Computer-implemented registration for providing inventory fulfillment services to merchants |
US7769843B2 (en) * | 2006-09-22 | 2010-08-03 | Hy Performix, Inc. | Apparatus and method for capacity planning for data center server consolidation and workload reassignment |
US7853480B2 (en) * | 2007-05-21 | 2010-12-14 | Amazon Technologies, Inc. | System and method for providing export services to merchants |
US9361129B2 (en) | 2007-08-01 | 2016-06-07 | Microsoft Technology Licensing, Llc | Instance interfaces and mix-ins for dynamic languages |
US7957948B2 (en) * | 2007-08-22 | 2011-06-07 | Hyperformit, Inc. | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources |
US8788986B2 (en) | 2010-11-22 | 2014-07-22 | Ca, Inc. | System and method for capacity planning for systems with multithreaded multicore multiprocessor resources |
US20120023454A1 (en) * | 2010-07-20 | 2012-01-26 | Sap Ag | Schedule management using linked events |
WO2012048162A2 (en) | 2010-10-08 | 2012-04-12 | Irise | System and method for extending a visualization platform |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5315709A (en) * | 1990-12-03 | 1994-05-24 | Bachman Information Systems, Inc. | Method and apparatus for transforming objects in data models |
US5261098A (en) * | 1991-08-28 | 1993-11-09 | Sun Microsystems, Inc. | Method and apparatus for deriving object type and obtaining object type attribute values |
JPH05257664A (ja) * | 1991-12-12 | 1993-10-08 | Internatl Business Mach Corp <Ibm> | バージョン独立のオブジェクト指向アプリケーション・プログラムを生成するシステム及び方法 |
EP0546682A3 (en) * | 1991-12-12 | 1993-12-08 | Ibm | Parent class shadowing |
US5339430A (en) * | 1992-07-01 | 1994-08-16 | Telefonaktiebolaget L M Ericsson | System for dynamic run-time binding of software modules in a computer system |
US5418966A (en) * | 1992-10-16 | 1995-05-23 | International Business Machines Corporation | Updating replicated objects in a plurality of memory partitions |
US5386568A (en) * | 1992-12-01 | 1995-01-31 | Yamaha Corporation | Apparatus and method for linking software modules |
US5379431A (en) * | 1993-12-21 | 1995-01-03 | Taligent, Inc. | Boot framework architecture for dynamic staged initial program load |
-
1994
- 1994-06-02 JP JP6121081A patent/JP2580536B2/ja not_active Expired - Lifetime
-
1995
- 1995-03-27 US US08/410,750 patent/US5560014A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5560014A (en) | 1996-09-24 |
JPH07325719A (ja) | 1995-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2580536B2 (ja) | オブジェクト指向言語における動的オブジェクトの管理方式 | |
US5752245A (en) | Object-oriented system for configuration history management with a project workspace and project history database for draft identification | |
US7694272B2 (en) | Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language | |
US5659735A (en) | Object-oriented system for program version and history database management system for various program components | |
US6023578A (en) | Systems, methods and computer program products for generating an object oriented application for an object oriented environment | |
US7818277B2 (en) | Methods and apparatus for business rules authoring and operation employing a customizable vocabulary | |
US6343265B1 (en) | System and method for mapping a design model to a common repository with context preservation | |
US5553282A (en) | Software project history database and method of operation | |
US5557785A (en) | Object oriented multimedia information system using information and multiple classes to manage data having various structure and dedicated data managers | |
JP2007012080A (ja) | 複合ドキュメント・フレームワーク | |
US8209295B2 (en) | Storing information with a description logic file system | |
US8364719B2 (en) | Object based content management system and method | |
JP2009507269A (ja) | コード生成パターン | |
US20060253443A1 (en) | Region-based security | |
US7162504B2 (en) | System and method for providing content services to a repository | |
Jahed et al. | On the benefits of file-level modularity for EMF models | |
US7236989B2 (en) | System and method for providing lifecycles for custom content in a virtual content repository | |
Lions et al. | Extending opentool/uml using metamodeling: An aspect oriented programming case study | |
Alanen et al. | Version control of software models | |
JPH11143895A (ja) | 情報管理装置及び情報検索方法 | |
Noll III | Software object management in heterogeneous, autonomous environments: a hypertext approach | |
Shin | A unifying version for objects and schema in object-oriented database system | |
McKnight | A meta system for generating software engineering environments (methodology, intelligent data bases, programming languages) | |
Adamus | Programming in aspect-oriented databases | |
Lieberherr et al. | Describing adaptive behaviors of collaborating classes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |