JP3531536B2 - 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法 - Google Patents

抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法

Info

Publication number
JP3531536B2
JP3531536B2 JP15070099A JP15070099A JP3531536B2 JP 3531536 B2 JP3531536 B2 JP 3531536B2 JP 15070099 A JP15070099 A JP 15070099A JP 15070099 A JP15070099 A JP 15070099A JP 3531536 B2 JP3531536 B2 JP 3531536B2
Authority
JP
Japan
Prior art keywords
value
type
instance
data structure
dictionary
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
JP15070099A
Other languages
English (en)
Other versions
JP2000339175A (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 JP15070099A priority Critical patent/JP3531536B2/ja
Publication of JP2000339175A publication Critical patent/JP2000339175A/ja
Application granted granted Critical
Publication of JP3531536B2 publication Critical patent/JP3531536B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ構造定義が
ISO8824「ASN.1仕様」に準拠して記述され
る抽象構文記法を用いたデータ構造定義における型情報
の動的割り当て方法に関する。
【0002】
【従来の技術】データの抽象構文を定義するための記述
に、ISO8824で規定された「ASN.1仕様(A
bstract Syntax Notation On
e:抽象構文記法)」がある。ASN.1は、整数値、
文字列やビット列等基本的なデータ要素を順序列や集合
として組み合わせることによりデータの論理的構造(抽
象構文)を表現できる。
【0003】ところで、従来、データ構造定義が上述し
たASN.1仕様に準拠して記述され、そのデータ構造
定義に基づくデータ構造の操作を、例えば、C++等オ
ブジェクト指向言語で記述されたコンピュータプログラ
ム(応用プログラム)で行う際の手順が図17に示され
ている。勿論ここで記述される応用プログラムは、AS
N.1仕様に準拠して記述された構造定義を表すクラス
記述に依存する。図17を参照してこの応用プログラム
の作成手順について簡単に説明する。プログラマは、デ
ータ構造定義に基づく型の各々と、ASN.1の組み込
み型の内ASN.1記述に於いて修飾を必要とせず他か
ら参照できる型の各々に対応するクラス定義を予め作成
する。そして、それらのインスタンスを作成して値操作
を行う応用プログラム記述を行う(ステップS171〜
SS174)。次に、その応用プログラム記述からオブ
ジェクト指向言語コンパイラおよびリンカによって、実
行可能なコンピュータプログラムを得、その実行可能な
応用プログラムを実行(ステップS175〜S177)
していた。
【0004】
【発明が解決しようとする課題】上述したように従来技
術によれば、データ構造定義がASN.1仕様に準拠し
て記述され、そのデータ構造定義に基づくデータ構造の
操作をオブジェクト指向言語で記述された応用プログラ
ムにより実行するコンピュータシステムでは、その応用
プログラム作成時にASN.1仕様に基づくデータ構造
定義を与える必要があった。従って、まず、データ構造
定義に基づく型の各々と、ASN.1の組み込み型の内
ASN.1記述に於いて修飾を必要とせず他から参照で
きる型の各々に対応するクラス定義を予め生成し、それ
らのインスタンスを作成して値操作を行う応用プログラ
ム記述を行い、次に、その応用プログラム記述からコン
パイラおよびリンカによって、実行可能な応用プログラ
ムを得、その実行可能な応用プログラムを実行してい
た。このため、ISO8824「ASN.1仕様」に準
拠して定義されたデータ構造の完全な記述を予め得るこ
とのできない対象を取り扱うことはできなかった。
【0005】本発明は上記事情に基づいてなされたもの
であり、データ構造定義がASN.1仕様に準拠して記
述され、そのデータ構造定義に基づくデータ構造の操作
をオブジェクト指向言語で記述された応用プログラムで
行う際に、予めASN.1仕様に準拠したデータ構造の
完全な記述を得ない状態で応用プログラムの作成を可能
とし、ASN.1仕様に準拠したデータ構造定義 を予
め作成された応用プログラム実行中に読み込んでAS
N.1の型辞書インスタンスを作成し、応用プログラム
実行中にASN.1の型辞書インスタンスを検索し、こ
のことによりデータ構造を特定して値の操作を行うこと
のできる、抽象構文記法を用いたデータ構造定義におけ
る型情報の動的割り当て方法を提供することを目的とす
る。
【0006】
【課題を解決するための手段】上述した課題を解決する
ために請求項1に記載の抽象構文記法を用いたデータ構
造定義における型情報の動的割り当て方法は、データ構
造定義がASN.1仕様に準拠して記述され、そのデー
タ構造定義に基づくデータ構造の操作をオブジェクト指
向言語で記述されたプログラムにより実行するコンピュ
ータシステムにおいて、前記ASN.1データ構造定義
に基づく型の基本種別ごとに関数ジャンプテーブルを用
意し、コンパイル後の前記プログラム実行時に、前記デ
ータ構造定義を読み込んで、そのデータ構造定義に基く
それぞれの型と ASN.1の組込み型の内修飾を必要
とせず他から参照できるそれぞれの型に対し、前記関数
ジャンプテーブルへのポインタと少なくとも型基本情報
とを含む辞書項目インスタンスを作成すると共に、これ
ら辞書項目インスタンスへのポインタを保持する型辞書
インスタンスを作成し、前記データ構造を操作する際、
前記型辞書インスタンスから操作する値の型に対応する
前記辞書項目インスタンスを指すポインタを得て値ハン
ドルインスタンスに設定することによって型情報を特定
し、必要に応じて前記関数ジャンプテーブルを参照する
ことによって、その型情報に対応して用意される関数を
呼び出し値の操作を行うことを特徴とする。
【0007】請求項2に記載の抽象構文記法を用いたデ
ータ構造定義における型情報の動的割り当て方法は、請
求項1に記載の同方法において、前記辞書項目インスタ
ンスを作成する際、データ構造定義により宣言された型
が構造型の場合、型補助情報としてその構造型の構成要
素のおのおのを値ハンドルインスタンスに対応づけ、そ
の値ハンドルインスタンスの並びを保持する構造要素補
助情報を設定することを特徴とする。請求項3に記載の
抽象構文記法を用いたデータ構造定義における型情報の
動的割り当て方法は、請求項2に記載の同方法におい
て、前記関数ジャンプテーブルに用意される関数は、必
要に応じて型に応じた値内部表現保持部を用意し、この
値内部表現保持部へ前記構造要素補助情報にある値ハン
ドルインスタンスの並びを複製し、前記値ハンドルイン
スタンスがその値内部表現保持部へのポインタを保持す
るように設定し、操作に対応する値を前記値内部表現保
持部に設定することを特徴とする。請求項4に記載の抽
象構文記法を用いたデータ構造定義における型情報の動
的割り当て方法は、請求項1に記載の同方法において、
前記値ハンドルインスタンスによる値操作において、そ
の操作の性質に従い、値ハンドルインスタンスへのアク
セスのみ行うか、値ハンドルインスタンスが持つ辞書項
目インスタンスへのポインタを辿り、辞書項目インスタ
ンスの参照のみ行うか、あるいは辞書項目インスタンス
が持つ関数ジャンプテーブルへのポインタを辿り、その
関数ジャンプテーブルに用意されているその操作に対応
する関数を呼び出すことを特徴とする。
【0008】請求項5に記載の抽象構文記法を用いたデ
ータ構造定義における型情報の動的割り当て方法は、デ
ータ構造定義がASN.1仕様に準拠して記述され、そ
のデータ構造定義に基づくデータ構造の操作をオブジェ
クト指向言語で記述されたプログラムにより実行するコ
ンピュータシステムにおいて、前記プログラムをコンパ
イルして実行プログラムを作成するステップと、前記プ
ログラムの実行においてデータ構造を操作する際、前記
ASN.1仕様に準拠して記述されたデータ構造定義を
読み込み、前記データ構造定義で宣言された型の各々
と、ASN.1の組み込み型の内ASN.1記述におい
て修飾を必要とせず他から参照できる型の各々に対応す
る辞書項目インスタンスを作成すると共に、これら辞書
項目インスタンスへのポインタを保持する型辞書インス
タンスを作成するステップと、これら辞書項目インスタ
ンスの全てを保持する型辞書インスタンスを作成するス
テップと、値ハンドルインスタンスを生成し、この値ハ
ンドルインスタンスで生成し、操作する値の型に対応す
る辞書項目インスタンスを指すポインタを前記型辞書イ
ンスタンスから得て前記値ハンドルインスタンスに設定
するステップと、前記値ハンドルインスタンスによる値
操作において、その操作の性質に従い、値ハンドルイン
スタンスへのアクセスのみ行うか、値ハンドルインスタ
ンスが持つ辞書項目インスタンスへのポインタを辿り、
辞書項目インスタンスの参照のみ行うか、あるいは辞書
項目インスタンスが持つ関数ジャンプテーブルへのポイ
ンタを辿り、その関数ジャンプテーブルに用意されてい
るその操作に対応する関数を呼び出すそれぞれのステッ
プと、前記関数を呼び出すに際し、その関数に値内部表
現保持部が存在するか否かを調べるステップと、存在し
ない場合、値内部表現保持部を用意して前記値ハンドル
インスタンスがこの値内部表現保持部へのポインタを保
持するように設定し、この値内部表現保持部をアクセス
するステップとから成ることを特徴とする。請求項6に
記載の抽象構文記法を用いたデータ構造定義における型
情報の動的割り当て方法は、さらに、既にある値ハンド
ルインスタンスに対して値操作を行うか否かを調べ、前
記値操作を行うか、あるいは新たな値ハンドルインスタ
ンスを作成するステップから成ることを特徴とする。
【0009】本発明の抽象構文記法を用いたデータ構造
定義における型情報の動的割り当て方法は、プログラム
作成時にASN.1仕様に基づくデータ構造定義を与え
ることなく、プログラム実行時にそのデータ構造定義を
与えて動的に型を割り当てることを可能とするものであ
る。そのために、ASN.1型の基本種別の各々に対応
する関数ジャンプテーブルを持ち、プログラム実行時に
データ構造定義を読み込んで、そのデータ構造定義に基
づく型の各々と、ASN.1の組込み型の内ASN.1
記述に於いて修飾を必要とせず他から参照できる型の各
々に対応する辞書項目インスタンスを作成し、かつ、そ
れぞれにおける辞書項目インスタンスの型に応じた型補
助情報を作成する。
【0010】特に、構造型の場合、型補助情報として、
その構造型の構成要素の各々を値ハンドルインスタンス
に対応付けて、その値ハンドルインスタンスの並びを保
持する構造要素を示す情報を設定すると共に、各辞書項
目インスタンスが対応する型補助情報をポインタで指す
ように設定する。そして、それら辞書項目インスタンス
へのポインタを保持する型辞書インスタンスを作成し、
データ構造定義に基づくデータ型あるいはASN.1組
み込み型の内 ASN.1記述において修飾を必要とせ
ず他から参照できる型の値を操作する際に、前準備とし
て、値ハンドルインスタンスを作成する。次に、この値
ハンドルインスタンスで操作する値の型に対応する辞書
項目インスタンスを指すポインタを、型辞書インスタン
スから得、この値ハンドルインスタンスに設定する。実
際にデータ型の値の操作を行う場合には、操作の性質に
より、値ハンドルインスタンスへのアクセスのみを行う
場合と、値ハンドルインスタンスが持つ辞書項目インス
タンスへのポインタを辿り、辞書項目インスタンスの参
照のみ行う場合と、辞書項目インスタンスが持つ関数ジ
ャンプテーブルへのポインタを辿り、その関数ジャンプ
テーブルに用意されているその操作に対応する関数を呼
び出す場合があり、関数ジャンプテーブルに用意されて
いる関数は、必要に応じ、型に応じた値内部表現保持部
を用意し、特に、構造型の場合は、値内部表現保持部へ
型補助情報にある値ハンドルインスタンス の並びを複
製し、値ハンドルインスタンスがその値内部表現保持部
へのポインタを保持するように設定し、操作に対応する
値を値内部表現保持部に設定する。
【0011】このことにより、プログラム実行時にデー
タ構造定義を与えて動的に型を割り当てることができ、
プログラム作成時にASN.1型を特定しない汎用的な
処理を記述することによって応用プログラムの作成がで
き、プログラマの負担が軽減される。また、型が何であ
るかをキーとして型情報が辞書化されて保持されるた
め、割り当てる型をデータとして取り扱うことができ
る。
【0012】
【発明の実施の形態】図1は本発明の実施形態を示すブ
ロック図である。本発明の抽象構文記法を用いたデータ
構造定義における型情報の動的割り当て方法は、図に示
すように、型辞書インスタンス1、辞書項目インスタン
ス2、型補助情報3、値ハンドルインスタンス4、関数
ジャンプテーブル5、値内部表現保持部6および「AS
N.1仕様」に準拠して記述された データ構造定義7
により実現される。ここでは、プログラムの記述にC+
+言語を用いるものとし、C++は、クラスインスタン
スモデルに基づいたオブジェクト指向言語であることか
ら、クラス定義として、型辞書クラス11、辞書項目ク
ラス12、値ハンドルクラス13を持つものとする。
【0013】前記ASN.1仕様に準拠して記述された
データ構造定義7は、コンピュータプログラム実行中に
読み込まれ、型辞書インスタンス1と辞書項目インスタ
ンス2が作成される。辞書項目インスタンス2は、デー
タ構造定義7に基づく型のおのおのと、ASN.1組み
込み型の内ASN.1記述に於いて修飾を必要とせず他
から参照できる型のおのおのに対応して作成される。辞
書項目インスタンス2は、データ構造定義読み込み時に
割り当て可能なデータ型毎に生成され、内容として、関
数ジャンプテーブル5へのポインタと型補助情報3への
ポインタ、そして型基本情報21を持つ。型辞書インス
タンス1は、辞書項目インスタンス2へのポインタを保
持し、名称他により、辞書項目インスタンス2を検索す
る機能を提供するものである。型辞書インスタンス1
は、辞書項目インスタンス同様、データ構造定義読み込
み時に生成される。値ハンドルインスタンス4は、AS
N.1値をコンピュータプログラム上で取り扱うための
値ハンドルクラス13のインスタンスである。コンピュ
ータプログラム上では必要に応じこのインスタンスを作
成する。値ハンドルインスタンス4は、作成されただけ
では、データ型は与えられていない。値操作の前に、
辞書インスタンス(辞書項目インスタンス2の集合)の
検索を行い、辞書項目インスタンス2へのポインタが設
定されなければならない。この辞書項目インスタンス2
へのポインタ設定がASN.1型の割り当てに相当す
る。値ハンドルインスタンス4には、値を操作するため
の値操作関数が、特定の型によらず網羅的に用意されて
いる。値ハンドルインスタンス4に用意された値操作関
数の幾つかは、最終的に関数ジャンプテーブル5に用意
されたそれぞれの関数を呼び出す。
【0014】関数ジャンプテーブル5は、ASN.1型
の基本種別毎に用意される。ASN.1型の基本種別の
選択は実装にまかされる。この実装による選択の例を、
図14に(リスト1)として掲示してある。各関数ジャ
ンプテーブル5の関数種別の並びは共通である。各関数
は、データ構造定義とは無関係にあらかじめASN.1
型基本種別に応じて用意される。用意される関数種別は
実装にまかされる。用意される関数種別の例を図15に
(リスト2)として掲示してある。値内部表現保持部6
は、ASN.1型基本種別に応じ形態が異なる。取り扱
いは関数ジャンプテーブル5に連結された関数が行う。
【0015】図2、図3は、本発明の抽象構文記法を用
いたデータ構造定義における型情報の動的割り当て方法
を実現するための手順をフローチャートで示したもので
ある。以下、図2、図3に示すフローチャートを参照し
ながら図1に示す本発明実施形態の動作手順につき説明
する。まず、ASN.1仕様に準拠して記述されたデー
タ構造の操作を行うオブジェクト指向言語、例えば、C
++によりプログラミングを行う(ステップS21)。
そして、そのプログラムをコンパイルして実行プログラ
ムを作成する(ステップS22、S23)。次に作成し
た実行プログラムを実行する(ステップS24)。実行
プログラムは、ASN.1仕様に準拠して記述されたデ
ータ構造定義を読み込み(ステップS25)、データ構
造定義に基づく型の各々と、ASN.1の組込み型の内
ASN.1記述において修飾を必要とせず、他から参照
できる型の各々に対応する辞書項目インスタンス2を作
成し、おのおのの辞書項目インスタンス2の型に応じた
型補助情報3を作成し、特に、構造型の場合、型補助情
報として、その構造型の構成要素の各々を値ハンドルイ
ンスタンス4に対応付けて、その値ハンドルインスタン
ス4の並びを保 持する構造要素を示す情報を設定する
(ステップS26)。それら辞書項目インスタンス4の
全てを保持する型辞書インスタンス1を作成する(ステ
ップS27)。
【0016】データ構造定義に基づくデータ型あるいは
ASN.1組み込み型の内 ASN.1記述において修
飾を必要とせず他から参照できる型の値を操作する前準
備として、値ハンドルインスタンス4を作成し、次に、
この値ハンドルインスタンス4で操作する値の型に対応
する辞書項目インスタンス2を指すポインタを、型辞書
インスタンス1から得、この値ハンドルインスタンス4
に設定する(ステップS31)。そして、この値ハンド
ルインスタンス4に対し値操作を行う。値の操作に対す
る処理手順には、値ハンドルインスタンス4にアクセス
するだけのもの(ステップS35)、値ハンドルインス
タンス4が持つ辞書項目インスタンス2へのポインタを
辿り、辞書項目インスタンス2にアクセスするもの(ス
テップS34)、値ハンドルインスタンス2が持つ辞書
項目インスタンス2へのポインタを辿り、更に、関数ジ
ャンプテーブル5へのポインタを辿り、その関数ジャン
プテーブル5に用意されている、操作に対応する関数を
呼び出すもの(ステップS33)がある。
【0017】関数ジャンプテーブル5に用意された関数
は、値内部表現保持部6があるか否かを調べ(ステップ
S36)、無い場合は、値内部表現保持部6を用意し、
値ハンドルインスタンス4が、値内部表現保持部6への
ポインタを保持するように設定する(ステップS3
7)。関数ジャンプテーブル5に用意された関数は、そ
の後、値内部表現保持部6へアクセスする(ステップS
38)。既にある値ハンドルインスタンス4に対して値
操作を行う場合(ステップS39)は、上述したステッ
プS32〜S38に至る各処理を繰り返し、新たな値ハ
ンドルインスタンス4を作成する場合(ステップS4
0)は、上述したステップS31〜S39に従う値ハン
ドルインスタンス4の作成を繰り返す。
【0018】図4〜図13は、本発明実施形態の具体的
な動作を説明するために引用した図であり、これらを参
照しながら具体的なASN.1記述と本発明により用意
される応用プログラムでの手順を追って詳細に説明す
る。なお、以下の説明で出現するC++のクラス名、関
数名、型名等の名称は単に一例であり、本発明の要旨を
制限するものではない。
【0019】図4は辞書作成例を示す図であり、辞書項
目インスタンス(図1に示す2)として、ASN.1仕
様に準拠して記述されたデータ構造記述7の内容が設定
された状態を示している。図中、図1と同一番号の付さ
れたブロックは図1のそれと同じとする。応用プログラ
ム10上のAdg_dictは、辞書機能を持った型辞書クラス
である。dicは型辞書インスタンスである。dic.Read("E
x1.ats")は、型辞書インスタンス1に辞書情報の読み込
みを命じている。本発明実施形態において、データ構造
定義記述は、一旦辞書ファイルに変換される。"Ex1.at
s"は、辞書ファイル名である。辞書ファイル生成手続き
および 辞書ファイル形式は本発明の主旨とは直接関係
しないためここでは詳細を述べない。
【0020】図4では、辞書項目インスタンス2とし
て、Ex1.PersonalRecord(241)とEx1.YEAR(24
2)およびASN.1組み込み型のINTEGER(243)
を表示している。この他にEx1.WhenAndWhereの定義、お
よびASN.1組み込み型の内ASN.1記述におい
て、修飾の必要がなく他から参照可能なBOOLEANやEXTER
NALなどの型の辞書項目インスタンス2が生成されてい
る。Ex1.PersonalRecordの辞書項目インスタンス241
は、Ex1.PersonalRecordがSequenceTypeの派生なので、
SequenceType用の関数ジャンプテーブル5(544)へ
のポインタを持つ。 また、構造内部の要素情報を型補
助情報345として持っている。Ex1.YEARの辞書項目イ
ンスタンス242はIntegerTypeの派生であるので、 In
tegerType用の関数ジャンプテーブル5(546)への
ポインタを持つ。ASN.1組み込み型のINTEGERの辞
書項目インスタンス243もまた、IntegerType用の関
数ジャンプテーブル5(546)へのポインタを持つ。
【0021】SequenceType用関数ジャンプテーブル5
(544)には、領域確保関数としてSequenceType用の
領域確保関数が設定されているが、int値設定関数や文
字列値設定関数としてはエラー処置関数が設定されてい
る。SequenceTypeが割り当てられた値ハンドルインスタ
ンス(図1における4)に対してint値設定操作(SetInt
Val(int)呼び出し) を行うと最終的にこのエラー処置関
数が動作する。IntegerType用関数ジャンプテーブル5
(546)には領域確保関数としてIntegerType用の領
域確保関数が設定されている。これは、SequenceType用
の領域確保関数とは異なる動作を行うものである。ま
た、int値設定関数としてint値 IntegerTypeの値として
設定する関数が設定されている。IntegerTypeが割り当
てられた値ハンドルインスタンス(図1における4)に
対してint値設定操作(SetIntVal(int)呼び出し) を行
うと最終的にint値設定関数が動作する。
【0022】図5は、型割り当ての例を示す図であり、
値ハンドルインスタンス(図1における4)にASN.
1型を割り当てた状態、即ち、辞書項目インスタンス
(図1における2)のポインタが設定された状態を示し
ている。図中、図1、図4と同一番号の付されたブロッ
クは、それぞれ図1、図4のそれと同じとする。応用プ
ログラム10上のAdg_dataは、ASN.1値を表す値ハ
ンドルクラス13であり、dataはそのインスタンスであ
る。Adg_data data;を宣言した時点では、辞書項目イン
スタンス2への結び付きはなく、ASN.1型が未割り
当ての状態である。dict.Assign(data,"Ex1.YEAR")は、
ASN.1型を割り当てる手続きである。ここでは、型
辞書インスタンスdict に対し、値ハンドルインスタン
スdataにASN.1型Ex1.YEARを割り当てるように要求
している。型辞書クラス11は、この要求に対して辞書
項目インスタンス2を検索し、指定ASN.1型の情報
を発見すると、辞書項目インスタンス2へのポインタを
値ハンドルインスタンス4に設定する。
【0023】図6は値操作の例として型特定の値を設定
する例を示す図であり、型の割り当てられた値ハンドル
インスタンス4に対し、割り当てられたASN.1型に
特定される値を設定する仕組みが示されている。なお、
ここではEx1.YEAR以外の型については省略してある。図
中、図1、図4に示すブロックと同一番号の付されたブ
ロックは、それぞれ、図1、図4に示すそれと同じとす
る。応用プログラム10上のdata.SetIntVal(5)は、値
ハンドルインスタンスに対し int値“5”を設定する要
求である。値ハンドルインスタンス4に対するSetIntVa
l()関数は、まず、値ハンドルインスタンス4上にある
辞書項目インスタンス2へのポインタ61を調べ、次に
辞書項目インスタンス2上の関数ジャンプテーブル5の
ポインタ62を調べ、関数ジャンプテーブル5内のint
値設定関数5462へのポインタ63が指す関数を呼び
出す。呼び出されたIntegerType用int値設定関数546
2は、値ハンドルインスタンス4に IntegerType用の値
内部表現保持部6(63)へのポインタ65が設定され
ているか否かを調べ、ここでポインタが設定されていな
ければ、IntegerType用領域確保関数5461を呼び出
す。
【0024】IntegerType用領域確保関数5461は、I
ntegerType用値内部表現保持部63で必要とする領域を
確保し、値ハンドルインスタンス4の値内部表現保持部
ポインタ65を設定する。予め値内部表現保持部6がポ
イントされていた場合は、IntegerType用領域確保関数
5461の呼び出しはない。その後、IntegerType用int
値設定関数5462は、内部表現保持部ポインタ65が
示す値内部表現保持部6が持つInteger用内部表現保持
領域にSetIntValの引数、即ち、ここでは“5”をセッ
トする。IntegerType以外の型が割り当てられていても
各型用int値設定関数へのポインタが指す関数を呼び出
すまでの手続き(上述した61,62,63)は同じで
ある。但し、型毎のint値設定関数の動作は異なってお
り、BOOLEAN用であれば“0”なら“偽”を、“0”以
外なら“真”をセットし、REAL用であれば、内部表現で
あるdoubleに変換した上で値をセットする。構造型や文
字列型はエラーの処置(エラー処置関数5463の呼び
出し)を行う。
【0025】図7は、値設定以外の値操作例として、値
をエンコードする例を示す図であり、既にASN.1値
の設定されている値ハンドルインスタンスの値を利用者
領域にエンコードする仕組みが示されている。図中、図
1、図4に示すブロックと同一番号の付されたブロック
は、それぞれ、図1、図4に示すそれと同じとする。応
用プログラム10上のdata.EncodeTo(buf,buf_len)は、
dataの値を利用者指定のバッファbuf(70)上にエン
コードする要求である。buf_lenはバッファの容量を示
す。値ハンドルインスタンス4に対するEncodeTo()関数
は、まず、値ハンドルインスタンス4上にある 辞書項
目インスタンス2へのポインタ71を調べ、次に、辞書
項目インスタンス2上の関数ジャンプテーブル5のポイ
ンタ72を調べ、 関数ジャンプテーブル5内のencode
関数5464へのポインタ73が指す関数を呼び出す。
呼び出されたIntegerType用encode関数5464は、値
ハンドルインスタンス4に IntegerType用の値内部表現
保持部6(63)へのポインタ75が設定されているか
否かを調べ、ポインタが設定されていれば、値内部表現
保持部6(63)にある値をASN.1のエンコード方
式に従い利用者バッファ70上にエンコードする。Inte
gerType以外の型が割り当てられていても各型用encode
関数へのポインタ が指す関数を呼び出すまでの手続き
(上述した71,72,73)は同じである。 但し、
エンコード作業自体は型毎に異なっている。
【0026】尚、全ての操作がASN.1基本型毎用意
される関数ジャンプテーブル5経由で行われるわけでは
ない。図8は、辞書項目インスタンスをアクセスするだ
けで終了する操作例を示す図である。図中、図1、図4
に示すブロックと同一番号の付されたブロックは、それ
ぞれ、図1、図4に示すそれと同じとする。図8におい
て、応用プログラム10上のdata.IsString()は、data
に文字列型が割り当てられているか否かを問い合わせる
手続きである。値ハンドルインスタンス4に対するIsSt
rig()関数は、まず、値ハンドルインスタンス4上にあ
る辞書項目インスタンス2へのポインタ81を調べ、次
に、辞書項目インスタンス2上の型基本情報211を調
べて、文字列型であれば“真”を、そうでなければ
“偽”を返して終了する。ここで関数ジャンプテーブル
5は使用しない。
【0027】次に本発明を実装する際における構造型デ
ータの取り扱いにつき、図9〜図13を参照しながら説
明する。図9は、構造型定義と対応する辞書項目インス
タンスと型補助情報の内部情報構造を示している。図
中、図1、図4に示すブロックと同一番号の付されたブ
ロックは、それぞれ、図1、図4に示すそれと同じとす
る。図9において、構造型に関する型補助情報3は、構
造要素に関する情報、即ち、構造型用型補助情報311
(312)を持つ。構造型用型補助情報311(31
2)は、各構造要素の型に対応したASN.1型が割り
当てられた値ハンドルインスタンス4と同型ものが並ん
だものであり、構造型の値内部表現保持部6の雛型とな
る。ここでは、図面が繁雑になるのを避けるために関数
ジャンプテーブル5の記載を省略してあるが、これまで
の説明と同じく辞書項目インスタンス2からそれらはポ
イントされているものとする。
【0028】図9において、Ex1.PersonalRecordの辞書
項目インスタンスからポイントされる構造型用型補助情
報311は、Ex1.PersonalRecordの要素の並びに沿っ
て、name用の値ハンドルインスタンス41、born用の値
ハンドルインスタンス42、 num-of-children用の値ハ
ンドルインスタンス43を持っている。データ構造定義
に示されるように、nameはIA5Stringなのでname用値ハ
ンドルインスタンス41にはIA5String型が割り当てら
れており、IA5Stringの辞書項目インスタンス244を
ポイントしている。bornは、Ex1.WhenAndWhereなのでbo
rn用値ハンドルインスタンス42には Ex1.WhenAndWher
e型が割り当てられており、WhenAndWhereの 辞書項目イ
ンスタンス245をポイントしている。要素そのものも
構造型であるが、他の2つの単純型と取り扱いは何ら変
わらない。単にポイントしている辞書項目インスタンス
2が構造型のものとなっているだけである。num-of-chi
ldrenはINTEGERなのでnum-of-children用の値ハンドル
インスタンス43にはINTEGER型が割り当てられてお
り、INTEGERの辞書項目インスタンス243をポイント
している。これら3つのいずれの値ハンドルインスタン
ス(41,42,43)も値内部表現保持部6はポイン
トしておらず、最終的にも値内部表現保持部6をポイン
トすることはない。これらは、Ex1.PersonalRecordの値
内部表現保持部6の内容の雛型となるものである。Ex1.
WhenAndWhereの型情報には、year用とplace用の値ハン
ドルインスタンス(それぞれ44,45)を持つ構造型
用型補助情報312へのポインタが設定されている。
【0029】図10〜図12を参照しながら構造型の要
素に値を設定する仕組みについて説明する。図10は、
Ex1.PersonalRecordが割り当てられた値ハンドルインス
タンスの構造要素"name"にアクセスするまでの過程を示
す図である。図中、図1、図4、図9に示すブロックと
同一番号の付されたブロックは、それぞれ、図1、図
4、図9に示すそれと同じとする。また、応用プログラ
ム10上のdata["name"]は要素名指定で要素にアクセス
するための記述である。関数としてはAg_data& Adg_dat
a::operator[](const char*) となっている。値ハンド
ルインスタンス4に対する[]オペレータ関数は、まず、
値ハンドルインスタンス4上にある辞書項目インスタン
ス2へのポインタ101を調べ、次に、辞書項目インス
タンス241内の型基本情報211(図8参照)から型
が構造型であることを確認する。続いて、値ハンドルイ
ンスタンス4の値内部表現保持部6へのポインタ102
が設定されているか否かを調べる。設定されていない場
合、辞書項目インスタンス2からポイント(103)さ
れる関数ジャンプテーブル5上の領域確保関数へのポイ
ンタ104によってポイントされる構造型用の領域確保
関数5441を呼び出す。構造型用の領域確保関数54
41は、必要サイズの領域(図中、破線で囲まれた楕円
A)を確保した上で、構造型用型補助情報311の値ハ
ンドルインスタンス並びをコピーする(107)。 そ
して、この領域Aを値ハンドルインスタンス4の内部表
現保持部6(構造体用内部表現保持部61)へのポイン
タ102が指すように設定する。構造型の内部表現は、
要素値の値ハンドルインスタンス4を並べたものにな
る。この時点で、各要素である値ハンドルインスタンス
4は、それぞれASN.1型が割り当てられているが、
それぞれの値内部表現保持部6へのポインタは設定され
ていない。即ち、値は設定されていない。その後、[]オ
ペレータは指定の要素名から、指定要素が何番目の要素
であるかを辞書項目インスタンス2の型補助情報3上に
ある要素名テーブルを参照して決定し、指定要素108
を関数戻りとして戻る。即ち、data["name"] は、値ハ
ンドルインスタンスdata内のname要素そのもの(10
8)を表す。
【0030】図11は、選択された構造型要素に対し値
を設定する仕組みを説明するために引用した図である。
図中、図1、図4、図9に示すブロックと同一番号の付
されたブロックは、それぞれ、図1、図4、図9に示す
それと同じとする。応用プログラム10上のSetStrVal
は文字列値を設定する関数である。また、値内部表現保
持部6の形態は異なるが、基本的な動作の流れはSetInt
Valと同じである。図10で説明したようにして得られ
る値ハンドルインスタンス4に対するSetStrVal()関数
は、まず、値ハンドルンスタンス4上にある辞書項目イ
ンスタンス2へのポインタ(111)を調べ、次に、型
情報上の関数ジャンプテーブル5のポインタ112を調
べ、関数ジャンプテーブル5内の文字列値設定関数への
ポインタ113が指す関数を呼び出す。呼び出されたIA
5String用文字列値設定関数5471は、値ハンドルイ
ンスタンス4に IA5String用の値内部表現保持部6(文
字列用内部表現保持部62)へのポインタ115が設定
されているかを調べ、ポインタが設定されていなけれ
ば、IA5String用領域確保関数5472を呼び出す。 I
A5String用領域確保関数5472は、IA5String用値内
部表現保持部6としての領域62を確保し、値ハンドル
インスタンス4の値内部表現保持部6へのポインタ11
5を設定する。予めこの値内部表現保持部6がポイント
されていた場合は、IA5String用領域確保関数5471
の呼び出しはない。その後、IA5String用文字列値設定
関数5471は、値内部表現保持部ポインタ115が示
す文字列用表現保持領域62が持つポインタに文字列デ
ータ用に可変長領域621を確保し、SetStrValの引数
をセットする。これら一連の動作は、対象となっている
値ハンドルインスタンス4が、単独のインスタンスであ
るか、構造型の要素であるかは無関係である。
【0031】図12は、図11と同様に他の要素にも値
をセットした状態を説明するために引用した図である。
説明の重複を避ける意味で説明を省略するが、要素born
は構造型が割り当てられているものの動作の基本は全く
同じである。尚、図中、63、631はIntegerType内
部表現保持部、611は構造型内部表現保持部、621
は文字列用内部表現保持部である。
【0032】次に、構造型要素アクセスのための補助機
構について図13を参照しながら説明する。図13は、
構造型要素に順次アクセスするための機構を示す概念図
である。応用プログラム10上のAdg_probeは、構造型
の要素に順次アクセスするためのクラスである。ここで
は、Ex1.PersonalRecord型が割り当てられ た値ハンド
ルインスタンスdataの要素を順次アクセスする。構造要
素順次アクセスインスタンス8は、構造型用値内部表現
保持部61へのポインタを持ち、別途、構造型用値内部
表現保持部61上に並んだ値ハンドルインスタンス4へ
の位置付けのためのインデックス値nilを持っている。
このインデックス値を順次変更することにより、構造型
用値内部表現保持部61上にならんだ値ハンドルインス
タンス4(41,42,43)を並びに沿って順次アク
セスできる。応用プログラム上のpb.Standby()は、先頭
の一つ前の仮想的な位置に位置付けする関数である。p
b.Next()は位置を次の要素に移動するものである。Next
()関数は最後の要素の次は“偽”を返すので、for文等
の 判断に用いることができる。
【0033】参考のために図16にリスト3として掲示
した応用プログラムは、上述した機構の応用として、構
造型が割り当てられたASN.1値C++クラスインス
タンスを受け、内容が数値型の要素に対して整数値を、
文字列型の要素に対して文字列をインタラクティブに設
定することをネストした構造に対してリカーシブに行う
例である。
【0034】以上説明のように本発明によれば、データ
構造定義がASN.1仕様に準拠して記述され、そのデ
ータ構造定義に基づくデータ構造の操作をオブジェクト
指向言語で記述された応用プログラムで行う際に、予め
ASN.1仕様に準拠したデータ構造の完全な記述を得
ない状態で応用プログラムの作成が可能となり、AS
N.1仕様に準拠したデータ構造定義 を予め作成され
た応用プログラム実行中に読み込んでASN.1の型辞
書インスタンスを作成し、応用プログラム実行中にAS
N.1の型辞書インスタンスを検索し、このことによ
り、データ構造を特定して値の操作を行うことのできる
抽象構文記法を用いたデータ構造定義における型情報の
動的割り当て方法を提供できる。
【0035】
【発明の効果】以上説明のように本発明によれば、プロ
グラム実行の過程に動的にデータ構造の特定が実現され
るため、プログラム作成時にASN.1の型情報を特定
せずにコンピュータプログラムが作成でき、プログラマ
の負担軽減がはかれる。また、型情報につき、型が何で
あるかをキーとして辞書化して保持しているため、割り
当てるべき型が何であるかをデータとして取り扱うこと
ができる。このことは、特に、OSI(開放型システム
間相互接続:Open System Interfac
e)のオブジェクト管理機能におけるオブジェクト識別
子によって型を指定する仕組みにおいて、コンピュータ
プログラムで動的に型を割り当てる必要がある際に用い
て顕著な効果が得られる。更に、コンピュータプログラ
ム作成において、ASN.1型を特定しない汎用の処理
を記述することによりコンピュータプログラムをコンパ
クトにできる。また、ASN.1の型情報をデータとし
て取り扱うことが出来る。その理由は、本発明における
辞書項目インスタンスおよび 値ハンドルインスタンス
はASN.1型情報を保持しているからである。これに
より、本発明をISO8824「ASN.1仕様」に準
拠した記述のパーザとして利用が可能となる。
【図面の簡単な説明】
【図1】 本発明の実施形態を示すブロック図である。
【図2】 本発明実施形態の動作手順をフローチャート
で示した図である。
【図3】 本発明実施形態の動作手順をフローチャート
で示した図である。
【図4】 本発明実施形態の動作を説明するために引用
した図であり、辞書項目インスタンスおよび型辞書イン
スタンスが構築された状態を示す図である。
【図5】 本発明実施形態の動作を説明するために引用
した図であり、値ハンドルインスタンスにASN.1型
が割り当てられた状態を示す図である。
【図6】 本発明実施形態の動作を説明するために引用
した図であり、値ハンドルインスタンスに値が設定され
る仕組みを示す図である。
【図7】 本発明実施形態の動作を説明するために引用
した図であり、値設定以外の操作例として、値ハンドル
インスタンスの値をエンコードする場合の動作概念を示
す図である。
【図8】 本発明実施形態の動作を説明するために引用
した図であり、関数ジャンプテーブルを介さない操作例
を示す図である。
【図9】 本発明実施形態の動作を説明するために引用
した図であり、構造型の辞書項目インスタンス形式を示
す図である。
【図10】 本発明実施形態の動作を説明するために引
用した図であり、構造型の要素にアクセスする仕組みを
示す図である。
【図11】 本発明実施形態の動作を説明するために引
用した図であり、構造型の要素に値を設定する仕組みを
示す図である。
【図12】 本発明実施形態の動作を説明するために引
用した図であり、階層化した構造に値が設定された状態
を示す図である。
【図13】 本発明実施形態の動作を説明するために引
用した図であり、構造型の要素に順次アクセスする機構
を示す図である。
【図14】 本発明実施形態の動作を説明するために引
用した図であり、ASN.1型の基本種別をリスト1と
して掲示した図である。
【図15】 本発明実施形態の動作を説明するために引
用した図であり、関数ジャンプテーブルに連結される関
数の例をリスト2として掲示した図である。
【図16】 本発明実施形態の動作を説明するために引
用した図であり、ASN.1構造型の数値/文字列要素
に値を設定する関数例のプログラム記述をリスト3とし
て掲示した図である。
【図17】 従来の手法による手順をフローチャートで
示す図である。
【符号の説明】
1…型辞書インスタンス 2(241,242,243,244,245)…辞書
項目インスタンス 3(311,312)…型補助情報 4(41,42,43,44,45)…値ハンドルイン
スタンス 5(544,546,547)…関数ジャンプテーブル 6(61,62,63,611,621,631)…値
内部表現保持部 7…「ASN.1仕様」準拠のデータ構造定義 8…構造要素順次アクセスインスタンス 10…応用プログラム 11…型辞書クラス 12…辞書項目クラス 13…値ハンドルクラス 21(211)…型基本情報 61(62,71,72,81,82,101,10
2,103,111,112,113,115)…ポイ
ンタ 5461(5462,5463,5464)…関数
フロントページの続き (56)参考文献 特開 平5−20081(JP,A) 特開 平10−198570(JP,A) 特開 平8−263292(JP,A) 特開 平5−260129(JP,A) 西山智・他,「ASN.1データベー スのための高速なASN.1処理系の設 計」,情報処理学会第50回全国大会講演 論文集,日本,社団法人情報処理学会, 1995年 3月17日,第1分冊,pp. 159−160 春本要・他,「OODBMSを用いた ASN.1データベースの実現とその評 価」,電子情報通信学会論文誌,日本, 社団法人電子情報通信学会,1996年11月 25日,Vol.J79−D−I, No. 11,pp.975−983 井崎智子・他,「OSI管理に基づく NMS−MIBの設計」,情報処理学会 第41回全国大会講演論文集,日本,社団 法人情報処理学会,1990年 8月15日, 第1分冊,pp.149−150 桐山清,「Windowsプログラミ ング時代のC++言語入門 第2回」, Interface,日本,CQ出版株 式会社,1999年 5月 1日,Vol. 25, No.5,pp.165−171,IS SN:0387−9569 松岡聡,「Javaにおける高速化の 動向」,計測と制御,日本,社団法人計 測自動制御学会,1998年 9月10日,V ol.37, No.9,pp.627−632 シルト ハーバート,「標準講座C+ + 初版」,日本,株式会社翔泳社, 1999年 3月20日,初版,pp.495− 515,ISBN:4−88135−705−0 Bernard Van Haeck e,「JDBCパーフェクトガイド第1 版」,日本,株式会社コンピュータ・エ ージ社,1998年 6月10日,初版,p p.154−172,ISBN:4−87566− 186−X 「UX ソフトウェア C++ AP I言語説明書WTH36−2」,日本,日 本電気株式会社,1998年12月,第2版, pp.7−46,161−191 「VisiBroker for C ++ プログラマーズガイド3000−3− 651」,日本,株式会社日立製作所, 1997年12月,初版,pp.171−191 Michael Sample an d Gerald Neufeld," High−performance A SN.1 compiler”,COM PUTER communicatio ns,1994年 3月,Vol.17, N o.3,pp.156−171 Duke Tantiprasut, et.al.,”ASN.1 Pro tocol Specificatio n for Use With Arb itrary Encoding Sc hemes”,IEEE/ACM Tr ansactions on Netw orking,1997年 8月,Vol. 5, No.4,pp.502−513 中田充,「RPCを使ったネットワー ク・プログラミング」,OPEN DE SIGN,日本,CQ出版株式会社, 1995年12月 1日,Vol.2, N o.6,pp.58−77 (58)調査した分野(Int.Cl.7,DB名) G06F 9/44 G06F 9/45 G06F 9/06 G06F 12/00 G06F 17/30 JSTファイル(JOIS) CSDB(日本国特許庁)

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】 データ構造定義がASN.1仕様に準拠
    して記述され、そのデータ構造定義に基づくデータ構造
    の操作をオブジェクト指向言語で記述されたプログラム
    により実行するコンピュータシステムにおいて、前記デ
    ータ構造定義に基づく型の基本種別ごとに関数ジャンプ
    テーブルを用意し、コンパイル後のプログラム実行時に
    前記データ構造定義を読み込んで、そのデータ構造定義
    に基くそれぞれの型とASN.1の組込み型の内修飾を
    必要とせず他から参照できるそれぞれの型に対し、前記
    関数ジャンプテーブルへのポインタと少なくとも型基本
    情報とを含む辞書項目インスタンスを作成すると共に、
    これら辞書項目インスタンスへのポインタを保持する型
    辞書インスタンスを作成し、前記データ構造を操作する
    際、前記型辞書インスタンスから操作する値の型に対応
    する前記辞書項目インスタンスを指すポインタを得、値
    ハンドルインスタンスに設定することによって型情報を
    特定し、必要に応じて前記関数ジャンプテーブルを参照
    することによって、その型情報に対応して用意される関
    数を呼び出し値の操作を行うことを特徴とする抽象構文
    記法を用いたデータ構造定義における型情報の動的割り
    当て方法。
  2. 【請求項2】 前記辞書項目インスタンスを作成する
    際、データ構造定義により宣言された型が構造型の場
    合、型補助情報としてその構造型の構成要素のおのおの
    を前記値ハンドルインスタンスに対応づけ、その値ハン
    ドルインスタンスの並びを保持する構造要素補助情報を
    設定することを特徴とする請求項1に記載の抽象構文記
    法を用いたデータ構造定義における型情報の動的割り当
    て方法。
  3. 【請求項3】 前記関数ジャンプテーブルに用意される
    関数は、必要に応じて型に応じた値内部表現保持部を用
    意し、この値内部表現保持部へ前記構造要素補助情報に
    ある値ハンドルインスタンスの並びを複製し、前記値ハ
    ンドルインスタンスがその値内部表現保持部へのポイン
    タを保持するように設定し、操作に対応する値を前記値
    内部表現保持部に設定することを特徴とする請求項2に
    記載の抽象構文記法を用いたデータ構造定義における型
    情報の動的割り当て方法。
  4. 【請求項4】 前記値ハンドルインスタンスによる値操
    作において、その操作の性質に従い、値ハンドルインス
    タンスへのアクセスのみ行うか、値ハンドルインスタン
    スが持つ辞書項目インスタンスへのポインタを辿り、辞
    書項目インスタンスの参照のみ行うか、あるいは辞書項
    目インスタンスが持つ関数ジャンプテーブルへのポイン
    タを辿り、その関数ジャンプテーブルに用意されている
    その操作に対応する関数を呼び出すことを特徴とする請
    求項1に記載の抽象構文記法を用いたデータ構造定義に
    おける型情報の動的割り当て方法。
  5. 【請求項5】 データ構造定義がASN.1仕様に準拠
    して記述され、そのデータ構造定義に基づくデータ構造
    の操作をオブジェクト指向言語で記述されたプログラム
    により実行するコンピュータシステムにおいて、前記プ
    ログラムをコンパイルして実行プログラムを作成するス
    テップと、前記プログラムの実行においてデータ構造を
    操作する際、前記ASN.1仕様に準拠して記述された
    データ構造定義を読み込み、前記データ構造定義で宣言
    された型の各々と、ASN.1の組み込み型の内AS
    N.1記述において修飾を必要とせず他から参照できる
    型の各々に対応する辞書項目インスタンスを作成すると
    共に、これら辞書項目インスタンスへのポインタを保持
    する型辞書インスタンスを作成するステップと、これら
    辞書項目インスタンスの全てを保持する型辞書インスタ
    ンスを作成するステップと、値ハンドルインスタンスを
    生成し、この値ハンドルインスタンスで生成され、操作
    する値の型に対応する辞書項目インスタンスを指すポイ
    ンタを前記型辞書インスタンスから得て前記値ハンドル
    インスタンスに設定するステップと、前記値ハンドルイ
    ンスタンスによる値操作において、その操作の性質に従
    い、値ハンドルインスタンスへのアクセスのみ行うか、
    値ハンドルインスタンスが持つ辞書項目インスタンスへ
    のポインタを辿り、辞書項目インスタンスの参照のみ行
    うか、あるいは辞書項目インスタンスが持つ関数ジャン
    プテーブルへのポインタを辿り、その関数ジャンプテー
    ブルに用意されているその操作に対応する関数を呼び出
    すそれぞれのステップと、前記関数を呼び出すに際し、
    その関数に値内部表現保持部が存在するか否かを調べる
    ステップと、存在しない場合、値内部表現保持部を用意
    して前記値ハンドルインスタンスがこの値内部表現保持
    部へのポインタを保持するように設定し、この値内部表
    現保持部をアクセスするステップとからなることを特徴
    とする抽象構文記法を用いたデータ構造定義における型
    情報の動的割り当て方法。
  6. 【請求項6】 既にある値ハンドルインスタンスに対し
    て値操作を行うか否かを調べ、前記値操作を行うか、あ
    るいは新たな値ハンドルインスタンスを作成するステッ
    プをさらに有することを特徴とする請求項5に記載の抽
    象構文記法を用いたデータ構造定義における型情報の動
    的割り当て方法。
JP15070099A 1999-05-28 1999-05-28 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法 Expired - Fee Related JP3531536B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15070099A JP3531536B2 (ja) 1999-05-28 1999-05-28 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15070099A JP3531536B2 (ja) 1999-05-28 1999-05-28 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法

Publications (2)

Publication Number Publication Date
JP2000339175A JP2000339175A (ja) 2000-12-08
JP3531536B2 true JP3531536B2 (ja) 2004-05-31

Family

ID=15502518

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15070099A Expired - Fee Related JP3531536B2 (ja) 1999-05-28 1999-05-28 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法

Country Status (1)

Country Link
JP (1) JP3531536B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100488805B1 (ko) * 2002-12-10 2005-05-12 한국전자통신연구원 Asn.1 편집에서의 데이터의 처리 시스템 및 그 방법
CN101316241B (zh) * 2008-07-02 2013-05-01 中兴通讯股份有限公司 用于通信数据的tlv格式处理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520081A (ja) * 1991-07-11 1993-01-29 Nec Corp 管理対象操作の個別記述方式
JPH05260129A (ja) * 1992-03-12 1993-10-08 Nec Corp インターフェイス用構造体生成方式
DE69528749T2 (de) * 1995-02-17 2003-09-18 International Business Machines Corp., Armonk Objektorientierte Programmierschnittstelle zur Entwicklung und zur Ausführung einer Netzwerkverwaltungsapplikation auf einer Netzwerkkommunikationsinfrastruktur
US5815718A (en) * 1996-05-30 1998-09-29 Sun Microsystems, Inc. Method and system for loading classes in read-only memory

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
「UX ソフトウェア C++ API言語説明書WTH36−2」,日本,日本電気株式会社,1998年12月,第2版,pp.7−46,161−191
「VisiBroker for C++ プログラマーズガイド3000−3−651」,日本,株式会社日立製作所,1997年12月,初版,pp.171−191
Bernard Van Haecke,「JDBCパーフェクトガイド第1版」,日本,株式会社コンピュータ・エージ社,1998年 6月10日,初版,pp.154−172,ISBN:4−87566−186−X
Duke Tantiprasut, et.al.,"ASN.1 Protocol Specification for Use With Arbitrary Encoding Schemes",IEEE/ACM Transactions on Networking,1997年 8月,Vol.5, No.4,pp.502−513
Michael Sample and Gerald Neufeld,"High−performance ASN.1 compiler",COMPUTER communications,1994年 3月,Vol.17, No.3,pp.156−171
シルト ハーバート,「標準講座C++ 初版」,日本,株式会社翔泳社,1999年 3月20日,初版,pp.495−515,ISBN:4−88135−705−0
中田充,「RPCを使ったネットワーク・プログラミング」,OPEN DESIGN,日本,CQ出版株式会社,1995年12月 1日,Vol.2, No.6,pp.58−77
井崎智子・他,「OSI管理に基づくNMS−MIBの設計」,情報処理学会第41回全国大会講演論文集,日本,社団法人情報処理学会,1990年 8月15日,第1分冊,pp.149−150
春本要・他,「OODBMSを用いたASN.1データベースの実現とその評価」,電子情報通信学会論文誌,日本,社団法人電子情報通信学会,1996年11月25日,Vol.J79−D−I, No.11,pp.975−983
松岡聡,「Javaにおける高速化の動向」,計測と制御,日本,社団法人計測自動制御学会,1998年 9月10日,Vol.37, No.9,pp.627−632
桐山清,「Windowsプログラミング時代のC++言語入門 第2回」,Interface,日本,CQ出版株式会社,1999年 5月 1日,Vol.25, No.5,pp.165−171,ISSN:0387−9569
西山智・他,「ASN.1データベースのための高速なASN.1処理系の設計」,情報処理学会第50回全国大会講演論文集,日本,社団法人情報処理学会,1995年 3月17日,第1分冊,pp.159−160

Also Published As

Publication number Publication date
JP2000339175A (ja) 2000-12-08

Similar Documents

Publication Publication Date Title
US6169993B1 (en) Method, data structure, and computer program product for object state storage
US5339435A (en) Heterogenous software configuration management apparatus
US5832498A (en) Device for generating object-oriented interfaces for relational data bases and a process implemented by this device
US5802523A (en) Method and apparatus for reducing the memory required to store bind variable descriptors in a database
US5664177A (en) Data processing system having a data structure with a single, simple primitive
US6526455B1 (en) Object management method, apparatus and data structure
US5146593A (en) Procedure call interface
US7047524B1 (en) Object oriented ADN and method of converting a non-object oriented computer language to an object oriented computer language
US20030093420A1 (en) Method and system for retrieving sharable information using a hierarchically dependent directory structure
CN110109940A (zh) 将函数式的图遍历语言转换成扩展的结构化查询语言
Dennis Modularity
US20060282452A1 (en) System and method for mapping structured document to structured data of program language and program for executing its method
JPH09146821A (ja) 異質データタイプに対して透明性を持った持続的なデータサポートを提供する方法と装置
JPH1040087A (ja) ソフトウェア工学で使われるデータモデルの取り扱い方法
WO2009142712A1 (en) Dynamic collection attribute-based computer programming language methods
CN108563694A (zh) 对逻辑删除的sql执行方法、装置、计算机设备和存储介质
US5062039A (en) Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
US20060212881A1 (en) System and method for extending a programming language to include multiple dissimilar object systems
Connor et al. Type Equivalence Checking in Persistent Object Systems.
JP3531536B2 (ja) 抽象構文記法を用いたデータ構造定義における型情報の動的割り当て方法
GB2253500A (en) Object oriented-data bases
JPH02226472A (ja) データベース・システムおよびデータベース・システムにおける関数式評価方法
KR0123247B1 (ko) 디비엠에스(dbms)의 실시간 지원을 위한 데이타 조작어 처리 방법
CN118426752B (zh) 一种基于网络编程语言的逻辑表示的转换方法和装置
Börstler Feature-oriented classification and reuse in IPSEN

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040223

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080312

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090312

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090312

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100312

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100312

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110312

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees