JP2718427B2 - 大規模知識ベースにおけるデータアクセス方式 - Google Patents

大規模知識ベースにおけるデータアクセス方式

Info

Publication number
JP2718427B2
JP2718427B2 JP63319518A JP31951888A JP2718427B2 JP 2718427 B2 JP2718427 B2 JP 2718427B2 JP 63319518 A JP63319518 A JP 63319518A JP 31951888 A JP31951888 A JP 31951888A JP 2718427 B2 JP2718427 B2 JP 2718427B2
Authority
JP
Japan
Prior art keywords
program
procedure
function definition
generating
user
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
Application number
JP63319518A
Other languages
English (en)
Other versions
JPH02165239A (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.)
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 JP63319518A priority Critical patent/JP2718427B2/ja
Publication of JPH02165239A publication Critical patent/JPH02165239A/ja
Application granted granted Critical
Publication of JP2718427B2 publication Critical patent/JP2718427B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔概要〕 各種オブジェクト指向データベースシステムにおける
大規模データベースの効率的なデータアクセス方式に関
し、 大規模データベースに対してユーザが記述したプログ
ラムを、効率の良い手続に変換することを目的とし、 ユーザプログラムの関数定義に基づいて、集合の要素
用の関数定義と集合全体の関数定義をそれぞれ別関数と
して生成するプログラム生成手段と、ユーザプログラム
中の手続き文を解析して、その手続き文のオブジェクト
と手続き属性名とパラメータを分離抽出する手続き解析
手段と、前記手続き解析手段によって得られた情報を用
いて、前記ユーザプログラムから変換プログラムを生成
する手続き生成手段と、前記変換プログラムをオブジェ
クトモジュールに翻訳するためのコンパイラ手段と、生
成された前記オブジェクトモジュールと実行ライブラリ
を結合しロードモジュールを生成するリンカ手段を有す
るように構成する。
〔産業上の利用分野〕
本発明は、各種オブジェクト指向データベースシステ
ムにおける大規模データベースの効率的なデータアクセ
ス方式に関する。
〔従来の技術〕
従来のオブジェクト指向システムでは、集合全体に対
する処理を行う場合に集合要素に対する処理を記述した
プログラムを集合の要素のひとつひとつに適用する。ま
た、この集合全体に対する処理プログラムは、要素に対
するプログラムと別のプログラムとして、改めて作成す
る必要がある。
〔発明が解決しようとする課題〕
しかし、このような従来の方法では、集合に対する処
理の際に要素のひとつひとつに対して関数を呼び出すこ
とによるオーバーヘッドが生じて効率が著しく悪い。さ
らに、集合用のプログラムと要素用のプログラムを別個
に用意しておく必要が有り、ソフトウェアの生産性を悪
くするという問題点があった。
このような問題点は、集合に対する処理と各要素に対
する処理プログラムが統一されておらず、かつ集合に対
する処理においては、要素用のプログラムを繰り返し呼
び出すことにある。
本発明は、大規模データベースに対してユーザが記述
したプログラムを、効率の良い手続に変換することを目
的とする。
〔課題を解決するための手段〕
本発明の機能ブロック図を第1図に示す。
変換手段2はプログラム生成手段と手続き解析手段と
手続き生成手段からなり、ユーザプログラム1から、大
規模データベースに対して効率の良い変換プログラム3
を生成する。
コンパイラ4は、生成された変換プログラム3を翻訳
し、オブジェクトモジュール5を生成する。
リンカ7は、オブジェクトモジュール5の中で外部参
照されるランタイムルーチンを実行ライブラリ6から検
索し、これらを結合して実行可能プログラムであるロー
ドモジュール8を生成する。
〔作用〕
第1図において、変換手段2はユーザプログラム1を
読み込み、変換プログラム3を自動生成する。その際、
ユーザの記述したプログラムではデータベースへアクセ
スする処理の記述は要素と集合全体に対して統一されて
いる。
変換手段2は、この統一された記述文から要素と集合
全体のそれぞれに対して最も効率のよい形式の別関数を
定義する。
ユーザプログラム1のプログラム文のうち、このよう
にして定義された関数を参照している文は、その参照時
の処理対象が集合であるか否かによってそれぞれ前述し
た別関数として変換され、効率のよい変換プログラム3
が生成される。
上記のようにして、ユーザはプログラミングの際に要
素用と集合用の差を意識する必要がないので、プログラ
ム作成、運用、保守に必要な労力が削減され、さらに、
生成された変換プログラムは集合全体に対する処理を高
速に実行することができる。
〔実施例〕
以下図面を参照しながら本発明の実施例を説明する。
第2図は、第1図の変換部2の一実施例における構成
図である。本実施例のユーザのプログラムから、要素と
集合のそれぞれに対して効率よく大規模知識データベー
スにアクセスするための関数を自動生成し、さらにこれ
によってユーザがプログラミングを行う際の負担を少な
くすることができることを示す。
まず、ユーザプログラム1のなかで記述されている集
合の要素と集合全体の両者を処理の対象とする手続きの
定義から、プログラム生成部1(10)とプログラム生成
部2(11)によって集合の要素用関数12と集合全体用の
集合用関数13が生成される。このユーザプログラム1に
おける手続きは、要素のひとつひとつをアクセスする場
合と、集合全体をアクセスする場合との区別のない記述
であり、プログラマはアクセス対象の属性による処理の
差を意識してプログラミングする必要がない。
次に、ユーザプログラム1の中のこのような手続きを
参照する部分に関して、手続き解析部14と手続き生成部
15によりコンパイラによって翻訳可能な実行文への変換
が行われ、変換プログラム3が得られる。
第3図は、ユーザ記述言語Jasmine/C言語によってユ
ーザが定義したプログラム1から、関数を自動生成する
具体例を示したものである。この実施例では、文字型ポ
インタ変数*nameで示される個人の名前とshort型の整
数変数ageで示される年令を表示する手続き(void型関
数)nameage( )がユーザプログラム1の中で定義さ
れている。この手続き型関数に引数を持たない記述形式
であり、処理の対象は集合の要素と集合全体の両方であ
り、プログラマは対象となるオブジェクトの違いによる
関数の記述を意識しなくてもよい。このユーザによる関
数定義から、要素用関数msinglel( )12と集合用関数
msetl( )13が生成される。それぞれの手続き型関数
は対象とするオブジェクトに対して、最も処理効率のよ
い形式になるように生成され、第3図の一実施例ではル
ープを関数の内部に含むか否かで、最適化を図ってい
る。その結果、ユーザが要素と集合のそれぞれに対する
処理の違いを意識せずにプログラミングでき、ソフトウ
ェアの生産性を向上させ、さらに生成される関数の効率
の良さから処理の高速化が達成される。
第4図では集合用関数msetl( )13の生成手順を示
した。まず関数の型定義がS1で生成され、続いて関数名
がS2で生成される。関数名は集合に対する処理を表す文
字列“mset"で始まり、その直後にひとつひとつの関数
に固有の番号を連結したものである。関数の最初のパラ
メータはデータベースファイルを指すための変数“selv
es"となる。さらに残りのパラメータがユーザによって
指定されている場合にはS3において追加される。本実施
例においてはユーザプログラム1の関数nameage( )
の定義から、ほかに引数はないので、処理は次のS4のパ
ラメータ定義(引数宣言)の生成に移り、変数“selve
s"は変数型“IDS"によって宣言される。ここでIDS型は
ユーザの定義した型で、データベースファイルを示すこ
とに用いられる。S3と同様に他の関数のパラメータがあ
る場合には、パラメータ定義の生成が引き続いて行われ
る。S6では、この関数内部で用いられる局所変数のう
ち、“self"と“scan"の定義の生成をする。ユーザ定義
型IDは、データベースファイルに含まれる個人を指すオ
ブジェクトアドレスを示す型であり、SCANはカレントリ
ストへのポインタ型である。残りの局所変数の定義生成
はS7で行う。集合全体に対するこの関数msetでは、処理
対象データベースファイルに対するopen/close処理と、
集合全体を処理するためのループを関数内部に含み、S8
ではデータベースファイルのopen文とループ文の生成
を、S10でclose文をそれぞれ生成する。その両者に挟ま
れるS9で、関数の本体である実行文の変換を行う。第3
図の実施例では、個人の名前nameと、年令ageをprintf
文で出力するためのprintf文と、そのための個人情報の
代入文name=self.name age=self.ageがこの関数の本
体に相当する。
以上述べた第4図の手順に従って生成された集合用関
数は、集合全体を処理するためのループを内部に含むた
め、要素用関数を繰り返し呼び出すことによるオーバー
ヘッドがないため高速な処理を実現できる。さらに、こ
の例は集合全体をアクセスする処理の一実施例であり、
他の集合に対しても容易に適用可能である。
第5図は、手続き解析部14と手続き生成部15の処理手
順であり、前述したプログラム生成部1およびプログラ
ム生成部2によって生成された関数定義を参照するユー
ザプログラム1の変換を行うための手順を示したもので
ある。ユーザプログラム1の中に記述されるプログラム
文の中で、第3図の手続き型関数を呼び出す手続き文
(例えば、$people.nameage( ))は、翻訳可能な形
式となるように変換される。S11でユーザプログラム1
から読み込まれたプログラム文は、S12において解析さ
れ、オブジェクト($people)、手続き属性名(nameag
e( ))及びパラメータ(なし)に分解される。次
に、S13ではS12で得られたクラス情報と手続き属性をと
もに、プログラム管理テーブルを検索する。S14では前
述した要素用関数定義12または集合用関数定義13を参照
しているかどうかを判定し、参照する場合にはさらに集
合用か否かの判定(S15)を行い、前述した生成プログ
ラムの参照形式へと変換される(S16とS17)。最後に、
S18でコンパイラによって、翻訳可能な実行文が生成さ
れる。
第6図は、ユーザプログラム1において生成された要
素用と集合用の関数の参照例と、その変換結果の一実施
例を示すものである。ユーザプログラム1の実行文のう
ち、 $people.nameage( ); と $person.nameage( ); の、2つの文がそれぞれ、生成された要素用手続き型関
数msinglel(person)と集合用手続き型関数msetl(peo
ple)に変換される。
本実施例において示した変換プログラム文は、処理手
順の説明のための例であり、呼び出される関数の処理の
本体は簡単なものである。しかし、本発明によれば、関
数の処理本体に依存することなく要素用、集合用プログ
ラムの生成と呼び出し形式の生成を自動的に行うことが
可能であり、その適用範囲は、大規模データベース全般
にわたる。
〔発明の効果〕
本発明によれば、データベースに対してアクセスする
処理を、ユーザは要素用、集合用の区別を意識すること
なくプログラムを記述できる。これにより、ユーザのプ
ログラムの作成、保守、運用に要していた時間及びコス
トを激減でき、ソフトウェアの生産性を向上できる。さ
らに自動生成される変換プログラムは、要素用と集合用
に区別して、それぞれの処理対象に関して効率の良い形
式を自動生成する。従って、従来のオブジェクト指向シ
ステムで問題になっていた、大量なデータをアクセスす
る際の動的リンクによる処理速度の低下という事態を招
くことなく、オブジェクト指向システム特有の柔軟なシ
ステム構築が可能である。
【図面の簡単な説明】
第1図は本発明の機能ブロック図、 第2図は本発明の一実施例における変換部の構成図、 第3図はプログラム生成の一実施例図、 第4図は集合用関数生成の手順を示すフローチャート、 第5図は手続き解析部と手続き生成部の手順を示すフロ
ーチャート、 第6図はプログラム利用と変換の例を示す図である。 1……ユーザプログラム、 2……変換部、 3……変換プログラム、 4……コンパイラ、 5……オブジェクトモジュール、 6……実行ライブラリ、 7……リンカ、 8……ロードモジュール.

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】ユーザプログラムの関数定義に基づいて、
    集合の要素用の関数定義と集合全体の関数定義をそれぞ
    れ別関数として生成するプログラム生成手段と、 ユーザプログラム中の手続き文を解析して、その手続き
    文のオブジェクトと手続き属性名とパラメータを分離抽
    出する手続き解析手段と、 前記手続き解析手段によって得られた情報を用いて、前
    記ユーザプログラムから変換プログラムを生成する手続
    き生成手段と、 前記変換プログラムをオブジェクトモジュールに翻訳す
    るためのコンパイラ手段と、 生成された前記オブジェクトモジュールと実行ライブラ
    リを結合しロードモジュールを生成するリンカ手段を有
    することを特徴とするデータベースアクセス方式。
  2. 【請求項2】前記プログラム生成手段は、前記ユーザプ
    ログラムから関数定義を自動生成する第一のプログラム
    生成部と第二のプログラム生成部から構成され、 前記第一のプログラム生成部は前記ユーザプログラムか
    ら集合の要素を処理するための要素用関数定義を自動生
    成し、 前記第二のプログラム生成部は前記ユーザプログラムか
    ら集合全体を処理するための集合用関数定義を自動生成
    する ことを特徴とする請求項1記載のデータベースアクセス
    方式。
  3. 【請求項3】前記手続き解析手段は、前記ユーザプログ
    ラムのプログラム文から、オブジェクトと手続き属性名
    とパラメータを分離抽出し、前記手続き生成手段は、前
    記手続き解析手段によって抽出された手続き属性名をも
    とに、前記プログラム生成手段によって生成された関数
    定義を参照するプログラム文を検出し、さらに集合用か
    否かを判定し、その結果によって前記変換プログラムの
    実行文を生成する ことを特徴とする請求項1記載のデータベースアクセス
    方式。
JP63319518A 1988-12-20 1988-12-20 大規模知識ベースにおけるデータアクセス方式 Expired - Lifetime JP2718427B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63319518A JP2718427B2 (ja) 1988-12-20 1988-12-20 大規模知識ベースにおけるデータアクセス方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63319518A JP2718427B2 (ja) 1988-12-20 1988-12-20 大規模知識ベースにおけるデータアクセス方式

Publications (2)

Publication Number Publication Date
JPH02165239A JPH02165239A (ja) 1990-06-26
JP2718427B2 true JP2718427B2 (ja) 1998-02-25

Family

ID=18111122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63319518A Expired - Lifetime JP2718427B2 (ja) 1988-12-20 1988-12-20 大規模知識ベースにおけるデータアクセス方式

Country Status (1)

Country Link
JP (1) JP2718427B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140060299A (ko) * 2011-09-07 2014-05-19 마이크로소프트 코포레이션 변형 컨텍스트-인식 데이터 소스 관리

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249769B1 (en) * 1998-11-02 2001-06-19 International Business Machines Corporation Method, system and program product for evaluating the business requirements of an enterprise for generating business solution deliverables
US6557008B1 (en) 1999-12-07 2003-04-29 International Business Machines Corporation Method for managing a heterogeneous IT computer complex

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
情報処理学会第37回(昭和63年後期)全国大会

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140060299A (ko) * 2011-09-07 2014-05-19 마이크로소프트 코포레이션 변형 컨텍스트-인식 데이터 소스 관리
KR101944570B1 (ko) 2011-09-07 2019-01-31 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 변형 컨텍스트-인식 데이터 소스 관리

Also Published As

Publication number Publication date
JPH02165239A (ja) 1990-06-26

Similar Documents

Publication Publication Date Title
JP2666847B2 (ja) 異種言語間連絡方式
JPH0383153A (ja) メツセージ処理システム及び方法
JPH08202545A (ja) ターゲット言語コードを生成するためのオブジェクト指向システム及びその方法
JP2718427B2 (ja) 大規模知識ベースにおけるデータアクセス方式
US5560015A (en) Compiler and method of compilation
JPH07182179A (ja) オブジェクト指向データベース管理装置
Holocher et al. AMBAS—An Adaptive Method Base Shell
JPH0683597A (ja) オブジェクト指向プログラム開発装置およびオブジェクト指向プログラム開発方法
Hermenegildo et al. Designing a high performance parallel logic programming system
CN116756184B (zh) 数据库实例处理方法、装置、设备、存储介质及程序产品
JP3166699B2 (ja) オブジェクト指向プログラム設計支援装置、方法および記録媒体
JP2002132502A (ja) 言語機能解釈による分散オブジェクト自動生成システム及び方法
Tóth et al. Detecting and visualising process relationships in Erlang
JP2811804B2 (ja) 変数出力範囲指定方式
JPH03144832A (ja) プリコンパイラ言語プログラムのシンボリックデバッグ装置
JPH03242727A (ja) 計算機システムの新旧交換時における移行システム
JP3167386B2 (ja) プログラム自動並列化方法
JPH06282443A (ja) プログラム編集方法と装置
JPS6074039A (ja) コンパイル言語認識処理方式
JP2004252536A (ja) プログラム開発支援装置
JPH03282935A (ja) コンパイル処理装置及びコンパイル処理方式
JP2001125779A (ja) オブジェクト指向型プログラミング言語で記述されたプログラムの構成関係管理装置及び方法並びに記憶媒体
JPH03177930A (ja) コンパイルコード生成処理方法
JPH04180127A (ja) クラスのファイル化方法
JPH02178845A (ja) データベース操作言語のプリコンパイル方式