JP2004252973A - 客体指向プログラムが記録された貯蔵媒体 - Google Patents

客体指向プログラムが記録された貯蔵媒体 Download PDF

Info

Publication number
JP2004252973A
JP2004252973A JP2004026967A JP2004026967A JP2004252973A JP 2004252973 A JP2004252973 A JP 2004252973A JP 2004026967 A JP2004026967 A JP 2004026967A JP 2004026967 A JP2004026967 A JP 2004026967A JP 2004252973 A JP2004252973 A JP 2004252973A
Authority
JP
Japan
Prior art keywords
variable
data
character string
storage medium
information
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
JP2004026967A
Other languages
English (en)
Inventor
Su-Jeong Lee
秀正 李
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2004252973A publication Critical patent/JP2004252973A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 客体指向プログラムが記録された貯蔵媒体を提供する。
【解決手段】 任意のデータを貯蔵する客体変数及び前記客体変数を通じて前記データに対して行われる複数の関数を含む客体で構成される客体指向プログラムが記録された貯蔵媒体において、客体変数の名称を選択的に貯蔵できる変数識別子と、前記客体変数に貯蔵されるデータの変数タイプを選択的に貯蔵できる変数タイプ情報と、前記データが貯蔵されているメモリアドレスを指示するアドレス情報とを含むマスタクラスを備え、前記マスタクラスは、前記変数識別子、変数タイプ及びデータ値が入力され前記客体変数に前記データが貯蔵されるようにするデータ貯蔵関数を含むことを特徴とする。
【選択図】 図4

Description

本発明は任意のデータを貯蔵する客体変数及び前記客体変数を通じて前記データに対して行われる複数の関数を含む客体で構成される客体指向プログラムが記録された貯蔵媒体に係り、より詳しくは、一つのクラスから各種の客体を動的に生成することにより、クラスの設計時間、プログラムの開発時間及びコストの節減が可能な客体指向プログラムが記録された貯蔵媒体を提供することにある。
既存の手続き指向プログラム(Procedural-Oriented Program)はデータの構造とそのデータを変化させるアルゴリズムで構成される。このような手続き指向プログラムはデータと関数の連関関係を良好に表現できないため、アルゴリズムの変更による補修維持及びソースコードの再使用には限界がある。
したがって、補修維持及び再使用が容易なプログラムの製作のために客体指向プログラム(Object-Oriented Program)との概念が創案されたが、これは客体固有のデータとそのデータを処理する関数で構成される客体がメッセージを通じて相互通信を行うことにより所望の結果を得るように構成される。
ここで、客体とは効率的な情報管理のために意味を付与し、分類する概念的な単位であって、特定のデータと関連された関数を持つプログラムモジュールをいう。データはその客体の属性貯蔵に使用され、関数はその客体の実行可能な機能を定義する。各客体は属性を貯蔵するために少なくとも一つ以上の変数を備えているべきである。C++、Java(登録商標)及びPythonなどの客体指向プログラミング言語において、客体は前記客体の共通特性及び動作を包含/実行するようにフレームを提供する客体クラスから生成される。
ここで、各客体は所定の変数タイプを有する固定個数の変数に貯蔵されたデータを持つことが一般的である。したがって、変数タイプ又は変数個数が違う場合は各々のクラスを定義して使用するべきである。
これにより、各種の客体を一つのクラスから生成することにより、客体指向プログラミング言語の本来の目的である補修維持及び再使用を最大限達成せしめる技術に対する提案が必要である。
一方、客体直列化とは客体の内容をファイル又はネットヨークを通じてバイトストリームで送受信するために客体をストリーム化することをいう。さらに、直列化されたデータから本来の客体に復元することを脱直列化という。このような客体の直列化により得られる長所は客体自体の内容を入/出力の形式にかかわらず、客体をファイルに貯蔵することにより持続性(persistency)を提供することができ、客体自体をネットワークを通じて手軽に交換できるということにある。
C++はかかる機能を行えるようにオブジェクトクラス内に直列化メソッド(serialization method)を備えて各種の基本型と客体に対する直列化を行うように支援している。したがって、客体直列化のためには各クラスに直列化メソッドをオーバーライド(override)して各クラスの特性に合わせてカスタマイジング(customizing)する作業が行われるべき不便がある。
したがって、本発明の目的は、多様な種類の客体を生成するように変数タイプや変数個数に限定されない新たな一つのクラスを提供することにより、クラスの設計時間、プログラムの開発時間及びコストを節減できる客体指向プログラムが記録された貯蔵媒体を提供することにある。
上記目的を達成するために、本発明は、任意のデータを貯蔵する客体変数及び前記客体変数を通じて前記データに対して行われる複数の関数を含む客体で構成される客体指向プログラムが記録された貯蔵媒体において、客体変数の名称を選択的に貯蔵できる変数識別子と、前記客体変数に貯蔵されるデータの変数タイプを選択的に貯蔵できる変数タイプ情報と、前記データが貯蔵されているメモリアドレスを指示するアドレス情報とを含むマスタクラスを備え、前記マスタクラスは、前記変数識別子、変数タイプ及びデータ値が入力され前記客体変数に前記データが貯蔵されるようにするデータ貯蔵関数を含むことを特徴とする。
ここで、前記変数の名称は文字列として表現されることが好ましい。
また、前記変数タイプ情報は文字列として表現され、該当客体変数が少なくとも一つのデータを貯蔵できる他の客体変数を指示するようにマスタクラスを含むことが好ましい。
さらに、前記アドレス情報は一つ以上のデータを貯蔵できるようにポインターのリストで構成されることが好ましい。
前記データ貯蔵関数から入力される前記変数識別子は、客体内の客体変数が他の客体変数を指示することにより形成される客体間の連結関係である所定のデータ構造上の位置情報を備えており、前記データ貯蔵関数は前記位置情報に該当する位置の客体変数に前記データを貯蔵することが好ましい。
ここで、前記データの構造は客体変数間の連結に応じてレイヤが増加する構造であり、前記位置情報はデータを貯蔵しようとする客体変数に階層的に連結された上位レイヤに位置する他の客体変数の変数識別子と、前記客体変数の変数識別子をそれぞれ区分する区分子とを含むことができる。
また、前記データ貯蔵関数は前記データの構造上の位置情報に該当する位置に客体変数が存在する場合、変数タイプを整数配列及び文字列配列のようなアレイ形式の変数タイプに設定し、前記客体変数に前記データを追加貯蔵することが好ましい。
さらに、前記データ貯蔵関数は前記位置情報のうち、各レイヤに位置する他の客体変数が前記データの構造上に存在しない場合、変数識別子として前記各レイヤに存在しない客体変数の名称を、変数タイプとしてマスタクラスを有する客体を生成することが好ましい。
一方、本発明によるマスタクラスは客体内のデータを文字列に変換する文字列変換関数をさらに備え、前記文字列変換関数は該当客体変数を変数識別子、変数タイプ、データの個数及びデータの内容を含む文字列に変換することが好ましい。
また、前記文字列変換関数は該当客体変数の変数タイプを確認してマスタクラスである場合、データの個数だけ再帰的に反復実行されることが効果的である。
ここで、前記変換された文字列は各客体変数に対して変換された文字列の間に客体変数区分子をさらに含むことが好ましい。
一方、本発明による前記マスタクラスは客体内のデータを含む文字列から本来の客体に復元する客体復元関数をさらに備え、前記客体復元関数は前記変換された文字列から分離された各客体変数に対する情報に前記データ貯蔵関数を適用して復元することが好ましい。
ここで、前記客体復元関数は前記変換された文字列から分離された各客体変数に対する情報のうち、データの個数に応じてメモリを割当てられ、各データを前記メモリに順次に貯蔵することが好ましい。
本発明によれば、いずれの種類の客体でも生成が可能なマスタクラスを提供することにより、具現内容の変更によるプログラムインターフェース環境を変更せずに手軽に機能を追加するか変更及び削除することができる。
さらに、相異なる二つ以上のプログラムが連動運営される場合でも、内部的に構成されたメッセージ客体を文字列に変換し、これを伝送復元して本来と同じメッセージ客体を再構成することにより、すべてのプログラムで標準化された同じインターフェースを有するプログラムとして構成することができる。したがって、クラスの設計時間、プログラムの開発時間及びコストの節減が可能になる。
以下、添付図面を参照して本発明について詳細に説明する。
図1は本発明の好ましい実施例によるマスタクラスの構成図である。示したように、本発明によるマスタクラスは変数識別子(item discriminator)であるメッセージの名称、変数(item)タイプ情報である変数タイプ及びアドレス情報であるメモリアドレスに該当する属性を有する。
メッセージの名称は文字列形式の変数タイプとして宣言され、客体変数の変数名を貯蔵できる変数識別子を指示する。
変数タイプは文字列形式の変数タイプとして宣言され、変数名として指示されるデータの変数タイプ情報を示す。
ここで、変数タイプは整数、実数、文字列、整数配列、実数配列及び文字列配列などのように既存の変数タイプのみならず、本発明で定義しているマスタクラス型、すなわち、メッセージ客体(object)クラスの変数タイプも含むことができる。
既存のクラス構成では、客体変数と該当客体変数の変数タイプは予めクラスの設計時に決定されて固定されるため、客体内の関数を用いて各客体変数に貯蔵されているデータに接近しようとすると、関数は客体変数に該当する変数タイプを有する因子を媒介とするべきである。
しかし、本発明のメッセージ客体クラスは、関数の因子として客体変数を指定する変数識別子と、その変数タイプとを受けるため、客体変数の変数タイプが予め決定されず、データを該当客体変数に貯蔵するときに動的に決定される。
アドレス情報は変数識別子として指定される一つ又は複数の同じ変数タイプのデータを指示するポインターのリストで構成される。従って、客体変数は単一変数型又はアレイ形式の変数タイプを含むことができ、リンクドリスト(linked list)構造によるサイズの制限もない。
リンクドリストはCで容易に具現できる有用なデータ貯蔵方法であって、データ間の結合がデータ自体内に含まれている情報によりポインターの形式で定義される特性を持つ。ここで、ポインターは次のデータの記憶場所に対する情報を提供してデータ間の連結方法を提供する。
前記アドレス情報はポインターのリストのみで構成されるため、実際に指定可能な変数タイプには制限がない。
さらに、該当客体変数が少なくとも一つのデータを貯蔵する他の客体変数を指示するようにマスタクラス客体のポインターをアドレス情報に貯蔵される客体変数の変数タイプとして使用することにより、前記客体変数に連結された少なくとも一つのマスタクラス客体でサブリストを構成できるようにする。
前記過程によりマスタクラスから生成された一つの客体は客体内の客体変数が他の客体変数を指示することにより形成される客体間の連結関係である複雑なツリー構造を持つデータ構造を構成することができる。
但し、マスタクラス客体は異種の客体変数を受容するように1番目の階層に位置する変数タイプがマスタクラス変数タイプとして選定されるべきである。これにより、マスタクラス客体から生成される一つの客体の1番目の階層に属する変数識別子は1番目の階層の変数名称を示すことでなく、生成される客体自体の名称を示すように活用できるようになる。
ここで、階層とは客体内の客体変数が他の客体変数を指示することにより形成される客体間の連結関係である所定のデータ構造において、連結関係による客体が位置する位置情報を含むようになる。
すなわち、本発明では一つの客体変数と連結される他の客体変数は相異なる階層に属し、連結関係の回数に応じて階層を表現するレイヤは増加すると定義される。
例えば、生成された一つの客体はレイヤ0にあると見なし、該当客体に連結されている客体変数はレイヤ1に、前記レイヤ1に位置する客体変数と連結されている客体変数はレイヤ2に位置すると指定されうる。
図2は本発明の好ましい実施例によるデータの位置情報を含む変数識別子を示した図である。これはデータの生成又は照会のために区分子を用いてデータの位置情報を含むことを示す。
レイヤ0のメッセージ名称は、上述したように、メッセージ客体自体を示す変数識別子に該当する。
さらに、レイヤ1のメッセージ名称はレイヤ0のアドレス情報が指示しているメッセージ客体の変数識別子に該当する。同様に、レイヤ2のメッセージ名称はレイヤ1のアドレス情報が指示しているメッセージ客体の変数識別子である。
また、各レイヤのメッセージ名称、すなわち、変数識別子は区分子により分離されている。本実施例では区分子として“.”を使用しているが、これに限定られず、“/”、“@”のようにメッセージ名称として使用されない文字ならいずれもよい。
ここで、次のレイヤが存在する該当レイヤの変数タイプはマスタクラス型のものが好ましく、このような構成により各レイヤが指示しているデータは階層的に連結される。
図3Aは本発明のデータ貯蔵関数を適用して形成されたデータ構造の例を示した図である。
示したように、レイヤ0には本発明により生成された客体自体を示す変数識別子である“メッセージ例”と、次のレイヤであるレイヤ1に貯蔵されているメッセージ客体変数タイプである“サンプル1”及び“サンプル2”の変数タイプと、“サンプル1”及び“サンプル2”の各々を指示するアドレス情報であるポインターが貯蔵されているメッセージ客体とが位置している。
レイヤ1には変数識別子“サンプル1”と、データである“サンプル文字列1”及び“サンプル文字列2”の変数タイプである文字列と、“サンプル文字列1”及び“サンプル文字列2”の各々を指示するアドレス情報であるポインターが貯蔵されているメッセージ客体とが位置している。
さらに、レイヤ1には変数識別子“サンプル2”と、次のレイヤであるレイヤ2に貯蔵されているメッセージ客体変数タイプである“サンプル3”及び“サンプル4”の変数タイプと、“サンプル3”及び“サンプル4”の各々を指示するアドレス情報であるポインターが貯蔵されているメッセージ客体とが位置している。
レイヤ2には変数識別子“サンプル3”と、データである“サンプルサブ文字列1”及び“サンプルサブ文字列2”の変数タイプである文字列と、“サンプルサブ文字列1”及び“サンプルサブ文字列2”の各々を指示するアドレス情報であるポインターが貯蔵されているメッセージ客体とが位置している。
さらに、レイヤ2には変数識別子“サンプル4”と、データである10000、20000の変数タイプである整数と、10000及び20000の各々を指示するアドレス情報であるポインターが貯蔵されているメッセージ客体とが位置している。
図3Bは図3Aに示した客体変数が貯蔵しているデータ構成例を図式的に示した図である。同図において、矢印はポインターを示し、円状のボックス処理表示部はデータを示す。
一方、図1に示したように、マスタクラスには属性を貯蔵するための客体変数と、このような客体変数に接近してデータに所望の作業を行う複数の関数とが定義されている。
本発明による実施例では、データ貯蔵関数(data storing function)、データ照会関数(data retrieving function)、文字列変換関数(string conversion function)及び客体復元関数(object restoring function)が表現されているが、これに限定されず、選択的にこれらを含むこともできる。
図4は本発明によるデータ貯蔵関数の作動を示した流れ図である。
本発明によるデータ貯蔵関数は変数識別子、変数タイプ及びデータ値をその因子として有する。
まず、前記メッセージ客体クラスを定義する(S1)。
すなわち、客体変数の変数名称を選択的に貯蔵できる変数識別子と、前記客体変数に貯蔵されるデータの変数タイプを選択的に貯蔵できる変数タイプ情報と、前記データが貯蔵されているメモリアドレスを指示するアドレス情報とを含むマスタクラスを定義する。
生成しようとする位置にデータを生成するために、生成しようとするデータのデータ構造上の位置情報を含めて変数識別子を入力する(S3)。位置情報を含む変数識別子を識別子情報として称する。
データ構造上の位置情報は、上述したように、データが位置できるデータ構造上の階層を示すレイヤを区分する区分子を含むことが好ましい。
入力された識別子情報を用いて生成しようとする位置にデータを生成する。所望の生成位置にデータを生成する過程は次の通りである。
まず、前記識別子情報のうち、現在のレイヤ、例えば、レイヤkのメッセージ名称に該当する情報を分離する(S5)。
さらに、前記識別子情報に次のレイヤ、例えば、レイヤk+1に該当する情報があるかを確認する(S7)。本発明の好ましい実施例によれば、各レイヤは区分子により分離されるため、前記識別子情報に区分子がある場合は次のレイヤに該当する情報があると判断される。
次のレイヤに対する情報がないと判断される場合、前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じ変数識別子を有する客体変数が既にデータの構造内に存在するか否かを確認する(S9)。
前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じ変数識別子を有するメッセージ客体がデータの構造内に存在しない場合、生成しようとするメッセージ名称を有するメッセージ客体を生成する(S11)。
前記メッセージ客体の生成は、新たなメッセージ客体の貯蔵空間を割当てられて前記現在のレイヤkのメッセージ名称を変数識別子に貯蔵し、貯蔵しようとするデータのアドレス情報を前記割当てられたメッセージ客体のアドレス情報に貯蔵することを含む。
一方、前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じメッセージ客体がデータの構造内に存在する場合、貯蔵しようとするデータのアドレス情報を前記メッセージ客体のアドレス情報に追加する(S13)。
前記メッセージ客体のアドレス情報に貯蔵しようとするデータのアドレス情報を追加することは前記メッセージ客体の変数タイプに応じて変化する。
前記メッセージ客体の変数タイプがアレイ型の変数でない場合は、前記メッセージ客体の変数タイプをアレイ型の変数に変換することが好ましい。
前記識別子情報に次のレイヤ、例えば、レイヤk+1に該当する情報があるか確認した結果(S7)、次のレイヤに対する情報があると判断される場合、前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じメッセージ客体が既にデータの構造内に存在する否かを確認する(S15)。
前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じメッセージ客体がデータの構造内に存在する場合、次のレイヤk+1に移動して(S17)、前記S5から過程を反復実行する。
一方、前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じメッセージ客体がデータの構造内に存在しない場合、前記識別子情報のうち、現在のレイヤkのメッセージ名称を変数識別子とするメッセージ客体を登録する(S19)。
ここで、メッセージ客体を登録することは、前記識別子情報のうち、現在のレイヤkのメッセージ名称を変数識別子とするメッセージ客体の割当てを含む。
メッセージ客体を登録した後、次のレイヤk+1に移動して(S17)、前記S5から過程を反復実行する。
データをデータ構造上の所望の位置に生成させる前記データ貯蔵関数と、所望の位置のデータ値を読み出すデータ照会関数とは、データへの接近側面ではその流れが類似している。各メッセージ客体のアドレス情報を用いて所望の位置まで接近した後、生成の場合はデータをその位置に貯蔵し、照会の場合は該当データ値を抽出することが違う。
上述した方法により生成されたデータの構造において、データ値を照会する方法は図5を参照して説明する。
本発明のデータ照会関数はデータ値を抽出しようとするデータ値に該当する変数識別子をその因子として有する。
照会しようとするデータのデータ構造上の位置情報を含めて変数識別子を入力する(S21)。
前記識別子情報のうち、現在のレイヤ、例えば、レイヤkのメッセージ名称に該当する情報を分離する(S23)。
さらに、前記識別子情報に次のレイヤ、例えば、レイヤk+1に該当する情報があるかを確認する(S25)。本発明の好ましい実施例によれば、各レイヤは区分子により分離されるため、前記識別子情報に区分子がある場合、次のレイヤに該当する情報があると判断される。
次のレイヤに対する情報がないと判断される場合、前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じ変数識別子を有するメッセージ客体が既にデータの構造内に存在するか否かを確認する(S27)。
前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じ変数識別子を有するメッセージ客体がデータの構造内に存在しない場合、照会は失敗する(S29)。
一方、前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じ変数識別子を有するメッセージ客体がデータの構造内に存在する場合、前記メッセージ客体のアドレス情報を用いて前記メッセージ客体のデータを抽出する(S31)。
前記識別子情報に次のレイヤ、例えば、レイヤk+1に該当する情報があるかを確認した結果(S25)、次のレイヤに対する情報があると判断される場合、前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じ変数識別子を有するメッセージ客体が既にデータの構造内に存在するかを確認する(S33)。
前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じ変数識別子を有するメッセージ客体がデータの構造内に存在する場合、次のレイヤk+1に移動して(S35)、前記S23から過程を反復実行する。
一方、前記識別子情報のうち、現在のレイヤkのメッセージ名称と同じ変数識別子を有するメッセージ客体がデータの構造内に存在しない場合、照会は失敗する(S29)。
上述した方法により生成されたデータの構造を持つメッセージ客体のデータを一つの文字列に変換する関数は図6を参照して説明する。
一つの客体内のすべての客体変数に貯蔵されているデータ、すなわち、データ構造上の最上位のメッセージ客体と階層的に連結された複数のデータを一つの文字列に変換し、このように変換された文字列を再び階層的構造に復元することはデータの伝送に有用である。
本発明の文字列変換関数は文字列に変換しようとするメッセージ客体の名称である識別子をその因子として有する。
まず、文字列に変換しようとするメッセージ客体を指定する(S41)。
次に、各レイヤ別に順次に指定されたメッセージ客体の識別子から現在のレイヤに該当する変数識別子のみを抽出して該当メッセージ客体のメッセージ名称、データの変数タイプ、データの個数及びデータの内容を抽出する(S43)。前記メッセージ名称、データの変数タイプ及びデータの内容は該当情報から読み出されることができ、前記データの個数はアドレス情報の個数を調べることにより抽出が可能である。前記データの内容はこれを指示するアドレス情報を読んで順次に読み出すことができる。
このように抽出された情報を用いて該当メッセージ客体のメッセージ名称を作成し、前記データの変数タイプ、データの個数及びデータの内容を一つの文字列に変換して既存の文字列に付加する(S45)。
該当メッセージ客体のデータを一つの文字列に変換して既存の文字列に付加するまえに、メッセージ客体の識別を可能にする区分子を添加することが好ましい。
前記S43及びS45を行うことにより、データの構造内に貯蔵されているデータは本来のデータ構造への復元に必要な情報を含むことができる。
該当メッセージ客体の変数タイプがメッセージ客体である場合、データの個数だけ再帰的に過程を反復実行することが好ましく、これは次のような過程により具体化される。
該当メッセージ客体の変数タイプがメッセージ客体であるかを確認して(S47)、メッセージ客体である場合はメッセージ客体が指示しているデータの個数だけ貯蔵されたデータに対して順次に前記S43及びS45を反復実行する。
これは、前記メッセージ客体が指示しているデータの個数が1個であるかを確認して(S51)、一つである場合は該当メッセージ客体が指示している次のメッセージ客体に移動し(S53)、一つ以上である場合は残りアドレス情報をスタックに貯蔵して(S55)、最初のアドレス情報が指示するメッセージ客体に移動する(S53)。
ここで、スタックは最後に貯蔵された情報が最善として処理されるようにする情報貯蔵方式に該当するため、現在のメッセージ客体の変数タイプがメッセージ客体であり、複数のアドレス情報を有している場合、前記S43以下の過程を再帰的に反復実行する効果を提供する。
すなわち、前記S43乃至S47は一つの客体に対して文字列に変換する過程を示すため、文字列に変換すべきデータが依然として存在する場合(S49)は前記S43以下を再帰的に反復実行することができる。
S41乃至S55を行うことにより、客体内のデータに関する情報は一つの文字列を形成する。
客体内のデータを一つの文字列に変換することは、二つ以上の相異なるプログラムが運用されるとき、データを他のプログラムに伝送するためである。
文字列に変換されたデータを受信したプログラムは上述した客体内のデータ貯蔵方法を用いてこれを本来のデータ構造を持つ客体に復元することができる。本来のデータ構造を持つ客体に復元する関数は、前記変換された文字列から分離された各客体変数に対する情報に前記データ貯蔵関数を適用して復元できる。
すなわち、客体復元関数は、前記変換された文字列から分離された各客体変数に対する情報のうち、データの個数に応じてメモリを割当てられ、各データを順次に貯蔵するようになる。
本発明の文字列変換関数により変換された文字列から一つの客体変数に対する情報を分離すると、これは該当客体変数の変数識別子、変数タイプ、データの個数及びデータの内容を含む。
すなわち、前記変数識別子をメッセージの名称に貯蔵し、変数タイプを変数タイプ情報に貯蔵するとともに、データの個数を読み出してデータの貯蔵空間を割当てられてデータの内容を前記割当てられた貯蔵空間に順次に貯蔵し、これに該当するメモリアドレスを貯蔵することにより、一つの客体変数に対する復元は完了される。
各客体変数に対する前記復元過程を繰り返して一つの客体を本来のデータ構造を持つ客体に復元することができる。
このような構成により、各種の客体を生成するように変数タイプや変数個数に限定されない新たな一つのクラスを提供することにより、クラスの設計時間、プログラムの開発時間及びコストを節減することができる。
本発明の好ましい実施例によるマスタクラスの構成図である。 本発明の好ましい実施例による位置情報を含む変数識別子を示した図である。 本発明のデータ貯蔵関数を適用して形成された任意のデータ構造例を示した図である。 本発明のデータ貯蔵関数を適用して形成された任意のデータ構造例を示した図である。 本発明によるデータ貯蔵関数の作動を示した流れ図である。 本発明によるデータ照会関数の作動を示した流れ図である。 本発明による文字列変換関数の作動を示した流れ図である。

Claims (13)

  1. 任意のデータを貯蔵する客体変数及び前記客体変数を通じて前記データに対して行われる複数の関数を含む客体で構成される客体指向プログラムが記録された貯蔵媒体において、
    客体変数の名称を選択的に貯蔵できる変数識別子と、前記客体変数に貯蔵されるデータの変数タイプを選択的に貯蔵できる変数タイプ情報と、前記データが貯蔵されているメモリアドレスを指示するアドレス情報とを含むマスタクラスを備え、
    前記マスタクラスは、前記変数識別子、変数タイプ及びデータ値が入力され前記客体変数に前記データが貯蔵されるようにするデータ貯蔵関数を含むことを特徴とする客体指向プログラムが記録された貯蔵媒体。
  2. 前記変数の名称は文字列として表現されることを特徴とする請求項1に記載の客体指向プログラムが記録された貯蔵媒体。
  3. 前記変数タイプ情報は文字列として表現され、該当客体変数が少なくとも一つのデータを貯蔵できる他の客体変数を指示するようにマスタクラスを含むことを特徴とする請求項2に記載の客体指向プログラムが記録された貯蔵媒体。
  4. 前記アドレス情報は一つ以上のデータを貯蔵できるようにポインターのリストで構成されることを特徴とする請求項3に記載の客体指向プログラムが記録された貯蔵媒体。
  5. 前記データ貯蔵関数から入力される前記変数識別子は、客体内の客体変数が他の客体変数を指示することにより形成される客体間の連結関係である所定のデータ構造上の位置情報を備えており、前記データ貯蔵関数は前記位置情報に該当する位置の客体変数に前記データを貯蔵することを特徴とする請求項4に記載の客体指向プログラムが記録された貯蔵媒体。
  6. 前記データの構造は客体変数間の連結に応じてレイヤが増加する構造であり、前記位置情報はデータを貯蔵しようとする客体変数に階層的に連結された上位レイヤに位置する他の客体変数の変数識別子と、前記客体変数の変数識別子をそれぞれ区分する区分子とを含むことを特徴とする請求項5に記載の客体指向プログラムが記録された貯蔵媒体。
  7. 前記データ貯蔵関数は前記データの構造上の位置情報に該当する位置に客体変数が存在する場合、変数タイプを整数配列及び文字列配列のようなアレイ形式の変数タイプに設定し、前記客体変数に前記データを追加貯蔵することを特徴とする請求項6に記載の客体指向プログラムが記録された貯蔵媒体。
  8. 前記データ貯蔵関数は前記位置情報のうち、各レイヤに位置する他の客体変数が前記データの構造上に存在しない場合、変数識別子として前記各レイヤに存在しない客体変数の名称を、変数タイプとしてマスタクラスを有する客体を生成することを特徴とする請求項7に記載の客体指向プログラムが記録された貯蔵媒体。
  9. 前記マスタクラスは客体内のデータを文字列に変換する文字列変換関数をさらに備え、前記文字列変換関数は該当客体変数を変数識別子、変数タイプ、データの個数及びデータの内容を含む文字列に変換することを特徴とする請求項1乃至請求項8のうち、いずれか1項に記載の客体指向プログラムが記録された貯蔵媒体。
  10. 前記文字列変換関数は該当客体変数の変数タイプを確認してマスタクラスである場合、データの個数だけ再帰的に反復実行されることを特徴とする請求項9に記載の客体指向プログラムが記録された貯蔵媒体。
  11. 前記変換された文字列は各客体変数に対して変換された文字列の間に客体変数区分子をさらに含むことを特徴とする請求項9に記載の客体指向プログラムが記録された貯蔵媒体。
  12. 前記マスタクラスは客体内のデータを含む文字列から本来の客体に復元する客体復元関数をさらに備え、前記客体復元関数は前記変換された文字列から分離された各客体変数に対する情報に前記データ貯蔵関数を適用して復元することを特徴とする請求項9に記載の客体指向プログラムが記録された貯蔵媒体。
  13. 前記客体復元関数は前記変換された文字列から分離された各客体変数に対する情報のうち、データの個数に応じてメモリを割当てられ、各データを前記メモリに順次に貯蔵することを特徴とする請求項12に記載の客体指向プログラムが記録された貯蔵媒体。

JP2004026967A 2003-02-18 2004-02-03 客体指向プログラムが記録された貯蔵媒体 Pending JP2004252973A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0010162A KR100500245B1 (ko) 2003-02-18 2003-02-18 객체 지향 프로그램이 기록된 저장 매체

Publications (1)

Publication Number Publication Date
JP2004252973A true JP2004252973A (ja) 2004-09-09

Family

ID=32844866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004026967A Pending JP2004252973A (ja) 2003-02-18 2004-02-03 客体指向プログラムが記録された貯蔵媒体

Country Status (4)

Country Link
US (1) US7240074B2 (ja)
JP (1) JP2004252973A (ja)
KR (1) KR100500245B1 (ja)
CN (1) CN1525312A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429608B2 (en) 2007-09-07 2013-04-23 Samsung Electronics Co., Ltd. Method and apparatus for providing implicit variability rules for component model and architecture design

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843890B2 (en) 2012-05-10 2014-09-23 International Business Machines Corporation System and method for transplanting source code
US9792092B2 (en) 2014-07-03 2017-10-17 Able World International Limited Method of unifying information and tool from a plurality of information sources and computer program product and matterizer using the same
CN106537334B (zh) * 2014-07-03 2020-10-09 阿贝尔环球国际有限公司 在个人工作空间中对统一化元素进行组合工作的方法、计算机可读存储介质与系统
KR102455316B1 (ko) * 2014-07-03 2022-10-14 에이블 월드 인터내셔널 리미티드 복수의 정보원에서 얻는 정보 및 도구를 통일화하는 방법 및 이를 응용한 컴퓨터 프로그램 제품과 장치
US9727391B2 (en) 2014-07-08 2017-08-08 Able World International Limited Method for performing task on unified information units in a personal workspace
US9626157B2 (en) 2014-07-03 2017-04-18 Able World International Limited Method of projecting a workspace and system using the same
WO2016091210A1 (en) * 2014-12-12 2016-06-16 U3D Limited Content delivery method
US11360828B2 (en) 2014-07-08 2022-06-14 Able World International Limited Method for combining unified matters in personal workspace and system using the same
KR102021447B1 (ko) 2018-04-06 2019-09-16 서울대학교산학협력단 컴퓨팅 장치 및 그것의 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146221A (en) 1989-01-13 1992-09-08 Stac, Inc. Data compression apparatus and method
US5802352A (en) * 1996-03-18 1998-09-01 International Business Machines Corp. Method for separating data retrieval and presentation in an object-oriented reporting system
JP3763937B2 (ja) * 1996-06-28 2006-04-05 富士通株式会社 オブジェクト指向プログラミング装置、およびオブジェクト結合プログラム記憶媒体
US5809507A (en) * 1996-07-01 1998-09-15 Sun Microsystems, Inc. Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework
US6151623A (en) * 1996-12-13 2000-11-21 International Business Machines Corporation Agent activity report via object embedding
JP3489962B2 (ja) * 1997-04-23 2004-01-26 沖電気工業株式会社 プログラム開発装置および並列リアルタイム処理装置
JPH11126162A (ja) 1997-10-22 1999-05-11 Sony Corp 情報処理装置および情報処理方法、並びに記録媒体
US6119125A (en) * 1998-04-03 2000-09-12 Johnson Controls Technology Company Software components for a building automation system based on a standard object superclass
US6028998A (en) 1998-04-03 2000-02-22 Johnson Service Company Application framework for constructing building automation systems
US6141595A (en) * 1998-04-03 2000-10-31 Johnson Controls Technology Company Common object architecture supporting application-centric building automation systems
US6466944B1 (en) 1999-12-02 2002-10-15 Novell, Inc. Method for creation, management, and use of files containing multiple virtual data streams using standard file system APIs
US6681234B2 (en) * 2000-12-12 2004-01-20 Sun Microsystems, Inc. Method and apparatus for storing long-lived objects in a virtual machine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429608B2 (en) 2007-09-07 2013-04-23 Samsung Electronics Co., Ltd. Method and apparatus for providing implicit variability rules for component model and architecture design

Also Published As

Publication number Publication date
KR100500245B1 (ko) 2005-07-11
KR20040074766A (ko) 2004-08-26
CN1525312A (zh) 2004-09-01
US20040162837A1 (en) 2004-08-19
US7240074B2 (en) 2007-07-03

Similar Documents

Publication Publication Date Title
CN100418056C (zh) 生成方法的系统与方法
JP3272014B2 (ja) 階層構造データ処理情報を含むデータ処理辞書を作成する方法及び装置
US6836890B1 (en) Methods and systems for message translation and parsing of data structures in a distributed component architecture
CN111666526A (zh) 页面生成方法、装置、设备及存储介质
CN104035754A (zh) 一种基于xml的自定义代码生成方法及生成器
JP2000330858A (ja) 画像処理装置およびプログラム記憶媒体
CN101146281A (zh) 一种面向移动终端的创建图形用户界面模型
CN108345691B (zh) 数据源通用处理框架构建方法、数据源处理方法及装置
JP2004252973A (ja) 客体指向プログラムが記録された貯蔵媒体
EP1990737A1 (en) Document transformation system
US20050192929A1 (en) Generation and conversion of object that provide for efficient object modification
CN108228912A (zh) 一种业务数据的处理方法及相关装置
JP2005094652A (ja) データ圧縮装置、データ復元装置およびデータ管理装置
US7313567B1 (en) Schemaless XML payload generation
WO2018038065A1 (ja) 情報管理装置並びにファイル管理方法
US8566814B2 (en) Transporting object packets in a nested system landscape
CN114722112A (zh) 一种可视化列表数据展示方法及其装置
US20060253833A1 (en) System and method for efficient hosting of wireless applications by encoding application component definitions
JP2016157415A (ja) 情報管理装置並びにファイル管理方法
CN113535844B (zh) 一种数据汇聚方法及系统
US10817486B2 (en) Containment of data structures with data objects in data modeling tools
CN101151612A (zh) 对文档进行随机访问的方法和系统
CN104158695A (zh) 一种网络管理系统的网络管理方法
KR102500278B1 (ko) 대량의 lod 저장을 위한 맵리듀스 기반 데이터 변환 시스템 및 방법
JP4741313B2 (ja) プログラム生成装置、プログラム生成方法及びコンパイラ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070613

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070724