JPH01240936A - 継承解決方式 - Google Patents

継承解決方式

Info

Publication number
JPH01240936A
JPH01240936A JP6784488A JP6784488A JPH01240936A JP H01240936 A JPH01240936 A JP H01240936A JP 6784488 A JP6784488 A JP 6784488A JP 6784488 A JP6784488 A JP 6784488A JP H01240936 A JPH01240936 A JP H01240936A
Authority
JP
Japan
Prior art keywords
class
inheritance
succession
classes
inherited
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6784488A
Other languages
English (en)
Inventor
Koshio Ono
越夫 小野
Satoru Torii
悟 鳥居
Tomoko Yanagi
柳 友子
Miyuki Ono
美由紀 小野
Tsuneko Hagiwara
つね子 萩原
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP6784488A priority Critical patent/JPH01240936A/ja
Publication of JPH01240936A publication Critical patent/JPH01240936A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 クラス間の継承関係を解決して処理を実行する継承解決
方式に関し、 静的解決が指示されたクラスに対して継承を予め解決し
ておき、実行時に継承が未解決のクラスに対してその都
度動的に継承を解決して処理を実行することにより、継
承探索によるオーバヘードを可及的に削減すると共に、
柔軟性を保持させることを目的とし、 継承するクラスの名前である継承クラス名、および情報
を持つクラスを設け、これら複数のクラスの継承クラス
塩によって継承木を表現し、予め静的解決が指示された
ある継承木のクラスから継承する全ての他のクラスの情
報を自クラスに取り込むと共に、取り込んだ自クラス内
から取り込み先の継承クラス塩を削除し、実行の際に、
実行しようとするクラスに継承クラス名が記載されてぃ
る場合に、この継承クラス名から情報を自クラス内に全
て取り込んだ後、処理を実行するように構成する。
〔産業上の利用分野〕
本発明は、クラス間の継承関係を解決して処理を実行す
る継承解決方式に関するものである。
〔従来の技術と発明が解決しようとする問題点〕オブジ
ェクト指向プログラミングは、複数のクラス(プログラ
ミングの基本単位)に共通な部分を共通りラスとして定
義している。そして、各クラスは必要な共通りラスの情
報を自クラスに組み込み、必要に応じてその一部を変更
したり、自クラス独自の機能を追加するようにしている
。この共通りラスの情報を自クラスに組み込むことを継
承と呼んでいる0例えば第7図(イ)動的継承解決方式
に示す継承水は、クラスaはクラスbとクラスCとを継
承し、クラスbはクラスdとクラスeとを継承し、クラ
スCはクラスfとクラスgとを継承している様子を矢印
を用いて表したものである。この継承水によって表され
た継承を解決(4a承先のクラスを自クラスに組み込む
こと)する方式として、第7図(イ)に示す例えばクラ
スaを実行しようとする際に、まず、クラスaがら継承
先のクラスC1更にクラスd、、e、および継承先のク
ラスC1更にクラスf−gを順次図中矢印を用いて示す
ように探索して見つけ出し、自クラスa内に全ての情報
を組み込み、次に、これら組み込んだ情報を使用して処
理を実行するいわゆる動的継承解決方式がある。この動
的継承解決方式は、実行時点で必要なりラスが揃ってい
ればよく、プログラミングの柔軟性は高いが、一方、実
行時のクラス探索のためのオーバヘッドが大きいという
問題点があった。
また、第7図(ロ)に示すように、クラスaの実行前に
、クラスb%d%e%クラスc、f、gの情報を自クラ
スaに予め組み込んでおき、実行時に即りラスa内の情
報を使用して処理を実行するいわゆる静的継承解決方式
がある。この静的継承解決方式は、実行時に継承を探索
する必要がなく、このためのオーバヘッドがないが、一
方、実行前に全てのクラスが揃っていなければ、実行で
きないと共に、共通りラスの情報の変更に対応してこれ
を継承している全てのクラスの情報の再継承解決につな
がり、柔軟性に欠けるという問題点があった。
本発明は、静的解決が指示されたクラスに対して継承を
予め解決しておき、実行時に継承が未解決のクラスに対
してその都度動的に継承を解決して処理を実行すること
により、継承探索によるオーバヘードを可及的に削減す
ると共に、柔軟性を保持させることを目的としている。
これにより、プログラムの開発の進捗状況に対応して動
的継承解決から静的継承解決にスムーズに移行させるこ
とが可能となる。
〔問題点を解決するための手段〕
第1図を参照して問題点を解決するための手段を説明す
る。
第1図において、継承水4は、クラスに格納されている
継承クラス名によって相互の継承関係を関連づけて木構
造に表したものである。
継承解決サブシステム5は、該当クラスの継承解決を行
うものである。
実行サブシステム6は、クラスの実行を行うものである
〔作用〕
本発明は、第1図に示すように、静的継承解決が指示さ
れたクラスに対して継承解決サブシステム5が継承を解
決して当該クラスに継承先のクラスの情報を予め組み込
むと共に、継承解決されていないクラスを実行しようと
する際に、まず動的に継承を解決して当該クラスに継承
先のクラスの情報を組み込んだ後、実行サブシステム6
が当該クラスの実行を行うようにしている。
従って、実行時に継承が未解決のクラスに対してのみそ
の都度動的に継承を解決して処理を実行すればよ<、継
承探索によるオーバヘードを可及的に削減し、かつ柔軟
性を保持させることが可能となる。これにより、プログ
ラムの開発の進捗状況に対応して動的継承解決から静的
継承解決にスムーズに移行させることができる。
〔実施例〕
第1図から第6図を用いて本発明の1実施例の構成およ
び動作を順次詳細に説明する。
第1図において、ライブラリ1は、DASDなどに格納
されているクラス定義2である。
継承木4は、ライブラリ1から読み出して主起tq3に
ロードし、クラスの継承クラス名に注目して展開したも
のである。
継承解決サブシステム5は、継承解決を行うものである
実行サブシステム6は、クラスの実行を行うものである
第2図は、クラス定義とその記憶形式例を示す。
第2回(イ)クラス定義2は、ライブラリ1に格納され
ているものである。クラス定義2は、このクラスの名前
を表すクラス名7、このクラスが継承するクラスを表す
継承クラス名8、このクラスに属するデータを表すスロ
ット名9、およびこのクラスに属する手続きを表すメソ
ッド名10から構成されている。
第2図(ロ)クラス定義の記憶形式は、主記憶3上にお
ける記憶形式例である。これら継承クラス・テーブル1
1、スロット・テーブル12、およびメソッド・テーブ
ル13は、第1図継承木4の1つのノードを表す。
次に、第3図を用いて、本発明による継承解決方式の概
念を説明する。第3図(イ)は開発の初期段階である。
この初期段階では、クラスは実行前に継承している他の
クラスの情報を取り込んだ後(w1承を解決した後)、
自クラスの実行を行う必要がある。例えばクラスaを実
行するには、クラスb、d、e、c、r、Hの動的な探
索を行って見つけた後、自りラスa内にこれらクラスの
情報を取り込んだ後、自クラスaを実行する。
第3図(ロ)は、開発の途中段階である。この途中段階
では、クラスbおよびこれが継承するクラスd、eが完
成した状態であって、クラスb内にこれらクラスd、e
の情報を組み込んだ形式に予め変換されている。このた
め、クラスbの実行の際に、クラスd、eの動的なりラ
ス探索は必要なく、自りラスb内だけで処理できる。一
方、クラスCを実行しようとした場合、クラスf、gの
動的な探索およびこれらの情報の組み込みを行った後で
なければ実行できない。
第3図(ハ)は、開発が完了した最終段階である。この
最終段階では、全てのクラスが静的に解決されているの
で、各クラスの実行は、各クラス内だけで処理すること
が可能となる。このため、他のクラスの継承を探索する
手間が不要となり、迅速に処理を実行することができる
次に、第4図フローチャートに示す順序に従って、第5
図および第6図を用いて、本発明の動作を具体的に説明
する。第5図および第6図は、主記憶3上に展開された
継承木の記憶形式を表したものである。第6図は継承木
のクラスb以下の部分木を静的に以下の手順によって継
承解決したものである。
第4図において、図中■は、継承クラスが存在するか否
かを判別する。これは、例えば第5図継承水中のクラス
bに対する静的継承解決の要求に対応して、このクラス
bの継承クラス・リストに継承クラス名が格納されてい
るか否かを判別することを意味している。この場合には
、第5図図中■に示すように継承クラス名d、eが格納
されているので、YESとなり、図中■を実行する。N
Oの場合には、継承クラスがないので、終了する(EN
D)。
図中■は、継承クラスに対して再帰的に継承解決する。
これは、例えば第5図において、クラスbの静的継承解
決の要求に対応して、クラスbの継承クラスであるクラ
スd、eを再帰的に静的継承解決する。ここでは、クラ
スd、eが継承クラス名を共に持たないので、再帰的な
継承解決処理はここで終了し、クラスbの継承解決処理
に戻る。
図中■は、継承解決された継承クラスの情報を該クラス
にマージする(組み込む)。これは、例えば第6図に示
すように、クラスb内に、継承クラスd、eの情報を組
み込む。具体的に言えば、第6図継承クラスdのスロッ
ト・テーブルの図中0に示すスロット名を、クラスbの
スロット・テーブルの図中@′に示す位置に組み込む。
同様に、継承クラスd、eの図中0、[相]、■に示す
スロット名あるいはメソッド名を、クラスbの図中◎°
、0゛、■°に示す位置に組み込む。
図中■は、該クラスの継承クラス・テーブルをクリアす
る。これは、例えば第6図クラスbの継承クラス・リス
トに格納されていた継承クラス塩d、eを削除(クリア
)し、もはや継承クラス名が存在しないことを表示して
おくことを意味している。
図中■は、他の継承クラスが存在するか否かを判別する
。YESの場合には、図中■、■、■を繰り返し実行す
る。Noの場合には、終了する(END)。
以上の処理によって、第5図継承解決前の状態から、静
的継承解決をクラスbに要求したことに対応して、第6
図に示すように静的継承解決が部分的に実行される。、
そして、この静的継承解決されたクラス例えばクラスb
の実行は、当該クラスb内の情報によって実行すること
が可能となり、継承クラスの探索および組み込みなどの
オーバーヘッドがなくなり、迅速に処理を実行すること
が可能となる。一方、クラスCの継承クラス塩f、gに
対しては、静的継承解決がされていなく、修正などを簡
単に行うことが可能であり、柔軟性に富んでいる。
〔発明の効果〕
以上説明したように、本発明によれば、静的継承解決し
たクラスと、継承未解決のクラスとの混在を認め、実行
時に相承未解決のクラスのみ動的継承解決を行って処理
を実行する構成を採用しているため、継承探索によるオ
ーハヘードを可及的に削減し、かつ柔軟性を保持させる
ことができる。
これにより、プログラムの開発の進捗状況に応じて、動
的継承解決から静的継承解決にスムーズに移行させるこ
とができる。
【図面の簡単な説明】
第1図は本発明の1実施例構成図、第2図はクラス定義
とその記憶形式例、第3図は本発明による継承解決方式
の概念、第4図は本発明の動作説明フローチャート、第
5図は継承解決前の継承本例、第6図は継承解決後の継
承本例、第7図は従来の継承解決方式を示す。 図中、2はクラス定義、4は継承木、5は継承解決サブ
システム、6は実行サブシステムを表す。 ノド、1  日月 の 1 実 克4デIPA)八C図
鳥1図 (イ)                      
     (ロ)グラス定義Yぞのに1見形人仰j 躬2図 4本、化6月の勧イ乍富也8月フローナヤートも 4 

Claims (1)

  1. 【特許請求の範囲】 クラス間の継承関係を解決して処理を実行する継承解決
    方式において、 継承するクラスの名前である継承クラス名、および情報
    を持つクラスを設け、 これら複数のクラスの継承クラス名によって継承木(4
    )を表現し、 予め静的解決が指示されたある継承木(4)のクラスか
    ら継承する全ての他のクラスの情報を自クラスに取り込
    むと共に、取り込んだ自クラス内から取り込み先の継承
    クラス名を削除し、 実行の際に、実行しようとするクラスに継承クラス名が
    記載されている場合に、この継承クラス名から情報を自
    クラス内に全て取り込んだ後、処理を実行するように構
    成したことを特徴とする継承解決方式。
JP6784488A 1988-03-22 1988-03-22 継承解決方式 Pending JPH01240936A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6784488A JPH01240936A (ja) 1988-03-22 1988-03-22 継承解決方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6784488A JPH01240936A (ja) 1988-03-22 1988-03-22 継承解決方式

Publications (1)

Publication Number Publication Date
JPH01240936A true JPH01240936A (ja) 1989-09-26

Family

ID=13356666

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6784488A Pending JPH01240936A (ja) 1988-03-22 1988-03-22 継承解決方式

Country Status (1)

Country Link
JP (1) JPH01240936A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182156B1 (en) 1995-03-15 2001-01-30 Fujitsu Limited Object-oriented data processing system allowing dynamic change of one or more ancestors and/or descendents of one or more classes of objects

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182156B1 (en) 1995-03-15 2001-01-30 Fujitsu Limited Object-oriented data processing system allowing dynamic change of one or more ancestors and/or descendents of one or more classes of objects

Similar Documents

Publication Publication Date Title
CN107918666B (zh) 一种区块链上的数据同步方法和系统
JP2666847B2 (ja) 異種言語間連絡方式
JPH047640A (ja) クラス継承解決処理方法
JPH02272627A (ja) デイジタル・コンピユータ・システムとその手続呼び出し方法
US4964063A (en) System and method for frame and unit-like symbolic access to knowledge represented by conceptual structures
JP2001526421A (ja) 異なるフレームワークバージョンで作成されたオブジェクト指向プログラムが通信することを可能にする装置および方法
US20100218199A1 (en) Method for programmatic editing of configuration files
CN113901057A (zh) 数据回放方法、装置、计算机设备和存储介质
JPH01240936A (ja) 継承解決方式
US20030018833A1 (en) Method for implementing a plurality of object interfaces
WO2025043664A1 (zh) 利用知识图谱生成网页表单的方法、装置、计算机设备
CN119865634A (zh) 跨平台剪辑资源管理方法及装置
JPH01174172A (ja) 二種領域情報の管理方式
JP3021697B2 (ja) プログラミング言語における例外処理方法
JPH0327439A (ja) プログラムの共有モジュール管理方式
JPH03157729A (ja) 多重継承制御方式
CN118643095A (zh) 一种节点复制方法及装置
JPH0695868A (ja) ソフトウェア管理方式
JP2754866B2 (ja) データ駆動形計算機用オブジエクトコード生成装置
JP2000267866A (ja) 2段式プロセスの終了状態獲得装置
CN120561177A (zh) 反序列化方法、装置、电子设备及介质
JP2014059848A (ja) 言語変換装置、プログラム
CN112825031A (zh) 基于json格式的流程描述方法及装置
JPH0126092B2 (ja)
JPH11175344A (ja) 知識ベースシステム