JP3478820B2 - プログラムを実行するシステム - Google Patents

プログラムを実行するシステム

Info

Publication number
JP3478820B2
JP3478820B2 JP51342090A JP51342090A JP3478820B2 JP 3478820 B2 JP3478820 B2 JP 3478820B2 JP 51342090 A JP51342090 A JP 51342090A JP 51342090 A JP51342090 A JP 51342090A JP 3478820 B2 JP3478820 B2 JP 3478820B2
Authority
JP
Japan
Prior art keywords
rule
data
name
code
access
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
JP51342090A
Other languages
English (en)
Other versions
JPH05502527A (ja
Inventor
ヘルガ クヌードセン
ダニエル ティー チョン
ジョン ヤッフェ
ジェイムズ イー トーガー
マイケル ロバートソン
ズビグニュー プラザク
Original Assignee
オブジェクトスター インターナショナル インコーポレイテッド
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 オブジェクトスター インターナショナル インコーポレイテッド filed Critical オブジェクトスター インターナショナル インコーポレイテッド
Publication of JPH05502527A publication Critical patent/JPH05502527A/ja
Application granted granted Critical
Publication of JP3478820B2 publication Critical patent/JP3478820B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • G06F16/902Indexing; Data structures therefor; Storage structures using directory or table look-up using more than one table in sequence, i.e. systems with three or more layers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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/99931Database or file accessing
    • 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/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing

Description

【発明の詳細な説明】
【0001】
【0002】
【発明の背景】
本発明はデータアクセス及びプログラム開発環境のた
めの高水準コンピュータインタフェースに関する。具体
的には、本発明はデータアクセス方法に基づくデータベ
ースを有するコンピュータオペレーティングシステムで
ある。
【0003】
【従来の技術】
ソフトウェアエンジニアによるアプリケーションプロ
グラムの開発は複雑なタスクである。この複雑さは、部
分的には、種々のデータの型、ハードウェアの型、オペ
レーティングシステムの型、プログラムの監査技術、及
び他の細部のような環境パラメタによってもたらされ
る。普通はコード内にパラメタの明示認識を要求するこ
とによって、これらの環境パラメタの全てを処理するコ
ンピュータプログラミング言語が開発されている。従っ
て典型的なアプリケーションプログラマは、考慮中のア
プリケーションプログラムを達成するための基本アルゴ
リズムに加えて、データの定義、入力データの編集及び
妥当性検査、プログラムに使用可能なデータの選択及び
順序付け、そのプログラムに関するシステムのルーピン
グ制約条件、出力の編集及び妥当性検査規定、誤りの処
理、プログラムの監査その他の複雑なタスクを遂行しな
ければならない。
【0004】 これらの環境パラメタは、高水準言語で書かれたプロ
グラムの走行をも複雑にする。これらのプログラムは実
行に先立ってコンパイルまたはロードしなければなら
ず、コンパイルまたはロード時間中にそのアプリケーシ
ョンに関連する全ての物理資源、データ、及びルールを
互いに結び付けなくてはならない。 コンパイル時またはロード時における所与のアプリケ
ーションに必要な資源のこの結び付けは、真に事象駆動
プログラムまたはデータ駆動プログラムを実現すること
を困難にする。
【0005】 若干のプログラミング言語をインタープリタにする、
つまり、プログラムが走っている間にそれらが若干の資
源をプログラムに結び付けることができるようにする試
みがなされてきた。しかし、これらのインタープリタプ
ログラムは極めて制限された性能を有しており、産業に
広く受け入れられるものは得られていない。 従って環境パラメタによってもたられる複雑さからア
プリケーションプログラムを解放するオペレーティング
システム、データベース、及びデータアクセス方法に対
する要望が存在しているのである。
【0006】
【発明の概要】
本発明はオペレーティングシステム、データベース及
びアクセス方法を提供するものであり、この方法はデー
タの定義、入力の編集及び妥当性検査、選択及び順序付
け、ルーピング、出力の編集及び妥当性検査、誤りの処
理、及び監査をデータアクセス方法にプッシュダウン
し、それによってアプリケーションプログラムからプロ
グラマがこれらの環境パラメタを明示的に認識する必要
を無くす。 本システムは、簡単な命令集合に基づいて動作して命
令のプログラムを実行する仮想スタックマシンからな
る。更に、独特なアクセス構造を有するデータベース
は、そのデータベース内に記憶されているオブジェクト
の実行時間中に、実行中のプログラムと結び付けるのに
必要な全ての辞書情報を記憶する。最後に、本アクセス
構造に対して最適化されたデータアクセス方法は、実行
中のプログラムが使用する辞書、サブルーチン、及びデ
ータに対する全てのアクセス機能を遂行する。システム
は現プログラムの実行中にアクセス方法を通して検索さ
れたオブジェクトの実行時間中に結び付けを遂行する。
更に、システムはIMSのような他のデータアクセス構
造、及び他の周辺サブシステムに基づく表示画面、記憶
サブシステムのためのサーバを含む。これらのサーバも
実行時間中に所与のプログラムに動的に結び付けられ
る。
【0007】 本アクセス構造は複数のテーブルからなり、各テーブ
ルは複数の行を有し、各行は複数のフィールドを有す
る。アクセス構造内の各行はその行のフィールドの1つ
の中の独特な一次キーによって、及びテーブル識別子に
よって識別される。アクセス構造を通して検索可能なオ
ブジェクトは、フィールドとしてテーブル内に記憶され
る。アクセス構造内のテーブルは更にサブテーブルに細
分することができ、各サブテーブルはテーブルパラメタ
によって識別される。テーブルは、テーブル名と、その
テーブルに割当てられた何れかのテーブルパラメタとに
よって識別される。 本アクセス方法は、アクセス構造内に記憶されている
テーブル内への索引を維持する。これらの索引は先ずテ
ーブル名に対して順序付けられ、次いで所与のテーブル
に関連付けられた1または複数のパラメタに対して順序
付けられる。最後にこれらの索引はテーブル内の各行の
一次キーに対して順序付けられる。
【0008】 アクセス構造内に記憶されているテーブルの部分集合
は辞書データまたはメタデータからなり、このデータは
データベース内に記憶されているオブジェクトと、現在
実行中のプログラムとを結び付けるために使用される。
辞書データは事象ルールを含み、これらの事象ルールは
データアクセス事象と、データベース内のオブジェクト
へのアクセスを制御可能ならしめる選択基準と、アクセ
ス事象中にアクセス構造内のオブジェクトの順序付けを
可能にする順序付けアルゴリズムと、複数の周辺装置サ
ーバとに応答して実行される。 上記アクセス方法でサーバを実現することによって単
一のインタフェースを通して(処理されるデータ処理シ
ステムに使用可能な)オブジェクトの共通ビューを拡大
することができる。従ってプログラマは、IMS、DB2また
は他のデータベース管理システムのような他のシステム
内に固有の形式で記憶されたオブジェクトを、単一のア
クセス構造に従って視ることができる。
【0009】 更に、本発明によるオペレーティングシステムは同じ
プログラミング表現に基づいて動作する。高水準言語
は、仮想スタックマシン上で直接実行されるプログラム
の内部表現に1対1で相関する。従って所与のプログラ
ムモジュールの1つのコピーだけがデータベース内に記
憶される。この特徴に従って、プログラム開発機能を遂
行するアプリケーションプログラマによって、翻訳プロ
グラム/逆翻訳プログラムが使用される。プログラミン
グが遂行される場合内部表現は高水準ソースへ翻訳され
る。得られたプログラムを記憶する場合ソースは元の内
部表現に翻訳される。これによりプログラムはシステム
からシステムへの大きい易動度を取得し、多くの利用者
が作動できるプログラムの一貫したビューの維持に伴う
諸問題が排除される。 本発明の他のアスペクト及び長所は添付図面、以下の
詳細な説明、及び請求の範囲の検討から明白になるであ
ろう。
【0010】
【実施の形態の詳細な説明】
I.システムの概要 図1は、本発明によるデータ処理システムの基本的な
実施例を示す。このシステムは本体コンピュータ10上の
仮想マシンとして実現される。本体コンピュータはホス
トオペレーティングシステム(好ましいシステムではMV
S)を走らせる。ホストオペレーティングシステムの下
で、IMS 11のようなデータベースアクセスシステムが走
ることができる。同時に、本発明によるデータ処理シス
テム(HOS 12)として知られている)はMVSの下で走
る。本体にはモデル3270のような複数の利用者端末13、
14が結合されている。またUNIXのような他のオペレーテ
ィングシステムで走るワークステーション15も本体10に
結合することができる。 IMS 11のような本体データサーバには集合データを記
憶する直接アクセス記憶装置16及び17が接続されてい
る。また直接アクセス記憶装置18及び19がHOSシステム1
2に接続されている。
【0011】 図2は、HOSデータ処理システムの概念的なブロック
線図である。このシステムはトランザクションプロセッ
サ20と、テーブルアクセスマシン21と、直接アクセス記
憶装置23に結合されているテーブルデータ記憶装置サー
バ22とを含む、テーブルアクセスマシン21は、利用者端
末25に結合されている画面サーバ24、及び他のソースの
データファイルの27及び28に結合されているインポート
/エクスポートサーバ26をも駆動する。 更にテーブルアクセスマシン21は、直接アクセス記憶
装置30に結合されているIMSサーバ29のような異種デー
タベースシステムサーバに対するインタフェースをも提
供する。 トランザクションプロセッサ20は、オブジェクト・コ
ードレベルの表現を有するルールを実行する仮想スタッ
クマシンとして実現されている。これらのルールは各ト
ランザクション毎に関連付けられたルールライブラリ31
内に記憶されている。ルールライブラリは典型的には、
プログラムに画面メニュー及び基本ユーティリティを提
供するセッションマネージャ(管理プログラム)39を含
む。ユーティリティは、ルールエディタ32と、デーブル
エディタ走査検索装置33と、RPM及び印字ユーティリテ
ィ34と、(もし必要ならば)問合わせプロセッサ35と、
所与のトランザクションに関して呼出されるアプリケー
ションプログラム36、37、38とを含む。
【0012】 直接アクセス記憶装置23、30、27、28内に記憶されて
いる物理データは、あたかもそれがテーブルデータ記憶
装置システム内に記憶されているかのようにテーブルア
クセスマシン21を通してトランザクションプロセッサ20
に提示される。 サーバ22,24,26,29と、テーブルアクセスマシン21
と、トランザクションプロセッサ20は全てホストオペレ
ーティングシステム上の仮想マシンとして実現されてい
る。従って好ましいシステムでは、これらの仮想マシン
にはシステム370アセンブラ言語が実装されており、以
下に詳述する機能を遂行する。 II.ルール言語 ルール言語は、システムのためのプログラミングイン
タフェースである。この言語は、データベースアクセス
コマンドの組、第4世代構築、及び構造化プログラミン
グがアプリケーションプログラム開発の必然的な結果と
してもたらされる慣用言語文の統合的な集合からなる。
【0013】 これらのルールは以下のような4つの部分を有する。 1.ルール定義 2.条件 3.動作 4.例外ハンドラ ルールの一般的形状 表1に1つの引き数名年(YEAR)を有する閏年(LEAP
YEAR)と名付けられたサンプルルールを示す。閏年はそ
れが実行の結果としてある値、‘Y'または‘N'の何れか
に「戻る」ので1つの関数である。
【表1】
【0014】 このルールの定義はルールの見出しLEAPYEAR(YEA
R);を含み、またもし存在すれば、ローカル変数定義
を含むことになろう。条件は実行順序を決定する。この
ルールには1つの条件即ち比較“REMAINDER(YEAR,4)
=0;"だけが存在している。動作はルール内の実行可能
文であり、何等かの特定呼出しに対してそれらの若干だ
けが実行されよう。第1の動作“RETURN(T);"はもし
条件が満たされれば実行され、第2の動作“RETURN
(‘N');"はもし条件が満たされなければ実行される。 表2はより複雑なルールを示す。2つのGET文は、パ
ラメタMMによって参照された月がテーブルMONTHS内に実
現値すること、及びパラメタDDによって参照された日が
その月の最大より小さいかまたは等しいことを検査す
る。GET文の失敗は例外GETFAILをもたらし、例外ハンド
ラはあるメッセージを発生して値‘N'を戻す。
【表2】
【0015】 表3は、ルール「有効日付」が参照するテーブル
「月」を示す。閏年及び非閏年の2つの列内のある月の
日数に注目されたい。
【表3】
【0016】 表4は、FORALL文を含むルールを示す。ルール「自動
車計数」は所与のモデル及び年式を有する所有者の数を
計算し、次いで結果(モデル及び年式はテーブル自動車
のフィールドである)を印刷する。このルールは条件を
有していない。標準ルーチンMSLOGはメッセージログの
加算の結果を提示する(記号gは連結演算子である)。
【表4】
【表5】
【0017】 ルール定義 ルール定義、HOSルールの第1の部分はルール見出し
(必須)と、ローカル変数の宣言(任意選択)とを含
む。 ルール見出しはルールの名前を与え、そのパラメタ
(もしあれば)を限定する。ルール間で渡されるパラメ
タは値による。呼出されたルールはパラメタの値を変え
ることはできない。パラメタのデータ表現は動的であ
り、それに割り当てられた値の意味データ型及び構文に
従う。パラメタの範囲下、そのパラメタを限定している
ルールである。表6はルール見出しの例である。
【表6】
【0018】 ローカル変数はルール見出しの次に宣言される。ロー
カル変数の範囲が、それが限定するルール及び子孫ルー
ルである。ローカル変数は演算値(列)を割り当てるこ
とができ、また動作中の何処ででも使用することができ
る。ローカル変数のデータ表現は動的であり、それに割
り当てられた値の意味データ型及び構文に従う。ローカ
ル変数はヌル(即ち用途に依存して、ゼロ、論理、
‘N'、または空文字列)に初期化される。表7は、ロー
カル変数宣言の例である。
【表7】
【0019】 条件 それらの真理値に関して評価された論理式である条件
は、ルール内の制御の流れを決定する。条件は順次に評
価され、もしそれらの1つが満たされればそれに対応す
る動作が実行可能になり、さらなる条件は評価されな
い。もし条件が存在しなければ(表4のルールのよう
に)、そのルールの動作が実行可能になる。 表8は、条件の若干の例である。REMAINDER及びSUPPL
IER_LOCは値を戻す関数である。それらの1つはシステ
ム供給標準ルーチンであり、また1つは利用者ルーチン
であるが、呼出しに区別はない。
【表8】
【0020】 前記の表に例示した諸ルールは、条件を含むルールの
部分がY/N(“yes/no")値を表示するY/N象眼をも含
む。Y/N値は条件と動作とを対応させる。HOSはY/N値を
供給するが、利用者は供給しない。Y/N象限の機能は動
作の節において明らかにする。 動作 動作は実行可能な文である。動作順序番号は、各特定
条件毎にどの動作が実行されるのかを決定する。同一の
動作を、異なる条件に対して実行することができる。 或るルールは実質的に拡張されたケース文である。条
件及び動作は次のように読むことができる。 例えば、表9のルールを考えよう。 ルール「有効日付」内の条件及び動作は以下のケース
文のように読むことができる。 ルール言語内の使用可能な動作を以下に記述する。
【表9】
【0021】 割り当て文には2種類がある。単純な割り当てでは、
単一値がテーブルのフィールドまたはローカル変数に割
り当てられる。表10は単純割り当てを示す。
【表10】
【0022】 名前による割り当てでは、右側のテーブルのフィール
ドの全ての値が左側のテーブルの同一名のフィールドへ
割り当てられる。表11は1つの例を示す。名前による割
り当ては、テーブルアクセスマシンにより使用される画
面テーブルのフィールドの全ての値をデータテーブルの
フィールドへ、またはその逆に、割り当てる慣用的な方
法である。
【表11】
【0023】 1つのルールは、関数表記法を使用する論理式または
算数式を通して暗示的に、またはCALL文を使用して明示
的に、別のルールを呼出すことができる。表12は整数を
戻す標準ルーチンである関数REMAINDER(YEAR,4)の暗
示呼出しを示す。
【表12】
【0024】 ルールは、もしそれが結果を指定するRETURN文を含ん
でいれば、関数である。表13はRETURN文の例を示す。
【表13】
【0025】 CALL文は、あるルールを、その名前によって参照する
ことによって直接的に、またはテーブルのフィールドま
たはそのルールの名前を含むパラメタを参照することに
よって間接的に呼出すことができる。CALL文内の引き数
は、引き数リストによって、またはWHERE文節によって
渡すことができる。WHERE文節内のパラメタキーワード
は、呼出されたルールのルール見出し内のパラメタの名
前でなければならない。全てのパラメタは、あるルール
が呼出される時を指定されていなければならない。 HOSデータベースは複数のテーブルの集合である。ル
ールは実現値(データベースを構成する個々のデータの
ことであり、「オカレンス」とも呼ばれる)を根拠とし
てテーブルにアクセスする。あるルールがテーブルを参
照すると、それはそのテーブルへの窓口として働くテー
ブルテンプレートを作成する。ルールは先ず新しいデー
タをテーブルテンプレートの適切なフィールド内に配置
し、次いでREPLACE文またはINSERT文の何れかを実行す
ることによって、新しい情報をテーブル内に入力する。
ルールはGET文またはFORALL文を用いて情報をテーブル
からテーブルテンプレート内へ検索する。ルールは情報
をテーブルテンプレート内に配置し、次にDELETE文を実
行することによって情報を削除する(テーブルテンプレ
ートはDELETE文の後に無定義化される)。 GET、FORALL、またはDELETE文の場合、選択基準はWHE
RE文節内に指定することができる。WHERE文節は1また
はそれ以上の比較からなる述語を含む。この述語は、デ
ータがデーブルテンプレート内に配置される前に評価さ
れる。 テーブルパラメタはリストの形状で、またはWHERE文
節で指定することができる(これら2つの形状はCALL文
においてパラメタを渡す2つの方法に対応する)。 GET文は、テーブル内において指定された選択基準を
満たす最初の実現値を検索する。もし選択基準に合致す
る実現値が存在しなければ、GETFALL例外が告知され
る。
【0026】 ルーピング構成体であるFORALL文は複数の実現値の集
合を処理する。ループのボディは選択基準を満たす各実
現値毎に実行される文からなる。FORALLのネスティング
が許される。 FORALL文は、テーブル名と、任意選択WHERE文節と、
任意選択ORDERED文節と、任意選択UNTIL文節と、動作と
を含む。任意選択文節(またはもし任意文節が存在しな
ければテーブル名)の後にコロン(:)が続く。ループ
のボディからなる動作はコロンの後の分離ライン上に書
かれる。ある分離ライン上の“END;"文節はFORALL文節
の終りをマークする。全てのテーブルアクセス文を用い
る場合のようにパラメタは引き数リストで、またはWHER
E文節で指定することができる。フィールド上の選択もW
HERE文節で指定することができる。FORALL文内のWHERE
文節は、GET文におけるのと同一の効果を有する。WHERE
文節は星印(*)を用いて現テーブルを参照することが
できる。 WHERE文節は、不完全に指定されたデータ列の比較を
可能にする“部分突き合せ”演算子LIKEを含むことがで
きる。不完全に指定されたデータ列は、星印(*)を有
する0またはそれ以上の無指定文字と呼ぶことができ、
またそれらは疑問符(?)を有する1つの未知文字と呼
ぶことができる。 FORALL文が実行される場合、1またはそれ以上のORDE
RED文によって異なる順序を指定されていなければ、テ
ーブル実現値は一次キー順序で検索される。表5の例で
は、実現値は、フィールド「価格」の値を降順し、次に
フィールド「モデル」の値を昇順し、次いで一次キー
「ライセンス」の値を昇順することによって提示され分
類される(順序付けを省略すると「昇順」になる)。 FORALL文の実行は(1)FORALL選択基準を満たす全て
の実現値が処理済である、(2)ループを構成する文の
実行中に例外を検出した、の2つの環境の何れかの下で
終了する。テーブルテンプレートはFORALL文の終りには
無定義である。 INSERT文は、新しい実現値をデータベース内のテーブ
ルに付加する。フィールドの選択は不可能であり、WHER
E文節はパラメタ値だけを指定できる。 テーブル内の実現値は独特な一次キーを有していなけ
ればならない。既に存在している一次キーを用いて実現
値を挿入しようと試みると、INSERTALL例外がもたらさ
れる。
【0027】 REPLACE文は、データベース内の実現値を更新する。
フィールドの選択は不可能であり、WHERE文節はパラメ
タ値だけを指定できる。 もし実現値が存在しなければ、INSERTFALL例外が告知
される。実現値の一次キー値を変更するためには古い実
現値を「削除」して新しい実現値を「挿入」する必要が
ある。 DELETE文は、実現値をデータベース内のテーブルから
除去する。もし指定された関係が同等であれば、WHERE
文節は一次キーフィールド上でフィールド選択を指定す
ることができる。他のフィールド選択は許されない。通
常通り、WHEERE文節はパラメタ値を指定することができ
る。 もしWHERE文節内に一次キーが指定されていれば、そ
の実現値は削除される。もし一次キーが指定されていな
ければ、テーブルテンプレート内の一次キーによって参
照された実現値が削除される。もしテーブル内に実現値
が存在しなければ、DELETEFALL例外が告知される。 画面は、標準利用者インタフェースである。これらは
キーボードからの入力を支援し、端末への出力を発生す
る。 DISPLAY文は、指定された画面を表示させ、画面に入
力された入力は処理のために利用可能である。 ルーピング構築であるUNTIL...DISPLAY文は、ある画
面を繰り返して表示させる。このループのボディは、画
面が表示される度に実行される文からなる。ループのボ
ディの内部では、如何なる入力も処理のために利用可能
である。
【0028】 UNTIL文節を含むことができるFORALL文と、UNTIL...D
ISPLAY文の2つの構築がルーピングを可能にする。FORA
LL部分、またはコロン(:)で終了するUNTIL...DISPLA
Y部分と“END;"との間の文がループのボディを構成す
る。 UNTIL文節は1つの例外、またはキーワードORによっ
て分離された2またはそれ以上の例外を指定する。もし
例外が検出されればルーピングは終了する。 もしループが例外によって終了されれば、制御は以下
のようにして動作に渡される。 もし例外がそのループのためのUNTIL文節内に指定さ
れていれば、次に実行さ書される動作はそのループのEN
D文節に続く動作である(たとえルールの例外ハンドラ
部分内にその例外のためのON文が存在していても、制御
はこれらの動作に渡される)。これらの動作が完了する
と、ルールの実行は終了して制御は呼出し側に渡され
る。例外が検出された点から実行が再開されることは
「ない」。 例外がそのループのためのUNTIL文節内には指定され
ていないが、ルールの例外ハンドラ部分内のON文中に指
定されていれば、その例外は通常の態様で処理される、
即ち次に実行される動作はON文内にリストされている動
作である。 もし例外がそのループのためのUNTIL文節内にも、ま
たはルールの例外ハンドラ部分内のON文中にも指定され
ていなければ、その例外は通常の態様で処理される。即
ち例外が呼出し階層内のより高いルール内の例外ハンド
ラによってトラップされるか、またはトランザクション
が終了する。 COMMIT文、ROLLBACK文、SCHEDULE文、TRANSFERCALL
文、及びEXECUTTE文の5つの文がトランザクションの同
期を制御する。 COMMIT及びROLLBACK文は、トランザクション同期点を
確立する。COMMIT文に対しては、同期点間での変化の全
てがデータベースに加えられ、ROLLBACK文に対して、こ
の変化はデータベースに加えられない。
【0029】 トランザクションの正常終了はCOMMITを暗示し、異常
終了はROLLBACKを暗示している。 SCHDULE文(実行順)は、現トランザクションには矛
盾無くあるルールの実行を待ち合わせることをルールに
許容することによって、他の処理との非同期処理を可能
にする。実行されるルールは、SCHEDULE文が実行される
時に存在していなければならない。待ち行列の名前は任
意選択TO文節によって指定することができる。待ち行列
の定義はシステムラメタによって処理され、ルール言語
内では行われない。 待ち合わせは、現トランザクションの正常完了、即ち
トランザクションプロトコルに従う完了に依存する。 TRANSFERCALL文は現トランザクションを終了させ、新
しいトランザクションを呼出す。制御が呼出しルールへ
渡されることはない。呼出されたルールの実行が終る
と、そのトランザクションは完了である。 TRANSFERCALL文は、CALL文と同様に、あるルールをそ
の名前によって参照することによって直接的に、または
テーブルのフィールドまたはそのルールの名前を含むパ
ラメタを参照することによって間接的に呼出すことがで
きる。 EXECUTE文は子孫トランザクションを呼出す。実行さ
れたトランザクションが完了すると、制御は元のトラン
ザクションに戻されて渡される。(CALL文が現トランザ
クションの範囲内でルールを呼出し、一方EXECUTE文が
独立トランザクションを開始させるルールを呼出すこと
に注目されたい。)
【0030】 EXECUTE文は、CALL文と同様に、あるルールをその名
前によって参照することによって直接的に、またはテー
ブルのフィールドまたはそのルールの名前を含むパラメ
タを参照することによって間接的に呼出すことができ
る。 SIGNAL文は、その文内に指定されている例外を生じさ
せる。ON文またはUNTIL文節は、SIGNAL文によってもた
らされた例外を引き続き検出し、処理することができ
る。 例外処理 例外ハンドラは、例外の名前と、(それに続く)実行
が検出された事象内で実行される動作の順序とを含むON
文である。 ON文は、それが出現するルールの動作の実行中だけ効
力を有している。ON文は、ルールと、そのルールの子孫
(呼出し階層においてそのルールより下のルール)の何
れかとの両者において生成された例外をトラップする。 呼出し階層内の異なるレベルの2またはそれ以上のル
ール内のON文が同一の例外を処理することができる場合
には、最下レベルのルール内のON文がその例外を処理す
る。 システム例外は階層的に定義される(階層に関しては
次の区分で説明する)。もしあるルール内の1以上のハ
ンドラが1つの例外を処理できれば、最上の特定ハンド
ラがそれを処理する。例えば、例外階層においてはGETF
AILはACCESSFAILより下位にある。もしルールがGETFAIL
ハンドラ及びACCESSFAILハンドラの両方を有していてGE
TFAIL例外が発生すれば、GETFAILハンドラが呼出され
る。もしそのルールがGETFAILハンドラは有していない
がGETFAILハンドラを有していれば、ACCESSFAILハンド
ラが呼出される。 ルールが呼出されている時にテーブルへのGETアクセ
ス上でGETFAIL例外が発生するか、またはGETFAIL例外が
GET文中に発生すれば、GETFAILハンドラがその例外を処
理する。
【0031】データアクセス例外ハンドラ(GETFAILL、
INSERTFAIL、DELEREFAIL、ACCESSFAIL及びDEFINITIONFA
ILのためのハンドラ)は、例外階層テーブルにおけるよ
うに、テーブル名を指定することによってそれらの範囲
を制限することができる。テーブル名が指定されている
場合、そのテーブルにアクセス中にもし対応する例外が
検出されればハンドラはその例外だけをトラップする。
もしテーブルが指定されていなければ、どのテーブルが
アクセスされていようともハンドラはその例外をトラッ
プする。 例外ハンドラを構成する文が同一例外をもたらすかも
知れない。もしこのようなことが起これば(そして第2
の例外が呼出し階層内の下位の何処においても処現され
なければ)、現在実行中のハンドラは第2の例外を処理
しない。ルール実行コードは考え得る“無限ループ”条
件を検出し、トランザクションを打ち切る。 実行時間環境はシステム例外を信号しているアプリケ
ーションが誤りから回復することを可能にする。システ
ム例外は名前の階層を形成する。ERROR例外は全ての検
出可能な誤りをトラップするが、GETFAIL例外はGET文の
実行には見出されないテーブル実現値のみをトラップす
る。以下の図は全てのシステム例外名を、階層内のそれ
らの相対位置と共に示す。
【表14】
【0032】 3レベルの階層が定義されており、ある例外は階層内
のその下にあるどの例外名もトラップする。これらの各
例外が発生する条件を以下に示す。 ACCESSFAIL −テーブルアクセス誤りを検出した COMMITLIMIT −1つのトランザクションに到達した場
合に更新の数を制限する CONVERSION −値が構文のための無効データを含む
か、または目標構文に変換できない DATAREFERENCE −選択基準の明細書に誤りが検出された DEFINITIOHFAIL−テーブルの定義に誤りが検出された DELETEFAIL −DELETE文のためのキーが存在しない DISPLAYFAIL −画面表示に誤りが検出された ERROR −誤りが検出された EXECUTEFAIL −子トランザクションに誤りが検出され
た GETFAIL −どの実現値を選択基準を満たしていな
い INSERTFAIL −INSER文のためのキーが既に存在して
いる LOCKFAIL −ある実現値にロックが存在している
か、またはテーブルが使用不能であるか、またはデッド
ロックが発生した OVERFLOW −目標構文に割り当てるには値が大き過
ぎる REPLACEFAIL −REPLACE文のためのキーが存在しない RULEFAIL −算数計算に起因する誤り SECURITYFAIL −要求された動作に対する許可が拒絶さ
れる STRINGSIZE −1つの列を別の列に割り当てる際にサ
イズの誤りが検出された UMSSIGNED −値が割り当てられていないテーブルの
フィールドが参照された UNASSIGNED −目標構文で表現するには値が小さ過ぎ
る(殆どは指数誤差) VALIDATEFAIL −妥当性検査出口キーを通して妥当性検
査から出ることが要求された ZERODIVIDE −ゼロによって除算する試みが検出され
【0033】 式、演算、及びデータ型 条件、動作、及び例外ハンドラは式を含む。これらの
式は算術演算子及び列連結演算子の両者または何れか一
方を含むことができる。これらの演算子は普通の表記法
に準拠し、また以下に示す優先順位に従う(累乗が最高
の優先順位を有する)。 ** 累乗 *、/ 乗算、除算 +、− 単項+、単項− +、−、g 加算、減算、列連結 同一優先順位の算術演算子または列連結演算子の順序
は左から右へ評価される。 以下の表は式内の演算子を示す。
【表15】
【0034】 式の各要素は構文及び意味データ型を有している。構
文はデータを如何に記憶するかを記述し、意味データ型
は要素を如何に使用できるかを記述している。 構文 あるテーブルのあるフィールドの値のための構文はテ
ーブル定義の中に指定される。フィールドの最大長もテ
ーブル定義の中に指定される。 構文のための有効仕様は以下の通りである。 B(2進数) −有効長は2及び4バイト P(パック10進数)−有効長は1乃至8バイトに亙る。
これは10進数の1乃至15桁を保持することができ、10進
桁数はデーブル定義内に指定される。 F(浮動小数点) −一次キーフィールドに対する有効
長は4、8、及び1ト、または他のフィールドに対して
は1乃至256バイト。 C(固定長文字列)−一次キーフィールドに対する有効
長は1乃至128バイト、または他のフィールドに対して
は1乃至256バイト。 V(可変長文字列)−一次キーフィールドに対する有効
長は3乃至128バイト、または他のフィールドに対して
は3乃至256バイド、記憶装置は指定された長さを確保
するが、列演算は現長さを使用する。 意味データ型 あるテーブルのあるフィールドの僅のための意味デー
タ型はテーブル定義の中に指定される。意味データ型は
そのフィールドの値に対してどの演算を遂行できるかを
決定する。言語内の演算子を有意味の意味データ型に対
してのみ定義される。例えば、列の否定、またはある数
を識別子へ付加することは無効演算である(ライセンス
プレートナンバーに3を加えることを考えられたい)。 有効意味データ型及びそれらの許容される構文は以下
の通りである。 I(識別子) C(固定長文字列) V(可変長文字列) B(2進数) P(パック10進数) S(列) C(固定長文字列) V(可変長文字列) L(論理) C(長さ1の固定長文字列) 考え得る値、Y(yes)、N(no) C(カウント) C(固定長文字列) V(可変長文字列) B(2進数) P(10進数を伴わないパック10進数) Q(量) C(固定長文字列) V(可変長文字列) B(2進数) P(パック10進数) F(浮動小数点) ルール言語は、比較を行わせるための演算子=、H
=、〈、〈=、〉、〉=を含んでいる。比較の結果は常
にある論理値(‘Y'または‘N')である。ルール言語は
符号(=)を代入演算子として使用する。ルール言語は
算数を行うための演算子**、*、/、+、−を含む。
ルール言語は連結演算子として二重垂直バー(g)を使
用する。連結演算子は任意の2つの意味データ型の間で
有効であり、結果は常に可変長の列である。
【0035】 汎用ルーチン及びユーティリティー関数のコーティン
グを援助するためにルール言語はテーブル名及びフィー
ルド名の間接的参照を可能にする。ルール「カウント」
は全ての実現値に関係するフィールドの合計を決定する
汎用ルーチンである。このルールはパラメタを用いずに
任意のテーブルの任意のフィールドを合計する。 構文 バッカスナウル形式(BNF)のルール言語の完全な、
形式構文は以下の通りである。 BNF表記法 (a)かぎ括弧<>で揺られた小文字語は構文カテゴリ
を表す。例えば、 <start character> (b)代替のリストにおいて、各代替は新しいラインで
始動する。 (c)繰り返される項目は中括弧{ }で括る。項目は
0またはそれ以上の回数現れ得る。例えば、 {<digit>} (d)任意選択カテゴリは大括弧[ ]で括る。例え
ば、 [<exponent>] 文字集合 全てのルール言語構築は以下のように細分された文字
集合で表される。 (a) 文字 ABCDEFGHIJKLMNOPQRSTUVWXYZ (b) 数字 0123456789 (c) 特別な文字 @#$vH&*( )−_=+;:',./〈 〉
【0036】 字句要素 ルールは字句要素の順序である。字句要素は識別子
(確保した語を含む)、数値直定数、列直定数、及び区
切り文字である。区切り文字は以下の特別な文字、 vH&*( )−+=:;',/〈 〉 の1つまたは、以下の複合記号 **〈=〉=H=g の1つである。 隣接する語句要素はスペースまたは新しいラインによ
って分離される。識別子または数値字句はこのようにし
て隣接する識別子または数値字句から分離しなければな
らない。スペースを含み得る唯一の字句要素は列字句で
ある。列字句は1以上のラインにまたがることができ、
他の全ての字句要素は単一のライン内に納めなければな
らない。 識別子 ルール言語識別子の長さは16文字を超えてはならな
い。 数値字句 ルール言語は以下の形状の数値字句を支援する。
【0037】 列字句 列字句は単引用符で包まれた0またはそれ以上の文字
である。 〈string literal〉::= ‘{〈character〉}’ 列字句内の単引用符は2回書かれる。従って‘ ’
‘ ’なる列字句は単引用符である。 確保された語 以下の名前のリストはルール言語内のキーワードとし
てシステムによって確保されている。 AND ASCENDING CALL COMMIT DELETE DESCENDING DISPLAY END EXECUTE FORALL GET INSERT LOCAL NOT ON OR ORDERED REPLACE RETURN ROLLBACK SCHDUELE SIGNAL TO TRANFERCALL UNTIL WHERE LIKE ルールの構文
【0038】 III.テーブルデータ記憶装置、 テーブルデータ記憶装置は、データを独特なテーブル
データ構造に従って関係テーブル内に記憶する。この構
造は、テーブルがテーブルアクセスマシンを通してどの
ように築かれるかを理解すれば最も良く理解できる。 − テーブルを検索し、アクセスするHOSの論理アクセ
ス方法がテーブルアクセス方法(TEM)である。 − HOSは他の異種データベースへのアクセスを提供す
る。この機能は、一旦データ定義を行ってしまえば利用
者に対して透明である。TAMはトランザクションプロセ
ッサと共に交通巡査として働き、他の領域に常駐する正
しいサーバにアクセスさせる。 − 物理アクセス方法およびデータ編成がTDS(テーブ
ルデータ記憶装置)である。 − データストアはB+樹木関係データ構造である。 − HOSはトランザクションシステムであるから、利用
者が大量のデータへアクセスしてもそれらの関係域のみ
に影響するだけである。 TDSテーブルの定義付け − テーブル定義はワークベンチメニューからのコマン
ドDT〈table nam〉、またはセッションマネージャルー
チンによって作られた一次コマンドラインを使用して呼
出される。テーブル定義の画面レイアウトはテーブル定
義表において説明する。 − テーブル名は標準命名ルールに準拠することができ
る。 − IMS、「インポート・エクスポート」(順次)等の
ような他のテーブル型が使用可能である。 − 各テーブル型はセッションマネージャ内にそれ自体
のテーブル定義画面を有している。 − テーブルはシステムに対して汎用である。 − 個々のテーブルの機密保護システムが、定義及びデ
ータの両者または何れか一方への無許可アクセスを阻止
する。 − 意味仕様は、アプリケーションに対してデータを如
何に使用すべきかを記述する。 − データ定義時に事象処理を呼出すことはできるが、
実際のルールは一般化されたプログラミング言語を使用
してコード化されている。事象処理はデータがアクセス
される時に呼出される。
【表16】
【0039】 一般的説明・TDS任意選択 定義テーブルのフィールド・画面レイアウトを以下に
説明する。 型:テーブル型はアクセス方法を指定する。テーブルデ
ータ記憶装置(‘TDS')は省略時の値であり、参照テン
プレートとして使用される。各テーブル型は表示のため
の組み合わされたテンプレートを有している。テーブル
型を変更する時は何れかの機能キーまたはENTERキーを
押すと対応するテンプレートが表示される。有効テーブ
ル型は、‘TEM'(一時的)、‘IMP'(インポート)、
‘EXP'(エクスポート)、‘PRM'(パラメタ)、‘SUB'
(サブビュー)及び‘IMS'(IMS)、及び利用者が定義
したその他を含む。 ユニット:表が関連付けられている利用者ユニットはこ
のフィールドに入れられる。有効ユニットはデータベー
ス管理によって提供される。 IDGEN:これは、各実現値毎に独特な一次キーを提供する
責を負っていることをシステムに通報する。 パラメタ:パラメタ情報成分は多重エントリのためのス
クロール可能な領域である。最大4エントリが許され
る。 この機能によってシステムはそのデータベースを独特
なフィールドに基づいて細分することができる。これ
は、実世界においては真に関係的であるより一般的な、
データの階層構造に似ている。 名前:テーブル内で独特であるべきフィールド名。 型:構文型・アプリケーション設計制御。 構文:記憶装置のための内部表現。 長さ:バイトで表された長さ。システムは記憶装置を最
適化するためにそのデータを可変長データとして記憶す
る。 小数:もし指定されていれば、それは小数点の右側の桁
数を指示する。 キー:有効エントリは一次の場合の‘P'、及び空白(非
キーフィールド)である。テーブルは、その一次キーと
して定義された1つのフィールドを有していなければな
らない。 一次キー使用は実効的にそのフィールドを所要のフィ
ールドにする。テーブル内の各実現値はその実現値はそ
の一次キーによって独特に識別される。 RQD:このフィールドの省略時の値は空白(要求されなか
った)である。他の有効エントリは要求された時に
‘Y'、または要求されなかった時の‘N'である。 適切な値を持たない実現値を要求されたフィールド内
に挿入または編集は許されない。 省略時:フィールドの省略時の値。新しい実現値が付加
された時にもしそのフィールドが空白のままであれば、
これは入力であろう。
【0040】 意味データ型及び構文 テーブルの全てのフィールドは意味データ型と構文と
に束縛される。構文はデータがどのように記憶されるか
を記述し、一方意味型はフィールドをどのように仕様す
るかを記述する。有効意味データ型及びそれらの許容さ
れた構文は以下の通りである。 I−識別子 C 固定長文字列I V 可変長文字列 P パック10進数 B 2進数 S−列 C 固定長文字列 V 可変長文字列 L−論理 C 長さ1の固定長文字列 −値“Y"はyes −値“N"はno C−カウント C 固定長文字列 V 可変長文字列 B 2進数 P 小数を持たないパック10進数 Q−量 C 固定長文字列 V 可変長文字列 B 2進数 P パック10進数 F 浮動小数点 有効フィールド構文明細書 B 2進数 P パック10進数 F 浮動小数点 C 固定長文字列 V 可変長文字列
【0041】 テーブル文書化 文書化は、テーブルを含む全てのオブジェクトに関連
付けられる。利用者は、テーブル定義から呼出される表
17に示すような文書化画面を使用して、短い要約、キー
ワード、及び長い記述を指定して定義されたテーブルを
文書化することができる。要約は1ラインの情報に制限
される。指定されたキーワードは、キーワード探索機能
が使用するために利用可能にすることができる。詳細な
テーブル記述を得るためにスペースを利用できる。長い
記述内にスクリプト書式化コマンドを含ませることがで
きる。
【表17】
【0042】 ザブビューテーブル サブビューはデータ上に窓を与える。テーブルのフィ
ールドの部分集合、または選択基準に基づく部分集合を
利用者に与えることができる。 − テーブル定義は、画面上のワークベンチメニューま
たはコマンドラインからのDT〈subview table name〉コ
マンドを使用して呼出される。 − サブビューテーブル名は標準命名ルールに準拠す
る。 − サブビューテーブル定義画面は、省略時テーブル型
“TDS"を“SUB"に変えて表18に示すデファイナ画面にす
ることによって呼出される。 − 個々のサブビューの機密保護システムが、定義及び
使用の両者または何れか一方への無許可アクセスを阻止
する。 − サブビューには分離スペースは割り当てられていな
い。実際には全てのデータ維持は関連付けられたソース
TDSテーブル上で遂行される。
【表18】
【0043】 一般的説明・サブビュー 全てのフィールドは‘TDS'に関して説明したものと同
一である。サブビュー独自のフィールドを以下に示す。 ソース:そのサブビューがこのテーブルによって定義さ
れているソーステーブルの名前。ソーステーブルはその
サブビューが定義可能になる前に存在していなければな
らない。 選択:選択基準のオブジェクトは選択された実現値の数
をサブグループ化することである。もし存在しなければ
全ての実現値を選択する。 パラメタ:もしTDSテーブル内に対応するフィールドが
存在すれば、新しいパラメタをサブビュー内に指定する
ことができる。ソーステーブルパラメタは再命名するこ
とができ、そのソース名はSOURCE PARM内に指定するこ
とができる。 順序付け:これはスクロール可能な領域である。 順序付けはサブビュー内に定義されていないフィール
ド上に指定することができる。 順序付けは表示めオブジェクトだけに使用される。 SEQ−A(昇順)またはD(降順) フィールド定義・サブビュー SRC:これはソース標識フィールドである。フィールド
名はサブビューテーブルと同一であっても、再命名して
も、または独特であってもよい。ソース標識フィールド
はソーステーブルに関してそのフィールドのステータス
を識別する。 有効エントリは以下の通りである。 − 空白 フィールド定義はソース及びサブビューの両者におい
て同一である。 − S=ソース: 再命名されたフィールドはこのエントリで指示され
る。ソーステーブル内のフィールド名が後続する。 − D=導出済: − サブビューテーブルに対して独特なフィールドは導
出されたフィールドとしてこのエントリによって指示さ
れる。 − 導出されたフィールドは、このフィールドのための
ある値へ戻る関数ルールであるべきである。 実用性 − この機能の実用的な長所によってテーブル操作及び
サブビューデーブルレベルにおける、「特別な」報告が
可能になる。 − この「特別」処理では、導出されたフィールドはテ
ーブルがアクセスされた時に受信される。例えば、 ED(テーブル名) のようにテーブルを編集する時である。
【0044】 事象ルール データ定義内の事象ルールは、通常は妥当性検査また
はトリガの何れかの混合体で構成される。 − 妥当性検査は、情報をテーブル内に入力する時にそ
のデータを別のテーブルに対して妥当性検査しなければ
ならないというようなルールである。例えば、従業員テ
ーブルを維持する場合、部門番号がその部門テーブル内
に存在していなければならない。これは一連の他のテー
ブルまたは外部ファイルへ拡張することができる。 − トリガは単なる検査ではなく、監査証跡、他のテー
ブルの更新、または他のジョブのスケジューリングのよ
うな動作を生じさせる。 事象ルールを用いると完全に“開かれた”環境が利用
者に提供され、データに対して厳格な検査及び制御を実
現することができる。 事象ルールの定義 − 事象ルール区分は、スクロール可能な部分である。 − 事象ルールは、実行順にコード化される。 − 事象ルールは、挿入またはより一般的には入手及び
書き込みのような特定データアクセスコードに関して定
義することができる。 − 同一の動作に対して異なる事象ルールを呼出すこと
ができる。 例 書き込み−事象ルール−妥当性検査 書き込み−トリガ − もし、挿入または更新のようなデータ維持動作が呼
出されれば、書き込みも呼出される。 − 実行すべき事象ルールをローカルライブラリから試
験することはできるが、実際の実行時間にはサイトライ
ブラリ(特定のトランザクションに対する要素32乃至39
の全てを含む図2のライブラリ全体)内に常駐していよ
う。 − 例えばテーブルエディタを使用する試験が必要であ
る場合にもしルールがローカルライブラリ(サイトライ
ブラリ全要素の部分集合)内にあれば、ワークベンチ機
能を使用することはできない。 探索経路をアクセスさせるためには、ローカルライブ
ラリはあたかもそれがルールであるかのようにテーブル
エディタを実行する。即ち EX===〉STE(‘table name(parameters)’) または コマンドライン===〉EX STE(‘table name(para
meters)’) − 事象ルールをコーディングする場合、テーブルの実
現値が既に入手されていることを思い出されたい。従っ
てそのテーブルへデータアクセスは必要としない。 − 事象ルールをコーディングする場合、以下のことが
真てなければならない。 トリガ−サブルーチン 妥当性検査−‘Y'、もし‘Y'でなければ‘N'またはあ
るメッセージに戻る関数。
【表19】
【0045】 IV.辞書データ HOSデータ処理マシン内の全てのデータは、テーブル
アクセスマシンに従って直接的にテーブルデータ記憶装
置内に、または仮想的に他のデータ記憶装置内に記憶さ
れる。所与の実現値が記憶されているテーブルの実際の
位置及び型は、そのテーブルデータ記憶装置内の複数の
辞書テーブルによって定義される。これらの辞書テーブ
ルは、それらがテーブルデータ記憶装置として知られて
いる構造を有する事前指定されるテーブルであることか
らメタデータと考えることができ、また総称テーブル内
の実現値にアクセスするために使用される制御テーブル
を築くためにそれらを自動的に調べることができること
からテーブルアクセスマシンと考えることもできる。 辞書テーブルは、TABLEと名付けられたテーブルを含
む。このテーブルは、マシン内の所与のセッションに使
用可能な全てのテーブルの名前及び型を含む。 また辞書は、システム内の全てのデータ要素の属性を
含む構造を有するテーブルであるFIELDS(テーブル名)
と名付けられたテーブルを含む。このテーブルはテーブ
ル名に関してパラメタ化されている。従ってテーブルア
クセスマシンは、所与のテーブルのフィールドに制限さ
れるFIELDSと呼ばれるテーブルのビューを生成する。 辞書はPARMS(テーブル名)と呼ばれるテーブルをも
含む。 このテーブルは各テーブルに関連付けられたパラメタ
(もし存在すれば)を識別する。 辞書は、SELECTION(テーブル名)と呼ぶテーブルを
も含み、このテーブルはそのテーブルへアクセスするた
めに適用される選択列またはフィルタを記憶する。 他の辞書テーブルには、そのテーブルにアクセスする
際に実現される順序付け操作の集合を限定するORDRING
(テーブル名)と、そのテーブル内の実現値に対する事
象にアクセスする際に実行されるルールを指定するEVEN
RULES(テーブル名)と、そのセッションのための実行
可能なルールの実際のオブジェクトコードを記憶する@
RULESLIBRARY(テーブル名)とが含まれる。パラメタラ
イブラリ名は、ルールライブラリを種々の名前により細
分するための基本的な方法である。
【0046】 辞書は、テーブルデータ記憶装置以外のサーバを通し
てアクセスするために必要な辞書テーブルをも含む。例
えば、IMSサーバが使用するテーブルIMSTABFIELDS(テ
ーブル名)、IMSSEGFIELDS(db名、seg名)、及びIMSAC
CESS(テーブル名)。IMSTABFIELDSテーブルは、名前が
ファイルされたテーブルアクセス方法を、IMSフィール
ド名へ写像する。IMSSEGFIELDSテーブルは、IMSTABFIEL
DSテーブルから検索されたパラメタに基づいてアクセス
のための構文及び写像パラメタを供給する。IMSACCESS
テーブルはサーバを使用してIMSデータベースへ伝送す
るために実際のアクセス順序を生成する。 また辞書テーブルは、画面サーバが使用するテーブル
をも含む。テーブルSCREENSは、所与のセッション中に
テーブルアクセスマシンを通してアクセス可能な全ての
画面を識別する。テーブルSCREENTABLES(画面)は、あ
る窓のための画面内にある位置にあるその窓の画面定義
を供給する。 更にテーブルSCREENFIELDS(画面テーブル)は、画面
自体上へ直接写像を行う。 この辞書データは如何なる数のサーバにもサービスす
るように拡張することが可能であり、この場合は、より
高次のメタ・データ(メタ・メタデータ)を各辞書デー
タを構築するために使用できる。一つのみのサーバが予
定される場合は、一つのみの辞書データが生成されるべ
きであるので、より高次のメタ・データには柔軟性が必
要とされず、より高次のデータはハードコード化(固定
化)される。 以上にシステムの基本的なアプリケーションプログラ
ムのビューを説明し、システム内のテータ及び辞書デー
タの表現を説明したので、仮想マシンの動作の内部仕様
が理解されたであろう。
【0047】 V.ルールの内部表現 ルールは、仮想スタックマシンが直接実行可能な内部
表現で記憶される。ルールエディタ内にルールを保管す
るプロセスは、その原文ソースコードコードから仮想マ
シンオブジェクトコードへの翻訳を含む。ルールの原文
表現が要求される場合には、逆翻訳プロセスが仮想マシ
ンオブジェクトコードを原文に変換する。1つのルール
に対して1つの表現だけを記憶することの明白な長所
は、表現間の不一致が決して生じないことである。 本節では、ルールの内部表現を詳述する。先ずオブジ
ェクトコードの総合レイアウトの説明から始め、種々の
データ項目、及び仮想マシン演算コード(opcodes)の
詳細な説明はその後に行う。種々の種類のルール文に対
応するオブジェクトコードの例が含まれている。 ルールの書式 ルールオブジェクトコードは@RULESLIBRARYテーブル
内に記憶される。このテーブルはライブラリ名によって
パラメタ化され、その一次キーとしてルール名を有して
いる。 概念的には、あるルールのためのオブジェクトコード
は4つの成分、即ち52バイトの見出し情報と、“n"バイ
トのコードと、“m"バイトの静的(変更できない)デー
タと、“p"バイトの変更可能なデータとに細分できる。
これらの成分の最初の3つだけがオブジェクトコード内
に実際に記憶され、変更可能域はルールが実行のために
ロードされた時に割り当てられる。 以下の表“ルールオブジェクトコードのレイアウト”
はルールオブジェクトコードの詳細なレイアウトを示
す。見出し及びコード区分は、静的データ領域内のオブ
ジェクトに対する参照を含む。これらの参照は見出しの
始めに対して2バイト2進オフセットである。パラメ
タ、ローカル変数、例外ハンドラ名、テーブル・フィー
ルド名、ルール名、及び定数区分は全て静的データ領域
に属する。
【表20】
【0048】 ルール見出し 上表“ルールオブジェクトコードのレイアウト”の見
出し部分はルールの名前を、コード、静的データ及び変
更可能なデータ領域を記述する種々の他の値と共に含
む。 見出し内に記憶される長さは、長さ値の右のバイト数
である。従ってルールの合計長は「長さ」内の値プラス
28(「長さ値」を含むその左のバイト数)である。
【表21】
【0049】 ルール静的データ 本節では静的データ領域の内容の概要を説明する。静
的データ区分内の若干のオブジェクト名は、変更可能な
データ領域内の項目に対する参照を含む。各参照は、変
更可能なデータ領域の始めに対して2バイトオフセット
である。 静的データ領域のレイアウトを記述する見出し内の値
は、適切な時に識別される。 パラメタ オブジェクトコードのパラメタ区分は、このルールに
関して宣言された仮パラメタの名前のリストを含む。リ
スト内の各項目は16バイト名前である。“Numparms"は
このルールに関して宣言された仮パラメタの数のリスト
を含み、一方“Parm off"値はこのリストの始めに対す
るオフセットである。 ローカル変数 オブジェクトコードのローカル変数区分は、このルー
ル内で宣言されたローカル変数の名前のリストを含む。
リスト内の各項目は16バイト名前と、それに続く変更可
能なデータ領域に対する2バイトオフセットとを含む。
“Num locs"はこのルール内で宣言されたローカル変数
の数を含み、一方“Locs off"はこのリストの始めに対
するオフセットを含む。 例外ハンドラ名 例外各区分は、このルールによって処理される例外の
名前のリストを含む。リスト内の各区分は16バイト名前
と、それに続く1対の2バイトオフセットとからなる。
第1の2バイトオフセットは、この例外に関連するテー
ブルの名前を参照する。テーブル名は16バイト名前とし
て静的データ領域内に記憶される。もし関連付けられた
テーブル名が存在しなければ、このオフセットは0であ
る。第2のオフセットは例外を処理するコードを参照す
る。“Excp off"はこのリストの始めに対するオフセッ
トを含み、このリストは2バイトの0で終了する。
【0050】 テーブルのフィールド ルールオブジェクトコードのテーブル・フィールド区
分は、ルール内の全てのテーブル・フィールド名の直接
リストである。リスト内の各項目は2つの16バイト名前
(1つがテーブル用、1つがフィールド用)と、それに
続く変更可能なデータ領域に対する2バイトオフセット
とからなる。“TabFld off"はリストの始めを参照し、
このリストは“Const off"オフセットで終る。 ルール名 ルール名区分は、このルールによって呼出される全て
のルール(またはこのルール内に宣言されていないロー
カル変数)の名前の直接リストである。リスト内の各項
目は16バイト名前と、それに続く変更可能なデータ領域
に対する2バイトオフセットとからなる。“Rule off"
はリストの始めを参照し、リストは“TabFld off"で終
る。 定数 定数区分はルール内の全ての定数(直定数または翻訳
プログラムによって内部的に生成された定数の何れか)
のリストである。リスト内の各項目は6バイト記述子
と、それに続くデータとを有している。データ自体は1
または2バイト長(もしデータの長さが0..127バイトな
らば1バイト、128+ならば2バイト)に事前に固定さ
れる。CLenの高次ビットは、もしCLenが2バイトならば
オンであり、それ以外の場合にはCLenは1バイトであ
る。 型は、定数の意味型を含む単一のバイトである。全て
の定数は未知(空自)の意味型を有する。構文は、デー
タの表現を指示するバイトである。有効構文は、B(2
進数)、P(パック10進数)、F(浮動小数点)、C
(固定文字列)及びV(可変文字列)である。DLenは2
バイトであり、データの定義(または最大)長を含む。
CLenはデータの現長さを含む。Decも2バイトであり、
小数点の右側の桁数を含む。Decはパック10進数定数に
対してのみ意味を有している。“Const off"は定数のリ
ストの始めを参照し、このリストは“長さ”+28によっ
て与えられるオブジェクトコードの終りに終了する。
【0051】 ルール演算コード 仮想スタックマシンはスタックアーキテクチャに基づ
いている。殆どの仮想マシン命令は、スタックの頂上の
項目を操作する。全てのスタック項目は4バイト長であ
る。多くの項目は、テーブルのフィールド、ルール定
数、または実行中に築かれた一時的な値の何れかである
値を指すポインタである。全ての値は6バイトの記述子
と、それに続く実際のデータを指す4バイトのポインタ
とからなる。実際のデータ自体は1または2バイト長に
事前に固定されている。スタックは、ルール呼出し及び
戻しを実現するのに必要な情報のような他の情報を含む
ことができる。 仮想マシンは実行中に築かれた値に対する一次記憶域
を維持する。一時的値がスタックからポップすると、一
時記憶域内のそれらの記憶が無くなる。 全ての仮想マシン命令は単一バイトの演算コード(op
code)を含む。opcodeに依存して、0、1、または2つ
の2バイトオペランドを必要としよう。 各opcodeの意味を記述する目的のために、項目1がス
タックの頂上項目を表し、項自2がスタックの第2項目
を表しているものとする。またオペランド1及びオペラ
ンド2がそれぞれ第1及び第2即値オペランドであるも
のとする。
【0052】 ルールの変更可能なデータ 仮想マシンは、静的データ領域内に命名されたオブジ
ェクト、特にテーブルのルール、ローカル変数及びフィ
ールドに対する参照の実行時の結び付けを遂行する。こ
の結び付けはオブジェクトの探索を含み、オブジェクト
が最初に参照された時に行われる。結合はオブジェクト
のアドレス(または“スレッド”)をルール変更可能な
データ領域内に記憶することによって憶えられる。オブ
ジェクトのアドレスが全トランザクションのための定数
であることから、結び付けられたオブジェクトに対する
爾後の参照は単にスレッドを使用すればよい。 ルールの変更可能なデータ領域のサイズは、ルールが
ソースコードからオブジェクトコードに翻訳される時に
計算される。このサイズは“Mod data"値としてルール
見出し内に記憶される。トランザクションの途上でルー
ルが最初に呼出される時に、そのルールの変更可能なデ
ータ領域が割り当てられて0を含むようにセットされ
る。ルールが実行されるにつれてテーブルのフィール
ド、ローカル変数、及びルールは、それらのアドレスが
このルールの変更可能なデータ領域内の指定されたオフ
セットに保管されることによって、結合される。ルール
の変更可能なデータ領域はトランザクションが終了する
と割り当てから解放される。
【表22】
【0053】 ルールの変更可能なデータ領域は間接ルール及び間接
テーブル・フィールド参照の名前を保管するためにも使
用される。ルールopcodeの節で説明したように、間接参
照は正ではないオフセットによって@RFIELD、@WFIEL
D、@CALL、@EXEC、@XCALLまたは@WARD opcodeのた
めのオペランドとして表示される。正ではないオフセッ
トは、参照されているルールまたはテーブル・フィール
ドの名前が仮想マシンスタック上にあることを指示す
る。この名前はオフセットの絶対値で、そのスレッドと
共にルールの変更可能なデータ領域内に保管される。
【表23】
【表25】
【0054】 ルールコード順序 以上に種々の仮想マシン命令が利用できることを説明
した。今度は種々の言語機能を実現するためにそれらを
どのように組合わせるかを説明する。 条件及び動作 ルールの条件区分のために生成されるコードは、つま
りは各条件が満たされた時に実行される動作(動作リス
ト)に対する“呼出し”の順序(@ACALL)である。こ
れらの@ACALL opcodeは、ある条件と、もしこの条件が
満たされなければ次の条件に分枝する@DROP opcodeと
を評価するためにコードによって“保護”することがで
きる。評価するさらなる条件が存在しない場合には、結
果として@ACALL opcodeの未保護順序が発生し得る。 @ACALL opcodeは次の命令に対するオフセットをスタ
ック上にプッシュし、次いで動作へ分岐する。動作の最
後のocpodeは、保管されたオフセットをその条件のため
の次の動作を処理するために戻す@RETURNである。@RE
TURN opcodeはルールから戻すために各順序内に最後の
@ACALLを伴う。 条件から動作を“呼出す”ことの手便益は、ある動作
が1以上の条件の動作リストのメンバーである場合、そ
の動作のためのコードを1回だけ生成すればよいことで
ある。 表Eに例を示す。
【表26】
【0055】 ルールオブジェクトコード:
【0056】 割り当て 割り当て文のために生成されるコードは、ある式の事
後固定表現と、それに続く@SETL(ローカル変数への割
り当て)または@SET(テーブルのフィールドへの割り
当て)の何れかとからなる。表Fは識別子Gに対する参
照を示す。ルールASSIGNが翻訳される時に、それはGが
ASSIGNの祖先の1つ内に定義されているローカル変数で
あるのか、または引き数を取らない関数であるのかを知
っていない。翻訳プログラムはGが関数であるものとし
てコードを生成し、@FN opcodeが実行される時にGが
実際にローカル変数であるか否かを決定するための検査
が行われる。 ルール呼出し ルールのための引き数は位置によって、または名前に
よって(WHERE文節を使用して)渡すことができる。パ
ラメタが位置によって渡される場合にルール呼出しのた
めに生成されるコードは極めて直接的である。先ず各引
き数が評価されスタック上に一時扱いにされる。それに
続いて@CALL(または関数ルールの場合には@FN)opco
deが引き数の数及びルールの名前をそのオペランドとし
て取る。呼出されているルール内の@RETURN opcodeが
実行される時、呼出されたルールへ渡された全ての引き
数はポップされる。もし呼出されたルールが関数である
ば、戻り値はスタックの頂上に残される。 引き数が名前によって渡される場合には、生成される
コードはやや複雑である。各引き数が評価され一時扱い
にされるのは位置によってパラメタが渡される場合と全
く同じである。しかし、各引き数が対応する形式的パラ
メタの名前も引き数の直後にプッシュされる。これによ
りスタック上にはパラメタ名の率に各引き数毎のパラメ
タ値が伴うことになる。@CALL opcodeの直前は@WARG
opcodeである。@WARGはスタック上の名前/値対を、引
き数が位置によって渡された時と同じ形状で通報する。
これによって実際に引き数が名前によって渡されている
ことに気付かずに、@CALL opcodeを実行することがで
きる。 ルール呼出しによって生成されるコードの例を表Fに
示す。
【0057】 テーブルアクセス テーブルアクセス方法、即ちATMは、データベースに
アクセスする種々の言語文を実現するために使用され
る。TAMへのインタフェースは極めて単純であって、実
行時間スタック上の@TAM opcode及びN(1乃至5)引
き数である。デーブルアクセス文のために生成されるコ
ードは、先ず必要引き数をスタック上へプッシュし、次
いでTAMを呼出す。TAMから戻った後、@TAM opcodeはそ
の引き数をポップし(UNTIL..DISPLAYまたはFORALLの遂
行途上でない限り)、TAMから戻されたコードを保管す
る。 スタック上へプッシュされる最初の引き数は常にTAM
演算コードである。それはTAMにどの種類のテーブルア
クセスが遂行されつつあるのかを告げる。TAM演算コー
ドが最低限要求される引き数である。他の各引き数は任
意選択であり、必要に応じて渡されるものである。 ルールソースコード: 代入; ローカルL;
【表27】
【0058】 ルールオブジェクトコード:
【0059】 第2の引き数は、アクセスされているテーブルまたは
画面の名前である。この名前は常に長さが16文字となる
ようにパッドされる。第3の引き数はそのテーブルのた
めにパラメタ値のリストを含む。パラメタリスト内の要
素は@TAMP opcodeによって挿入される。 ルールソースコード: パーズ呼出し:
【表28】
【0060】 ルールオブジェクトコード:
【0061】 テーブルに加えるべき選択を含む4番目の議論は、説
明するのに最も複雑なものである。基本的にこれは、WH
EREクローズの後置による表示を含んでいる。これは、
論理演算子によって結合されている1つ以上の項によっ
て構成される。各項はフィールド参照によって始まり、
これに表現式(フィールド参照、値および算術演食子に
よって構成される)が続き、関係演算子によって終了す
る。各フィールド参照は17バト長であり、1個の1バイ
トの2進コードは、これがフィールド参照であり、その
次にこのフィールドの名前が続くことを示す。各値は、
この値のための1個の1バイトの2進コードであり、こ
れにはこの値に対する4バイトのポインタが続く。各演
算子はこの特定の演算子を表す1バイトの2進コードで
ある。パラメータ・リスト内の要素と共に@TAMP演算コ
ードを使用して参照を選択列内の値に挿入する。 5番目の議論は、検索した事象に加えるべき全ての順
序付けを含んでいる。順序付けした列内の各項は16バイ
トのフィールド名を含み、これに「A」または「D」が
続いてそのフィールドが昇順に順序付けされるべきであ
るか降順に順序付けされるべきであるかを示す。テーブ
ルHはテーブル・アクセス・コードの例を示す。 間接参照 ルールの名称(CAL,TRANSFERCALLまたはEXECUTEステ
ートメントにおける)、種々のテーブルのアクセス・ス
テートメントにおけるテーブルまたはスクリーンの名
称、割当の左側または表現式におけるテーブルおよびフ
ィールドの名称を指定するため間接参照を使用してもよ
い。 間接参照用に発生されたコードは、先ず参照をスタッ
クに載置することによってこの参照を評価する。間接参
照を使用する演算コードは、そのオペランドの1つとし
て非正オフセットを有する。この非正オフセットは、こ
の名称が(直接参照の場合の静的データ領域にあるので
はなく)走行時間スタックにあることを示す。テーブル
Iは間接参照コードの例を示す。 テーブル・アクセス・ステートメント用の間接テーブ
ルおよびスクリーンの名称は、上で説明したのとは若干
異なった挙動を行う。テーブルまたはスクリーンの名称
の値をスタックに載置した後、特別の演算コード(@TA
M)が発生される。これはこの値を取出し、これをスタ
ックの上部で一時的な値にコピーする。
【表29】
【0062】
【表30】
【0063】
【0064】 VI.トランザクション・プロセッサ 第3図はトランザクション・プロセッサのブロック図
であり、このトランザクション・プロセッサは前の節で
説明したように、オブジェクトコード水準のルールを実
行するための仮想スタック・マシンを実行する。 この仮想スタック・マシンはこれらのルールの実行を
管理するソフトウェア・モジュール100である。セッシ
ョンが開始されると、仮想スタック・マシン100は複数
のルール・ライブラリ101を検索して1組のバッファ102
を設定する。更に、演算コード・テーブル103が設定さ
れ、スタック104がセットアップされる。これらのバッ
ファは、データ管理領域102A、作業領域102B、および1
時領域102Cを有する。 実行を行う場合、仮想スタック・マシンはライン105
を介して命令ポインタをルール・ライブラリ101に発生
する。スタック・ポインタが発生され、ライン106を介
してこのスタックに供給される。仮想スタック・マシン
100はライン107を介して演算コード・テーブル103と通
信を行い、かつライン108を介してバッファ102と通信を
行う。データ・アクセス命令はライン109を介してテー
ブル・アクセス・マシンに供給される。仮想スタック・
マシンは下記のようにアルゴリズムを実行する。 1. ルール内の命令ポインタによって示されるべき演算
コードを取り出す。 2. 演算コード・テーブル103内の演算コードを探索
し、この演算コードによって識別されるホスト・システ
ム・ルーチンを検索する。 3. このホスト・システム・ルーチンを引き渡す。 4. 命令ポインタを前進させる。 5. 演算コードを取出すステップに戻る。 第4図は、「CHECKTRAIL」という名称のルールを呼び
出すために仮想スタック・マシンが行う実行例を示す。
この例では、CHECKTRAILルールは2つのパラメータ、す
なわち‘TORONTO'とPERSONを有する。このルールのオブ
ジェクト・コードはルール・ライブラリのロケーション
120に記憶されている。命令ポインタは、トップ・コー
ド@CONST‘TORONTO'から最後のオジェクト@CALL2、オ
フセットに前進され、ここでオフセットはライン121に
よって示される。このオフセットは、オフセット122を
有するルール名CHECKTRAILが記憶されているこのルール
の静的データ領域内の位置を識別する。オフセット122
は、CHECKTRAILオブジェクト・コードの値が記憶されて
いるこのルールの変更可能領域内のロケーションを記憶
する。この値はCHECKTRAILを見つけることができるルー
ル・ライブラリ124内のロケーションをライン123を介し
て示す。スタック125は下記のようにインパクトをうけ
る。
【0065】 先ず、@COST演算コードに応答して、可変TORONTOの
値が仮想スタック・マシンの作業領域内に載置される。
@TEMP演算コードに応答して、TORONTOパラメータの一
時コピーが記憶される。このスタックには一時コピー12
8のための値127に対するオフセット126がロードされ
る。次に、パラメータ‘PERSON'が仮想スタック・マシ
ンの作業領域に移動され、一時コピーが行われる。この
スタックには、定数PERSON 131の一時コピーの値130に
対するポインタ129がロードされる。次に、@CALL 2、
オフセット・ルールが実行される。もし@CALL演算コー
ド内のオフセットが呼び出されるべき静的データ領域内
の名称とオフセットを指していれば、呼び出すべきルー
ルを記憶しているルールの記憶装置内のロケーションを
識別する値はオフセット122によって識別されるロケー
ション132のルールの変更可能データ領域に記憶されて
いる。仮想スタック・マシン内の命令ポインタは次にCH
ECKTRAILが見付かるルールの記憶装置124内のロケーシ
ョンに移動し、CHECKTRAILを実行する。 第3図に示すルール・ライブラリ101は、複数のルー
ル・ライブラリによって構成される。@CALL演算コード
を実行すると、適当なルールに対するサーチがルール名
によって実行される。このルールは、ライブラリの1つ
の中のルールオブジェクト・コードとして、ビルトイン
機能またはサブルーチン(例えば、ユーザの入力に応答
するENTERキーのサブルーチン)、恐らくCobolまたはPL
1のような異なったソース言語で書かれた顧客の定義す
る外部ルーチンとして見出ことが可能であり、またはこ
れは実際のルールに対する呼び出しではなくて局部的で
可変の参照である。従って、ルールの名称のサーチは、
先ずステートメントが実行されたルール内の局部的な変
数のリストによって進行され、第2に所定のセッション
に対してユーザがセットアップした局部的なルールのラ
イブラリによって行われ、次に所定の実行及びプログラ
ム環境に対して顧客が設定した標準的な組のルーチンで
ある導入ルール・ライブラリを介して行われ、第4に動
作システムの全ての標準的な機能を含むビルトイン・ル
ーチン・ライブラリによって行われ第5に、データの管
理及びその他のビルトイン動作で使用されるHOSシステ
ムルーチンを記憶するシステム・ルール・ライブラリを
介して行われ、第6すなわち最後に、外部ルーチンのラ
イブラリを介して行われる。
【0066】 セッション・マネージャのような前のルールからルー
ルが呼び出される場合、後続のルールの実行を開始する
前に、以前のルールのスタックをスタック内の文脈保存
領域に保存する。復帰ステートメントを実行すると、ス
タック・ポインタは以前のルールに戻る。 仮想スタック・マシン内のデータ管理領域102Aは、ル
ール名のサーチを行うテーブルを有している。第5図は
これらのテーブルを示す。ルール名の場合、ルール名ハ
ッシュ・テーブル150が発生され、これはエントリの長
さが127である。ルール名ハッシュの各エントリは、こ
のエントリにハッシュされる最初のルールに対するポイ
ンタを有する。例えば、CHECKTRAILルールに対するポイ
ンタ151は第1エントリである。CHECKTRAILルールはハ
ッシュテーブル内のこのエントリに対応する第2ルール
に対するポインタ152を記憶する(例えば、この図に示
すSHORTルール)。SHORTルールは次にこのリストの終わ
りである後続のエントリに対するポインタ153を有し、
これはルール名ハッシュ・テーブル内の所定のロケーシ
ョンにハッシュされる。 もし呼び出したルールがハッシュ・テーブル内に位置
していなければ、次にこれはテーブル・アクセス・マシ
ンによって検索され、セッション用のルール・ライブラ
リに挿入されなければならない。 第6図は、仮想スタック・マシンのデータ管理領域内
にビルトインされたテーブルの定義を示す。このテーブ
ルの名前は、先ずテーブル名称ハッシュ・テーブル160
にハッシュされる。次に、ハッシュ・テーブル160のエ
ントリをテーブル・リスト161に示し、このテーブル・
リスト161をサーチして問題のテーブル「FRUIT」の名前
を見つける。このエントリは、パラメータ・リスト163
に対する第1ポインタ162とこのテーブルのフィールド
・リスト165に対する第2ポインタ164を有する。このフ
ィールド・リストは、問題の領域を有するテーブルの発
生した場合の行バッファ167に対するポインタ166を有す
る。
【0067】 仮想スタック・マシンは、全てのデータ・アクセスお
よび局部的な変数に対するバッファを有している。従っ
て、ルールのプログラムが、 GET CARS WHERE LIC_PLACE=‘878BBC'; であれば、VSM(virtual stack machine)はテーブルCA
RSに対するディクショナリ情報を取得し、これに対する
バッファを設定しなければならない。 同様に、ルールのプログラムが、 CUSTOMER,NAME=INPUT.NAME; であれば、データ・アクセス命令を発生することなく、
仮想スタック・マシンはテーブルCUSTOMERに対するディ
クショナリ情報を取得し、これに対するバッファを設定
しなればならない。 特定のテーブルに対するバッファが設定されると、こ
れは現在のトランザクションにおける全てのルールに対
して以降使用可能になる。仮想スタック・マシンは、GE
TまたはFORALL命令を介してまたは割当ステートメント
を介していずれのフィールドといずれのテーブルが値を
割り当てたかを追跡しつづける。 仮想スタック・マシンは、1組のアクセス命令を発生
することにより、全てのアプリケーション・プログラム
が正に行っているように、そのデータ管理領域を形成す
るためのディクショナリを取得する。 GET TABLES WHERE NAME=TABLE NAHE; FORALL FIELDS(TABLE NAME); FORALL PARMS(TABLE NAME). ディクショナリ・データとその他のデータの均一なビ
ューはこのテーブル・アクセス・マシン上に厳密に保存
される。このテーブル・アクセス・マシン上のシステム
のいずれの構成要素も正規化されないディクショナリ・
データを見ることはない。
【0068】 VII.テーブル・アクセス・マシン 第7図は、テーブル・アクセス・マシンをブロック図
で示す。 このマシンすなわち方法は、ホスト・アセンブラ・ソ
フトウェア・モジュール200によって構成され、このモ
ジュールは仮想スタック・マシンと線201を介して通信
を行う。このモジュール200はバッファ202を設定し、こ
のバッファ202はデータ管理領域バッファ202Aと作業領
域202Bを有する。更に、テーブル・アクセス法モジュー
ル200によって複数のサーバに対するインターフェース4
01が設けられ、このインターフェース401は、ネイティ
ブ・テーブル・データ記憶装置に対するTDSサーバ203、
ホスト・マシンと関連するINSデータ・ベース内に記憶
されたデータ用のIMSサーバ204、ホスト・マシンに接続
された表示システムに対するインターフェイスを設ける
スクリーン・サーバ205、インポート/エクスポート・
サーバ(図示せず)およびテーブル・アクセス法200を
介して仮想スタック・マシンに対してデータの検索を行
うために必要なその他のサーバを有する。インターフェ
ース402を介してこれらのサーバと接続されているのは
選択エバリュエータ・モジュール206であり、これはサ
ーバの水準で選択列を解釈する。 テーブル・アクセス法(TAM,Table Access Method)
はこのシステムの構成要素であり、これはシステム内の
全てのデータ・アクセスを管理し、ディクショナリ・テ
ーブルとセッションによって使用されている全ての他の
テーブルの収容場所の有効なオーナである。 TAMに対する呼び出しは下記の情報を有している。 1.動作 2.データおよび復帰領域のアドレス 3.テーブルの名称 4.パラメータ 5.選択列 6.順序付けした列 動作は下記の通りである。 A:FORALLの最初の要求 B:FORALLの後続の要求 I:挿入 G:キーによる入手 N:キーによらない入手 R:取替え D:削除 S:表示スクリーン C:コミット O:ローバック T:トランザクション
【0069】 特定のテーブルに対する最初の要求で、TAMはテーブ
ル・データ記憶装置からCTABLEを得る。CTABLEは正規化
されていない形態のディクショナリ・データによって構
成される制御ブロックである。CTABLEはTAMと全てのデ
ータ・サーバの両方によって行われる処理に使用され、
これらのTDSは1である。CTABLEはTABLE,FIELDS,PARMS,
SELECTION,ORDERINGおよびEVENTRULESにおけるのと同様
に等価なデータを含んでいる。TAMは、 GET TABLE WHERE NAME=テーブルの名称; のような呼び出しを与えられると、直ちにテーブル用の
CTABMEを得ることに留意のこと。 通常、このことは、TAM上の構成要素は〈テーブルの
名称〉に対するバッファを構築することを欲し、したが
ってGETを要求した直後下記を発生する。 FORALL FIELDS(テーブルの名称);および FORALL PARMS(テーブルの名称) これらの要求は、CTABLEからTAMによってサービスさ
れる。 CTABLE以外にTMAはデータライン用のデータ構造をセ
ットアップし、ここでアクセスされた最後のラインが保
持されると共にペンディングのインテントリストがデー
タ・サーバに更新される。 TMAはデータ・ベース内の配置を管理する。TDSのよう
なデータ・サーバは、TAMからの要求をいずれの情報網
も要求毎に保持することなく1つ1つ処理する。LOCK M
ANAGER(TDS内)のみがトランザクションの持続期間中
情報を保持する。 パラメータ化されるテーブルの場合、TAMはバッファ
および設定されたテーブル内でアクセスされる各テーブ
ルに対する位置を保持する。 REPLACE、INSERTまたはDELETE要求がTAMによって受け
取られると、これはそこ(DELETEおよびREPLACE)で発
生したものであるか、またはそこ(INSERT)で発生した
ものでないかをサーバに尋ねることによって、このTAM
はこの要求が可能であるかどうかを確かめ、この事象に
基づいて排他的なルックを得る。従って、TAMはCOMMI,R
OLLBACKまたはTRANSACTION_END要求を受け取る迄REPLAC
E,INSERTまたはDELETEの発生をインテントリストに載置
する(リストを作成するための作業)。 TAMはサブビューと論理ビューの間で変換を行い、こ
れは下記によって構成される。 *異なった表示の間のデータの変換 *プロジェクション(サブビューは論理ビューよりもよ
り少ないフィールド有している) *選択(サブビューは論理ビューよりもより少ないライ
ンを有している) *順序付け(論理ビューと異なった) *取出したまたは計算したフィールド サブビューは論理ビューに対する窓口であることが効
率的であり、これは記憶装置では決して具体化せず、実
行の期間中にバッファ内に現れるだけである。しかし、
ユーザおよびVSMにとって、サブビューのテーブルと論
理ビューのテーブルの間に明確な差は存在しない。
【0070】 取出したフィールドはサブビューのフィールドであ
り、これはGETの処理またはFORALLの処理中に計算され
る。妥当性の検査(validation)トリガのルールはEVEN
TRULES情報に基づいて実行される。 3つの場合全てにおいて、TAMは(再帰的)呼び出し
を仮想スタック・マシンに対して発生してルールを実行
する。その上に妥当性の検証またはトリガがスケジュー
ルされているテーブル・バッファは、インテリントリス
トと同様に、再帰水準によって共有されている。 TAMは一時的テーブルの概念を実行し、これはトラン
ザクション(TAMのデータ領域に於ける)の期間中のみ
に存在するが、TDSのようないずれのテーク・サーバ内
でも具体化しない。 TAMは、データ・サーバ内で保持されている順序とは
異なった順序でサブビューとFORALLの要求の両方に対す
る全ての必要なソートを実行する。 データに対するアクセス要求は、特定のテーブルに対
するTABLESテーブル内の情報に基づいて適当なサーバに
与えられる。 第8図は、TAMのバッファ記憶領域の図である。TAMの
バッファ記憶領域は、テーブル・インデックスを有する
アンカー記憶領域250を有する。このテーブル・インデ
ックスはテーブルT1−T3等などの各々に対するCTABLEを
バッファする1組のCTABLES251に示される。 更に、所定のテーブルT1に対するバッファ・ポインタ
はこのテーブルT1に対するバッファの組252に供給され
る。この組252は、テーブル1に対するトリガーとパラ
メータのインデックス253を有する。このインデックス
は、必要に応じて実際のデータ発生バッファ254、255、
256等に供給される。更に、インデックス・ページ253
は、ページ257における、選択列等の他のT1の情報に示
される。更に、テーブルT1周のインテント・リストは、
必要に応じてページ258と259内で保持される。
【0071】 更に、アンカー記憶装置250は組260内のフリー・バッ
ファに示され、これは複数のシングル・リンク・エンプ
ティ・バッファを有する。 バッファ動作は連続して前方向に行われる。テーブル
のアンカーは「T」の演算コードに応答してトランザク
ションの終了時点でクリアされる。 第9図は、テーブルの種類対これらのテーブルの種類
に対して実行可能なテーブルの演算コードを示すチャー
トである。第9図において、テーブルの種類SUBはTDSの
テーブルの種類1またはIMSのテーブルの種類2のいず
れかのサブビューである。更に、IMPの種類のテーブル
とEXPの種類のテーブルはPDSのメンバに等しいパラメー
タPARM 1を有している。 第10図は、テーブル・アクセス・マシン内のCTABLE情
報を示す。CTABLEは、バッファ280に記憶されている対
応するテーブルの特性のテーブルである。このバッファ
はデータ281から発生され、このデータ281は、テーブル
・データ記憶装置におけるディクショナリ・テーブル28
2から検索されたものである。これらのディクショナリ
・テーブルは、今度はシステム内における全ての他のデ
ータのようにテーブル・データ記憶装置のバランスした
記憶構造283内に保持される。従って、CTABLE内のメタ
データはそれに基づいてトランザクションが実行されて
いる関係のあるオブジェクト指向データ・ベースに記憶
される。 しかし、「メタ−メタ−データ(meta−meta−dat
a)」はハード符号化されている。すなわち、ディクシ
ョナリ構造はユーザのために設定され変更することがで
きない。従って、所定のトランザクションがうまく完了
するには最小組のディクショナリ・テーブルがなければ
ならない。 所定のCTABLEはトランザクションの持続時間中拘束さ
れている。従って、これが検索された後、テーブルの一
部を最初に呼び出すと、そのテーブルに対してその後に
行われる全ての呼び出しはテーブル・アクセス・マシン
のトランザクション記憶領域内のこのCTABLEによって行
われる。
【0072】 第11図は、ソース・テーブル(T)とサブビュー・テ
ーブル(S)を示す。サブビューは、ソース・テーブル
内のある長方形のマップである。従って、第11図から分
かるように、サブビューは、ソース・テーブルTの行
2、3および5の第1および第3列を有している。この
サブビューは、データ・バッファを1組しか有していな
いが、CTABLESを2つ有しているテーブル・アクセス・
マシンによって実行される。サブビューは、インターフ
ェース時間が発生する度に構築される。しかし、取り出
されたフィールドは、ソース・テーブルからのみ発生さ
れる。従って、サブビュー・テーブルSにアクセスする
必要のあるルール内の要求に応答して、テーブル・アク
セス・マシンはソース・テーブルTとサブビュー・テー
ブルSの両方に対して制御テーブルを構築する。 アクセスはソース・テーブルTに対するテーブル・デ
ータ記憶装置内で発生する。従って、ソース・テーブル
のページはテーブル・アクセス・マシンに戻される。次
に、このテーブル・アクセス・マシンはページをバッフ
ァし、これを論理サブビューに変換し、サブビュー内の
最初の事象を実行子(executor)に戻す。 トリガーは事象のルールとしておよびそうでなければ
所定のテーブルに対するCTABLEのエントリーに応答して
実行することができる。ルールを呼び出すと、呼び出し
ルール実行環境が保存され、TAMはトリガーされたルー
ルを解釈するために実行子に送る。トリガーされたルー
ルはまたテーブル動作を発生することが可能であり、こ
れらのテーブル動作によって実行子はテーブル・アクセ
ス・マシンに復帰する。トリガーされたルールを完了す
ると、制御は呼び出しルールに戻る。
【0073】 パラメータ化されたテーブルはアクセス・モデルで実
行されるが、発生水準では実行されない。従って、これ
らはサブビューと同じ方法で実行される。これらのパラ
メータ化されたテーブルにより、連結されたキー、改良
された同時実行、仮想マシン内の保管記憶スペースおよ
び単純化された保管が可能になる。これらは、テーブル
・データ記憶装置内のディクショナリからテーブル・ア
クセス・マシン内にパラメータ・テーブルを構築するこ
とによっそ実行される。この制御テーブルは、TAMから
テーブル・データ記憶装置に対する「T」呼び出しに応
答して構築される。このテーブル・アクセス・マシンは
次にパラメータの事象を実行子に送り、テーブル・ルッ
クアップ・インデックスに入力する。 TAMは、テーブル・データ記憶装置からのデータをソ
ース・テーブルから検索する。これはソース・テーブル
用のバッファを構築し、次に複数の事象を実行子に送る
前にパラメータの選択を実行する。 また・サブビューの選択は、オペレータのRAS上にソ
ース・パラメータの名前を指定することができる。一時
テーブルとインテント・リストは同じコードを有するテ
ーブル・アクセス・マシンによって作られる。テンポラ
リ・テーブルによりまた選択が可能になる。これらのテ
ーブルは直線的な方法でサーチされる。しかし、アクセ
スはランダムに行うことができる。
【0074】 第12図は、所定の動作に対するインテント・リストの
コードと追加を示す。インテント・リストにはインテン
トが記憶され、値k=5と値k=4を記憶していること
が分かる。終了時点で実行されるFORALLステートメント
によってソートが呼び出され、挿入を行なう。取替え、
削除およびゲット(get)のような他の演算子は同じ方
法でインテント・リストを使用する。 第13図は、トランザクションの図である。本発明によ
るこのオブジェクト指向動作システムは、トランザクシ
ョン指向である。従って実行子はトランザクションを決
定し、テーブル・アクセス・マシンはこのトランザクシ
ョンの認識によって動作する。これにより、動作は同時
性と完全性を得るための小片にブレークダウンされるこ
とが可能になる。また、これは転送呼び出しおよび実行
機能を除いてユーザにとって明白なものまたは暗黙のも
のになることができる。第13図に示すように、トランザ
クションが開始されると、第1のルールは点300におけ
るCALLである。このルールは、第2のルールが点301で
呼び出されるまで実行される。この第2のルールは、テ
ーブル・アクセス・マシンに対する再帰的呼び出しを有
する実行子によって実行される。第2のルールは点302
で第3のルールを呼び出すことができる。この第3のル
ールは、これが動作を完了して点303で第2ルールに対
する復帰を発生するまで実行される。次に、第2ルール
は実行を完了し、点304で第1ルールに対する復帰を発
生する。次に、第1ルールは実行を完了して終了する。
概念上第1ルールはセッション・マネージャと考えるこ
とが可能であり、ここでこの第1ルールは演算子にメニ
ュー・スクリーンを提供する。演算子は次に第2ルール
を呼び出して所定のアプケーションを実行する。この第
2ルールは、所定のアプケーションによって要求される
幾つの数のトランザクション・レベルを有することも可
能である。
【0075】 テーブル・アクセス・マシンは、またデータ・ベース
内のオブジェクトに対して2相のロック・プロトコルを
実行する。全てのロックはトランザクションの終了時点
でクリアされ、トランザクション中に「より弱く」され
ることはできない。これらのロックはテーブル・アクセ
ス・マシンによって要求され、テーブル・データ記憶装
置または他の種類のデータ・ソースのサーバのようなネ
イテブ・アクセス・メソッド・サーバによって承認され
または承認されない。 テーブル・アクセス・マシンは、また選択評価子に対
する転送用の選択列を構築し、この選択評価子は、テー
ブル・データ・ストア・サーバまたはその他のネイテブ
・データ・ストア・サーバと関連する。選択評価子は、
サーバによって呼び出される。サーバは、選択列と共に
テーブルからラインを供給する。選択評価子に供給され
るデータの定義は存在しない。選択評価子は選択動作を
実行する。選択の結果は適当なサーバによってテーブル
・アクセス・マシンに戻される。 本データ処理システムの種々のテーブル、スクリー
ン、およびその他のサブシステムにアクセスするため、
VSM内のオブジェクト・コード・ルーチンは@TAMアーギ
ュメントを構築し、これらのアーギュメントはVSH〈−
−−〉TAMインターフェースでTAMに供給される。TAMは
テーブル、スクリーン等に対する実際のアクセスを実行
するサーバに種々の要求を伝達する。これらのサーバ
は、次に要求を選択評価子に供給してもよく、この選択
評価子は評価を実行してサーバに応答を戻す。これらの
サーバは次にデータまたは応答をTAMに戻し、TAMはこれ
らをVSMオブジェクト・コード・ルーチンに供給する。
【0076】 TAM〈−−−〉サーバ・インターフェース TAMは、サーバを介して演算環境の種々のエンティテ
ィと通信を行なう。スクリーン、IMS、インポート/エ
クスポート、ネイテブ・テーブル・データ・ストア、お
よびその他のエンティティに対するサーバが存在する。
TAMはサーバに対して要求を送り、これに続いて1つ以
上のデータを送る。データ列は、もしこれの長さが128
バイト未満であれば(ビット0はクリア)、1バイト長
の標識によって開始され、もしこの列の長さが127バイ
トよりも長ければ、2バイト長の標識(ビット0はセッ
ト)によって開始される。テーブル64は、TAMが作るこ
とができる有効なサーバの要求をリストアップする。
【表31】
【0077】 テーブル65〜69は要求のデータの内容に関する詳細な
情報を与え、要求コードの各々に対する通信を戻す。
【表32】
【表33】
【表34】
【表35】
【表36】
【表37】
【0078】 サーバ−−>選択評価子インターフェース TAMは、サーバに種々のメッセージを送りこれらのメ
ッセージは処理のために選択評価子に供給しなければな
らない情報を含んでいる。選択評価子は、下記のレジス
タが支持されたデータを含んでいることを期待してい
る。 レジスタ 内 容 15 入力点の選択評価子に対するアドレス 13 標準保存領域のアドレス 01 パラメータ・リストのアドレス パラメータ・リストは、所定のバイト・オフセットに
下記の情報を含む・ バイト・オフセット 内 容 0 選択列のアドレス 4 比較されるテーブル行のアドレス 8 4080−バイトの作業領域のアドレス 選択列は2バイト長のフィールドによって構成され、
これに後置表記の1つ以上の選択項目が続く。各選択項
目は1バイトの演算コードで始まり、テーブル71にリス
トするカテゴリにグループ化することができる。
【表38】
【0079】 フィールドおよび値の記述子の内容に関する詳細な情
報、および選択列項目の演算コードは、それぞれ、テー
ブル72と73に与えられる。
【表39】
【表40】
【0080】 同じ関係の演算子は2つのオペランド、すなわち、フ
ィールド名とパターンを有している。もし行に於けるフ
ィールドの値がパターンと一致すれば、この関係の結果
は真である。このパターンはワイルドカード、すなわ
ち、‘’(ゼロ以上の文字の列)および‘?'(1の文
字)を有することができる。 アドレスを通って選択評価子に供給されるテーブルの
行は2つのフォーマットの内のいずれか、すなわち、拡
張可変長行フォーマット(一時、インポート、スクリー
ン、およびIMSテーブルで使用される)または可変長行
フォーマット(その他の場所で使用される)である。 可変長行フォーマットは2バイトの行長の指定子で始
まり、この指定子は指定子自身を含む行全体の長さを与
える。行長の指定子に付加されているのは1つ以上のフ
ィールドであり、第1フィールドは「キー」フィールド
である。このような各フィールドは、もし長さのインジ
ケータを除いてフィールドの長さが128バイト未満であ
れば1バイトのフィールド長の標識によって開始され
(ビット0はクリア)またはもしこの長さが127バイト
以上であれば、2バイトのフィールド長の標識によって
開始される(ビット0はセット)。フィールドの値は所
定数のバイトによって表される。ブランクは、構文文字
を含む全てのフィールドの右端から取り除かれる。もし
要求されたフィールドが行内に存在しなければ、このフ
ィールドはヌル(null)値を有すると仮定される。
【0081】 拡張可変長行フォーマットは、行長の指定子が使用さ
れていないという点で若干異なっている。また、固定数
のバイトが各フィールドの値のために確保され、各フィ
ールド用の長さのインジケータは単にこれらのバイトの
内の幾つが実際使用されているかを示すにすぎない。最
終的な相違点は、もし要求されたフィールドが行内に存
在しなければ、このフィールドがヌルの列と比較されて
いるのでなければ、この行を選択しないことである。 選択評価子−−>サーバ・インターフェース 復帰すると、選択評価子がサーバに行き、レジスタ15
に以下の復帰コードが示される: 復帰コード 理 由 0 行は選択基準と一致する 4 行は選択基準と一致しない。 8 エラーを検出 もしエラーを検出すると、拳択評価子は作業領域に復帰
し、テーブル74にデータが示される。
【表41】
【0082】 エラーメッセージは「%Fnnnn」のホームの列を有す
ることが可能であり、ここで「nnnn」は可変長行フォー
マット行の4桁のフィールド番号または固定長のフォー
マット行の4桁のフィールド・オフセットである。例え
ば、エラー・メッセージは‘TYPE ERROR、FIELD“%F00
10"COMARED WITH TYPE IDENTIFIER'と読まれ、呼び出し
エンティティは、そこで適当なフィールド名を「%F001
0」の代わりの列に代替することができる。 従って、テーブル・アクセスは実行子のオブジェクト
・コードのテーブル・アクセス・ステートメントで開始
されると要約することができる。従って、オブジェクト
・コードは、@TAMアーギュメント、およびこのような
アーギュメントで使用される定数を構築するコードを有
する。このコードは、ルール編集子によってソース・レ
ベルで個々の形式に再構築することができる。オブジェ
クト・コード内のテーブル・アクセス・ステートメント
は次に@TAM演算コードのフォーマットに変換される。
これは、演算コード、テーブル名、パラメータ、選択
列、スタックに対する順序付け情報を含む。これらの値
は記述子フォーマットに記憶され、データ管理データ構
造に基づいている。アクセスはフィールド名を使用して
行なわれる。次に、TABLEL ACCESS MACHINE INTERFACE
が実行され、これの演算コード、テーブル名、パラメー
タ、選択列、および順序付けがマシン・コード・フォー
マットにセットされる。 サーバは次にネイティブ・データ記憶装置との必要な
通信を実行して識別された事象を復帰させる。選択評価
子が適当な時期にサーバによって呼び出される。
【0083】 VIII.ダイナミック・バインディング 仮想スタック・マシンで実行されるダイナミック・バ
インディングは、3つの主要なステップを有する実行例
として要約することができる。先ず、ルール・オブジェ
クト・コードが変更可能なデータ領域で実行される。第
2に、実行子はルールおよびテーブル用のハッシュ・テ
ーブルを構築し、これによって結び付けるべきオブジェ
クトを速やかに見つけることができる。第3に、セッシ
ョンのログで、仮想スタック・マシンは固定されたデー
タをバッファするが、これらのデータは、システムとイ
ンストレーション:ライブラリからのルール、およびデ
ィクショナリ等のための固定されたテーブルの定義を含
む。 結び付けられないルール内のオブジェクトにはテーブ
ルに記憶されているルールまたはデータが含まれる。1
つのルールが名前によって他のルールを呼び出す場合、
このルールは、呼び出されるべきルールの値を記憶する
ことができるこのルールの変更可能データ領域内の1つ
の位置に対するオフセットを有する。次に、実行子はハ
ッシュ・テーブルとそのバッファを介して名前によって
ルールをサーチする。もしこれがハッシュ・テーブル内
で見付からなければ、次にテーブル・アクセス、マシン
に対する呼び出しが実行されてハッシュ・テーブルにバ
ッファと正しい値を挿入する。実行子が呼び出されるべ
きルールのバッファを見出だせば、このバッファの値は
このルールの変更可能な部分に挿入される。同様に、オ
ブジェクトがテーブルによって呼び出され、フィールド
の名前がルールによって呼び出される場合、そのテーブ
ルはハッシュ・テーブルまたはライブラリを介して仮想
スタック・マシンによって見出たされる。呼び出された
フィールドが見出たされるテーブルの事象に対する値
は、次に特定のオフセットにおけるルールの変更可能な
部分に記憶される。
【0084】 データ・ベース内の全てのオブジェクトは、これらの
フォーマットを使用して実行時に結び付けることが可能
である。事実、その中でルールが見出だされるテーブル
は、上述したように、所定の組のライブラリーをサーチ
することによって決定されることを除いて、ルールの結
び付けはテーブル・フィールドの結び付けと同様であ
る。 セッションのログにおいて、テーブル・データ・スト
アおよびホストと関連する他の記憶システムからのかな
りの数のデータ・テーブルを仮想スタック・マシンに取
り出して1つのルールの実行の期間中にテーブル・アク
セス・マシンとネイティブ・データ・ストアを介する呼
び出しを最小にすることができる。
【0085】 IX.テーブル・データ・ストア テーブル・データ・ストアは、本発明によるオブジェ
クト指向動作システム用のネーテブ・アクセス法であ
る。このシステムのデータは、バランスした構造内に記
憶され、ここで各テーブルはこのテーブル内の1次キー
に基づいて順序付けられる。第14図は、このテーブル・
データ・ストアによって実行されるアクセス法の基本的
な構造を示す。テーブル・データ・ストアは、テーブル
・インデックス・ページ500によって構成される。テー
ブル・インデックス・ページは、これが適当である場
合、パラメータ・インデックス・ページ501に対するポ
インタを有するテーブル名のリストを有する。テーブル
・インデックス・ページに於ける他のエントリは1次キ
ー・インデックス503に直接示される。パラメータ・イ
ンデックス・ページ501に於けるエントリは1次キー・
インデックス502に示される。1次キー・インデックス
は1次キーに基づいて順序付けられたB+ツリー組織に
基づくバランスした2進ツリー507である(ここでイン
デックス502はこのツリーの上部である)。B+ツリー
のボトムはこのテーブルに対する事象を記憶するデータ
・ページに対する実際のリンクに示される。 パラメータ・インデックス501またはテーブル・イン
デックス・ページ500もまた2次キー・インデックス508
に示されることができる。2次キー・インデックス508
は、B+キー構造に基づいて2次キーのインデックスの
下位の組509に示される。これらのインデックスは1次
キー507のB+ツリーと同じリンクされたデータ・ペー
ジ510に示される。
【0086】 第15図は、全てのページの種類に対するページのレイ
アウトを示す。このページは32バイトのヘッダ520を有
する。このヘッダは、ページ番号521、前のページのポ
インタ522、次のページのポインタ523、ページの種類の
指標524、およびデータ値525によって構成される。タイ
ム・スタンプ526が含まれ、またトランザクションI.D.5
27、チェック・ポイント番号528、ページ529内の行の番
号およびページ530内の各行のサイズが含まれる。デー
タ領域531は、4,051バイトのデータによって構成され
る。ページの終端部には13バイトの記録定義領域がホス
ト・システムによって使用されるVSAM INFORMATION532
周に確保される。 このページ内の記録は、下記のホーマットで1行のテ
ーブルを記憶する。 LL/1/値/1/値/1/値…1/値/1/直、 ここでLLは2バイト長の行に等しく、1はこの値に対し
て1バイトまたは2バイト長に等しく、この値は実際の
データ入力またはヌル値である。 1次インデックス記録は、下記のフォーマットであ
る。 value/pointer 2次インデックス記録は、下記のフォーマットであ
る。 secondary key va 1 ue/primary key value/pointer グループ・インデックス入力は、下記のフォーマット
である。 parm/parm/…/pointer データ構造はB+ツリーによって自動的にバランスさ
れる。所定の水準のツリー内に3つ以上のエントリが発
生される場合には常に周知の技術にしたがってB+ツリ
ーが自動的に独立した水準のツリーを実行する。 従って、1次キーによるテーブル内の事象のサーチは
極めて迅速に行われる。非順序領域をサーチする場合、
テーブル全体が選択のためにサーバに対して検索されな
ければならず、またはサブビュー等を発生するためにテ
ーブル・アクセスマシンに対して検索が行われなければ
ならない。
【0087】 X.変換プログラム/逆変換プログラム ルールの発生と変更は3つの構成要素すなわち編集
子、変換プログラムおよび逆変換プログラムの相互作用
によって行われる。ルール編集子は、ユーザがルールの
内容にテキストに基づく変更を行うことを可能にする対
話型のツールである。この変換プログラムは、ルールの
テキストに基づくイメージを「仮想マシン・コード」に
変換し、これは、HOSの仮想マシンによって実行するこ
とができる。逆変換プログラムは逆変換を実行し、ルー
ルの仮想マシン・イメージからそのテキストに基づく表
現を発生する。 ルールが編集されると、逆変換プログラムはその仮想
マシン・コードをソースのトークン化した表現に変換す
る。構成装置はトークン化した形態を採用してこのルー
ルのテキストに基づく表現をライン毎に構築する。これ
が編集子によってユーザに表示されるものである。ユー
ザが変更を行うと、スキャナは更新されたラインの語彙
分析を行う。語彙分析によってこれらのラインがそれら
のトークン化された形式に変換され、変換プログラム入
力される準備が整う。ユーザがルールを保存すると、変
換プログラムはこれを構文解析し、もし有効であれば、
このルールに対する仮想マシン・コードを発生する。一
度このルールをその実行可能な形式で保存すると、この
ルールのテキストは廃棄される。 第16図は、変換プログラム/逆変換プログラムシステ
ムの概略を示す。これはルール・ソース600を走査する
ことによって動作し、このコードはこれをトークン化さ
れたソース・コード601に変換する。この変換プログラ
ムは次に仮想マシン・コード602を発生する。編集を行
うためにユーザが要求すれば、この仮想マシン・コード
はトークン化されたソース・コード603に逆変換され
る。これは、ルール・ソース・コードとして構成装置に
よってユーザに戻される。
【0088】 トークン化されたソース・コードは、逆変換プログラ
ムによって構築され、論理ラインによってパラメータ化
されたTOKENSに記憶されているデータによって構成され
る。語彙分析装置を使用してこのTOKENSテーブルを変更
する。このテーブルは下記のフィールドによって構成さ
れる。 INDEX−1次キー; STRING−トークンのテキスト; TYPE−トークンの種類; LEN−トークンの文字長; DEC−トークンの10進点の右側の桁数; TABREF.MARK−このトークンがtable.field reference
の一部であるかどうか示す。 TOKENSテーブルにとって長すぎるトークンは、LONG_S
TRINGSテーブルに記憶される。これは、長さが16文字を
超えるトークン引用した列、および大きい数字を含む。
このテーブルは、下記のフィールドによって構成され
る。 INDEX−1次キー; STRING−トークンのテキスト; TYPE−トークンの種類; LEN−トークンの文字長; DEC−10進点の右側の桁数; このLONG_STRINGテーブルは、TYPEフィールド内い
「長い列」を挿入し、LENフィールドのLONG_STRINGSテ
ーブルにインデックスを挿入することによって、TOKENS
テーブル内で識別される。 第17図は、代表的なTOKENSテーブルとLONG_STRINCSテ
ーブルを示す。論理ラインは1000で示され、このライン
のトークン化された表現は表1001、1002に示される。 変換プログラムはトークン化されたルールの表現を仮
想マシン・コードに変換する。これは文脈に関係のない
構文のチェックと幾つかの文脈に関係のある構文のチェ
ックを実行する。更に、これは実行時のバインドに適し
たスレッデッド・オブジェクト・コードを発生する。
【0089】 アルゴリズムの構造は、オブジェクト指向動作システ
ムのルールで書かれる。これはトップ・ダウン再帰的降
下変換アルゴリズムを実行し、ここで言語の構文は条件
によってハード的にコード化される。この変換プログラ
ムは挿入形式のルール言語をスタック・マシンで実行す
るのに適した後置形式のオブジェクト言語に変換する。
最後に、ルールのデータに関する情報を保存する。この
変換プログラムは、上で説明したホーマットでルール・
オブジェクト・コードを発生する。変更可能なデータ領
域は、実際上実行時のみに割当あてられる。ルールは、
プログラム内でリテラル的であるかまたは変換プログラ
ムによって達成される定数、例外ハンドラの名称、ルー
ルまたはローカル変数のような大域(アンバウント)の
名称、およびテーブル・フィールドの名称を含む種々の
種類のデータを有している。変換プログラムは、CONSTA
NTS、EXCEPTIONS,SYMTAB、およびTABLE_REFSとそれぞれ
呼ふ各種類のデータ項目に対するテーブルを有してい
る。これはまたRELOCATIONとして知られるテーブルを有
し、このテーブルにより変換プログラムによって分析さ
れるべきデータ項目に対する見掛け上の参照が可能にな
る。 CONTANTテーブル下記のフィールドを有する。 INDEX_PRIMARY_KEY; STRING_TEXT OF CONSTANT; TYPE−目標の種類(常に「S」); SYNTAX−内部表示; LEN−バイト数; DEC−10進法の点の右側の桁数; REAL_ADDRESS−対数に対するオフセット; 従って、定数のオブジェクト・コード・フォーマットは
CONSTANTSテーブルから発生することが可能である。 SYMTABテーブルは、ルール内で直接的または間接的に
呼び出されるローカル変数、パラメータ、および大域ア
ンバウント名称のようなルールに関する情報を有してい
る。SYMTABテーブルのフィールドは下記を含む。 INDENT−1次キー(識別子の名前); KIND−パラメータ、局部または大域; REF−データ項目に対するオフセット(もし間接名な
ら、負); INDEX−種類内でユニーク(キー)。
【0090】 再び、オブジェクト・コード・フォーマット内のパラ
メータとローカルおよびグローバルはSYMTABテーブルか
ら発生することができる。TABLE_REFSテーブルはテーブ
ル・フィールド参照に関する情報を有する。これらのフ
ィールドは下記を含む。 INDEX−テーブルの名前(もし間接的なら、引用す
る); TABLE_NAME−テーブルの名前(もし間接的なら、引用
する); FIELD_NAME−フィールドの名前(もし間接的なら、引
用する); REAL_ADDRESS−データ項目に対するオフセット(もし
いずれかの名前が間接的なら、負)。 再び、オブジェクト・コード内のこのテーブル・フィ
ールド参照はこのテーブルから発生することができるこ
とが分かる。 RELOCATIONテーブルはデータ・オブジェクトに対する
「ダミー」リファレンスに関する情報を有している。こ
れは、データおよびオブジェクトが割り当てられてしま
うと、これらの基準を分析するのに使用される。RELOCA
TIONテーブルは下記のフィールドを有する。 OCCUR_ADDR−ダミー・リファレンスに対するオフセッ
ト; TYPE−ダミー・リファレンスの種類(定数、大域、
…); TABLE_INDEX−対応するテーブルに対するインデック
ス: OFFSET−これはオブジェクトに対するオフセットを含
む。 全てのデータ・オブジェクトが割り当てられてしまう
と、変換プログラムはRELOCATIONテーブルを検討してこ
れらのオブジェクトに対する全ての参照を分析する。 EXCEPTIONテーブルは以下のフィールドを有する。 EX_NUH−1次キー; INDEX−例外名; FORALL#−もし迄クローズ(until clause)内であれ
ばループ番号、そうでなければ、ゼロ; OFFSE−ハンドラに対するオフセット復号; TABLE NAME−オブジェクト・コード内のテーブルの名
前に対するオフセット。 例外ハンドラの名称はこのEXCEPTIONSテーブルから発
生される。もしこのハンドラが関連するテーブルの名称
を有していれば、これもまたこのテーブルから発生する
ことが可能である。
【0091】 逆変換プログラムは、仮想マシン・コードをルール言
語のトークン化された表現に変換する.このアルゴリズ
ム構造は、オブジェクト指向動作システム内のルールで
書かれる。これは後置形式のオブジェクト水準の表現を
挿入形式のルール言語に変換する。この逆変換プログラ
ムはテーブルによって駆動される。大部分のオブジェク
ト・コード構造は逆変換プログラムが参照するテーブル
内で符号化される。 逆変換プログラムは、後置から挿入への変換のために
幾つかのスタックを使用する。 この逆変換プログラムは、基本的にスタック・マシン
である。この逆変換プログラムは、後置コードを実行す
るのではなく、これをそのトークン化された表現に変換
する。各々の演算コードにより、逆変換プログラムの内
部スタックの処理が行われる。ステートメントの左側の
演算コードに到達すると、1つまたは複数のスタックの
内容がトークン・テーブルに移動される。逆変換プログ
ラムは、調和して動作し対応するテーブル内で識別され
る3つのスタックを有する。各演算コードが訪問を受け
ると、複数のオブジェクトがこのスタックに載置され
る。複数のマーカの間のスタック・エレメントは1つの
エレメントとして移動されるので、これはマークされた
スタックである。DET.STACKテーブルは下記のフィール
ドを有する。
【0092】 INDEX−1次キー; TYPE−逆変換の種類(パラメータ、定数、テーブル、
フィールド・リファレンス、…); OFFSE−静的データ領域におけるデータ項目に対する
オフセット; ITEM−シンボル・テキスト; SUBTYPE−これは変換プログラムの種類(演算子、予
約した語、…)。 次のテーブルは、DET_PRED_STテーブルとして知られ
る。このテーブルはDET.STACKの項目の優先順位を有す
る。これらのフィールドは下記を有する。 INDEX−1次キー; PRECEDENCE−項目の優先順位 最後のスタックは、DET_WORKAREAテーブル内で識別さ
れる。複数の項目がDET_STACKテーブルからこのテーブ
ルに載置される。これは後置から挿入への変換中に役立
つ。複数の項目がDET_WORKSAREAからDET_STACKに転送さ
れる。これは、DET_STACKテーブルと同じフィールドを
有する。 逆変換プログラムの1例を第T/D1〜T/D4Cに示す。こ
の逆変換プログラムに対するソースはL=1+2;であ
り、オブジェクトは1:@CONST 1、2:@CONST 2、3:@AD
D、4:@SETL Lである。 第1ステップを第18図に示す。値「1」をDET_STACK
に挿入し、ここでマーカXは境界要素を示す。DET_PRED
_STには第1データ要素の優先順位10が与えられる。DET
_WORKAREAは空である。 次のステップを第19図に示す。このステップでは、定
数値2がDET_STACKの要素として入力され、その優先順
位は値10としてDET_PRED_STに設定される。作業領域は
空のままである。次のステップでは、@ADD演算子が発
生する。このステップでは、定数2が作業領域に移動さ
れその優先順位がスタックから取り除かれる。次に
「+」演算子がワーク領域のスタックに定数2を含む要
素の一部として付加される。最後に、定数1が定数2と
「+」と同じ要素の一部としてスタックから作業領域に
移動される。これらのステップを、第20A図、第20B図、
および第20C図に示す。
【0093】 第21A図において、作業領域の内容はメイン・スタッ
クに戻される。第21B図、第21C図、第21D区および第21E
図において、TOKENSテーブルが満たされる。このこと
は、第21B図に示すように第1および第2トークンを挿
入する@SETL演算コードに応答して発生する。従って、
第1トークンに対するトークン・テーブルの領域には、
値L、識別子Iが与えられる。これは10進小数点の右側
にゼロ1を有する1の文字列である。これはテーブル・
フィールド・リファレンスの一部ではない。次のエント
リ2は同じ符号である。これは10進小数点の右側のいず
れの点も有しない1文字長の演算子であり、テーブル・
フィールド・リファレンスの一部ではない。次に、スタ
ックの内容は、これが第21C図に示すように、ルール言
語で現れると、作業領域で再び順序を定められて挿入形
式になる。最後に、第21D図に示すように、TOKENSテー
ブルのバランスが作業領域のエントリから構築される。
1は作業領域の上部から取り出されてTOKENSテーブルの
第3入力として挿入される。「+」演算子は第4入力と
して挿入される。定数2は第5入力として挿入され、ラ
インの端部である「;」は最後の入力として挿入され
る。これが発生した後、スタック、優先順位テーブルお
よび作業領域が第21E図に示すようにクリアされる。 この変換プログラム/逆変換プログラムの対によっ
て、全ての所定のプログラムの唯一のバージョンすなわ
ち表現をコンピュータ上に保持する手段が提供される。
1つのプログラムのオブジェクト・コードのバージョン
のみが2次記憶媒体に記憶される。ソース・コードのバ
ージョンは、要求があった場合にオブジェクト・コード
からの逆変換によって発生されるだけである。このオブ
ジェクト・コード・バージョンは変換プロセスを支援す
るのに必要な全ての情報を有する。これによって、プロ
グラムのソースおよびオブジェクト・バージョンを確保
するための努力を行う必要がなくなるため、メンテナン
ス費用が大幅に削減される。オブジェクト・コード・バ
ージョンのみを記憶する必要があるため、2次記憶領域
を小さくすることができる。更に、幾つかの変換プログ
ラム/逆変換プログラム対を実行することが可能であ
り、その結果、プログラムが異なった場合に同一のプロ
グラムを別のものとして表示することが可能である。こ
の技術を使用することにより、フランス語、ドイツ語ま
たは英語のような種々の異なった話し言葉、プログラム
構造の異なったグラフまたは図形による表現、麦たは、
例えば、目視可能または音のような異なった通信媒体で
ルール言葉を実行することが可能になる。 [図面の簡単な説明]
【図1】 本発明を実現するデータ処理システムの概要ブロック
線図。
【図2】 本発明による仮想データ処理マシンのブロック線図。
【図3】 本発明によるトランザクションプロセッサの概念図。
【図4】 ルール呼出しに関するトランザクションプロセッサの
動作を説明する概要図。
【図5】 ルール名ハッシング法を示す図。
【図6】 テーブル名ハッシング法を示す概要図。
【図7】 本発明による複数のサーバ及びバッファを有するテー
ブルアクセスマシンの概念図。
【図8】 テーブルアクセスマシン内の記憶装置の概念図。
【図9】 テーブル型と、所与のテーブル型に関して作動するテ
ーブルオペランドとを示すテーブル。
【図10】 CTABLEの概念図。
【図11】 ソーステーブル及びサブビューテーブルの概念図。
【図12】 インテントリストの動作を示す図。
【図13】 本発明の仮想マシンのトランザクションの概念図。
【図14】 テーブルデータ記憶装置アクセス方法の概要図。
【図15】 テーブルデータ記憶装置内のデータの頁のレイアウト
を示す図。
【図16】 本発明によるルールエディタ成分の概要図。
【図17】 ルールエディタが使用するトークン及び長い列を示す
図。
【図18】 本発明による逆翻訳プログラムの動作を示す図。
【図19】 本発明による逆翻訳プログラムの動作を示す図。
【図20A】 本発明による逆翻訳プログラムの動作を示す図。
【図20B】 本発明による逆翻訳プログラムの動作を示す図。
【図20C】 本発明による逆翻訳プログラムの動作を示す図。
【図21A】 本発明による逆翻訳プログラムの動作を示す図。
【図21B】 本発明による逆翻訳プログラムの動作を示す図。
【図21C】 本発明による逆翻訳プログラムの動作を示す図。
【図21D】 本発明による逆翻訳プログラムの動作を示す図。
【図21E】 本発明による逆翻訳プログラムの動作を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チョン ダニエル ティー カナダ オンタリオ エル4エル 7ジ ェイ6 ウッドブリッジ フランキー レーン 2 (72)発明者 ヤッフェ ジョン カナダ オンタリオ エル5エル 4エ ム2 ミシソーガ ナンバー 902 ザ カレッジウェイ 1700 (72)発明者 トーガー ジェイムズ イー カナダ オンタリオ エル5エヌ 3エ ス1 ミシソーガ ナンバー 604 グ レン エリン ドライヴ 6550 (72)発明者 ロバートソン マイケル カナダ オンタリオ エル5エヌ 3テ ィー6 ミシソーガ モンテヴィデオ ロード 715―6500 (72)発明者 プラザク ズビグニュー カナダ オンタリオ エム9ビー 5エ ム1 エトビコーク グレン エイガー 70 (56)参考文献 特開 昭63−301329(JP,A) カッツァン著,池野 監訳「FORT Hへの招待」(初版),1982年(株)近 代科学社,P92−100,117−132,152− 155 (58)調査した分野(Int.Cl.7,DB名) G06F 9/06,9/40,9/44

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】ホスト・データ処理装置でプログラムを実
    行するシステムにおいて、上記のプログラムが、ソース
    プログラムから複数の演算コード及びルール・オブジェ
    クト・コードから成るより低いレベルの言語にコンパイ
    ルされたものであり、 上記のホスト・データ処理装置が、 上記のルール・オブジェクト・コードに対する実行可能
    なオブジェクトを、上記のオブジェクトの仕様を示すメ
    タ・データと共に記憶するデータ記憶手段、 上記のプログラムを記憶するルール・ライブラリと、オ
    ブジェクト・アドレスによって識別され、上記のデータ
    記憶手段に記憶されるオブジェクトのサブセットを記憶
    するバッファとを有する実行記憶手段; 上記の実行記憶手段に接続され、上記のプログラムを実
    行する実行手段、及び 上記のデータ記憶手段および実行手段に接続され、上記
    の実行手段の命令に応答して上記のデータ記憶手段内の
    オブジェクトにアクセスするアクセス手段、によって構
    成され、 上記のルール・オブジェクト・コードは、静的データ領
    域と変更可能データ領域を有し、上記の静的データ領域
    には、上記のルール・オブジェクト・コードに対応する
    オブジェクトを記憶する上記のバッファのオブジェクト
    ・アドレスが実行時に載置されるべき上記の変更可能デ
    ータ領域内の位置に対するオフセットがあり、 上記の実行手段が、上記のプログラム中のルール・オブ
    ジェクト・コードを実行する際、 1)上記の実行手段は、バッファ内の所望のオブジェク
    ト・アドレスを指し示し、ルール・オブジェクト・コー
    ドとオブジェクトと結び付ける有効なスレッドが存在す
    るかに付いて変更可能データ領域を調べ、上記のスレッ
    ドが変更可能データ領域内で見出された場合は、そのル
    ール・オブジェクト・コードを実行し、 2)バッファの所望のオブジェクト・アドレスを指し示
    す有効な上記のスレッドが見出されない場合、上記の実
    行装置は、ハッシュ・テーブルによって、上記のルール
    ・オブジェクト・コードに対応するオブジェクトが記憶
    される上記のバッファのオブジェクト・アドレスを見出
    すことができるかを調べ、見出される場合、上記のルー
    ル・オブジェクト・コード内で識別されたオブジェクト
    を保持するバッファのオブジェクト・アドレスを上記の
    ルール・オブジェクト・コードの変更可能データ領域に
    供給して、上記のルール・オブジェクト・コードと上記
    のオブジェクトとを結び付け、そして上記のルール・オ
    ブジェクト・コードを実行し、 3)上記の実行装置が、上記のハッシュ・テーブルによ
    って上記のバッファのオブジェクト・アドレスを見出す
    ことができない場合、上記の実行手段は、上記のアクセ
    ス手段を介して、上記のデータ記憶手段内に記憶される
    オブジェクトを上記のバッファ内にロードし、ロードさ
    れたオブジェクトが記憶される上記のバッファのオブジ
    ェクト・アドレスを上記のハッシュ・テーブルに加え、
    上記のオブジェクト・アドレスを上記のルール・オブジ
    ェクト・コードの変更可能データ領域に供給して、上記
    のルール・オブジェクト・コードと上記のオブジェクト
    とを結び付け、そして上記のルール・オブジェクト・コ
    ードを実行する、ことを特徴とするプログラムを実行す
    るシステム。
  2. 【請求項2】上記のホスト・データ処理装置が、上記の
    実行手段に接続されたスタックを使用する仮想スタック
    マシンであり、上記プログラムが上記のスタックを使用
    して実行されることを特徴とする請求の範囲第1項に記
    載のシステム。
  3. 【請求項3】上記のホスト・データ処理装置はスクリー
    ンを表示し入力データを供給するための表示サブシステ
    ムを有し、上記のアクセス手段は: 上記の表示サブシステムに接続され、上記のデータ記憶
    手段のオブジェクトから上記の表示サブシステムのため
    のスクリーンを発生し、上記の表示サブシステムから入
    力データを受けて上記のルール・オブジェクト・コード
    の変更可能データ領域に供給された上記のオブジェクト
    ・アドレスでバッファ内に記憶するサーバー手段を有す
    ることを特徴とする請求の範囲第1項記載のシステム。
  4. 【請求項4】上記のホスト・データ処理装置はデータを
    記憶する記憶サブシステムを有し、上記のアクセス手段
    は: 上記の記憶サブシステムに接続され、上記のデータ記憶
    手段のオブジェクトから上記の記憶サブシステムにデー
    タを記憶し、上記の記憶サブシステムからデータを受け
    て上記のルール・オブジェクト・コードの変更可能デー
    タ領域に供給されたオブジェクト・アドレスでバッファ
    内に記憶するサーバー手段を有することを特徴とする請
    求の範囲第1項記載のシステム。
  5. 【請求項5】上記のホスト・データ処理装置は入力デー
    タを供給し出力データを受ける周辺サブシステムを有
    し、上記のアクセス手段は: 上記の周辺サブシステムに接続され、上記のデータ記憶
    手段のオブジェクトから上記の周辺サブシステムに出力
    データを供給し、上記の周辺サブシステムから入力デー
    タを受けて上記のルール・オブジェクト・コードの変更
    可能データ領域に供給されたオブジェクト・アドレスで
    バッファ内に記憶するサーバー手段を有することを特徴
    とする請求の範囲第1項記載のシステム。
JP51342090A 1989-09-01 1990-09-04 プログラムを実行するシステム Expired - Fee Related JP3478820B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US40286289A 1989-09-01 1989-09-01
US402,862 1989-09-01
US45029889A 1989-12-13 1989-12-13
US450,298 1989-12-13

Publications (2)

Publication Number Publication Date
JPH05502527A JPH05502527A (ja) 1993-04-28
JP3478820B2 true JP3478820B2 (ja) 2003-12-15

Family

ID=27018061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51342090A Expired - Fee Related JP3478820B2 (ja) 1989-09-01 1990-09-04 プログラムを実行するシステム

Country Status (9)

Country Link
US (5) US5596752A (ja)
EP (4) EP0588445B1 (ja)
JP (1) JP3478820B2 (ja)
AT (4) ATE180337T1 (ja)
AU (4) AU646408B2 (ja)
CA (4) CA2284245C (ja)
DE (4) DE69033120T2 (ja)
ES (3) ES2133145T3 (ja)
WO (1) WO1991003791A1 (ja)

Families Citing this family (289)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566330A (en) * 1991-08-20 1996-10-15 Powersoft Corporation Method for forming a reusable and modifiable database interface object
FR2681451B1 (fr) * 1991-09-13 1993-11-12 Bull Sa Procede de gestion d'objets structures.
US5666526A (en) * 1993-09-02 1997-09-09 Microsoft Corp. Method and system for supporting scrollable, updatable database queries
JPH0778742B2 (ja) * 1992-08-12 1995-08-23 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピユータ・プログラム言語変換装置及びその方法
US5963931A (en) * 1992-10-05 1999-10-05 Expert Systems Publishing Co. Computer-assisted decision management system
US5459860A (en) * 1992-10-05 1995-10-17 International Business Machines Corporation Computerized system and process for managing a distributed database system
GB9320404D0 (en) * 1993-10-04 1993-11-24 Dixon Robert Method & apparatus for data storage & retrieval
ES2149832T3 (es) * 1994-05-10 2000-11-16 Siemens Ag Sistema de administracion de datos.
SE505844C2 (sv) * 1994-09-21 1997-10-13 Qliktech International Ab Metod för extrahering av information från en databas
US5768480A (en) * 1994-10-21 1998-06-16 Lucent Technologies Inc. Integrating rules into object-oriented programming systems
JP2771951B2 (ja) * 1994-11-10 1998-07-02 インターナショナル・ビジネス・マシーンズ・コーポレイション リアクティブ・システムのためのプログラム作成装置
US5732274A (en) * 1995-11-08 1998-03-24 Electronic Data Systems Corporation Method for compilation using a database for target language independence
US6035300A (en) * 1995-12-15 2000-03-07 International Business Machines Corporation Method and apparatus for generating a user interface from the entity/attribute/relationship model of a database
US5950210A (en) * 1996-01-29 1999-09-07 Nelson; Paul M. Database row version differentiation process
US5805893A (en) * 1996-03-01 1998-09-08 Electronic Data Systems Corporation Assembly language program converter
US5815720A (en) * 1996-03-15 1998-09-29 Institute For The Development Of Emerging Architectures, L.L.C. Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system
US5857106A (en) * 1996-05-31 1999-01-05 Hewlett-Packard Company Runtime processor detection and installation of highly tuned processor specific routines
US5826031A (en) 1996-06-10 1998-10-20 Sun Microsystems, Inc. Method and system for prioritized downloading of embedded web objects
US5826250A (en) * 1996-06-19 1998-10-20 Pegasystems Inc. Rules bases and methods of access thereof
JP4533974B2 (ja) * 1996-08-01 2010-09-01 康 清木 異種データベース統合システム
US5745890A (en) * 1996-08-09 1998-04-28 Digital Equipment Corporation Sequential searching of a database index using constraints on word-location pairs
US6745194B2 (en) * 2000-08-07 2004-06-01 Alta Vista Company Technique for deleting duplicate records referenced in an index of a database
US5745894A (en) * 1996-08-09 1998-04-28 Digital Equipment Corporation Method for generating and searching a range-based index of word-locations
EP0825506B1 (en) * 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
JP3777666B2 (ja) * 1996-08-28 2006-05-24 株式会社日立製作所 データベース処理方法およびシステム
US5794048A (en) * 1996-08-29 1998-08-11 Matridigm Corporation Method for classification of year-related data fields in a program
US6226665B1 (en) * 1996-09-19 2001-05-01 Microsoft Corporation Application execution environment for a small device with partial program loading by a resident operating system
US5884304A (en) * 1996-09-20 1999-03-16 Novell, Inc. Alternate key index query apparatus and method
US5884327A (en) * 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
US5950209A (en) * 1996-10-02 1999-09-07 Alcatel Usa Sourcing, L.P. Software release control system and method
US5970247A (en) * 1996-10-07 1999-10-19 Wolf; William M. Methods for encoding decoding and processing six character date designations for the year 2000 and beyond
US5920873A (en) * 1996-12-06 1999-07-06 International Business Machines Corporation Data management control system for file and database
US5881290A (en) * 1996-12-09 1999-03-09 Allen-Bradley Company, Llc Industrial controller decompiler accommodating an expandable instruction set
US5819097A (en) * 1996-12-09 1998-10-06 Allen Bradley Company, Llc Industrial controller compiler with expandable instruction set
US5966717A (en) * 1996-12-20 1999-10-12 Apple Computer, Inc. Methods for importing data between database management programs
US6687761B1 (en) 1997-02-20 2004-02-03 Invensys Systems, Inc. Process control methods and apparatus with distributed object management
US5946484A (en) * 1997-05-08 1999-08-31 The Source Recovery Company, Llc Method of recovering source code from object code
US6025838A (en) * 1997-07-11 2000-02-15 International Business Machines Corporation Interactive display interface for media presentation with direct access to media sequences
JPH1153223A (ja) * 1997-08-01 1999-02-26 Sony Corp データ処理方法、記録媒体及び電子機器
US6728699B1 (en) * 1997-09-23 2004-04-27 Unisys Corporation Method and apparatus for using prior results when processing successive database requests
US6144965A (en) * 1997-09-24 2000-11-07 Sony Corporation Performing memory management in an object-oriented programming environment
JPH11112652A (ja) 1997-09-29 1999-04-23 Sony Corp 留守番機能付き電話装置
US6006232A (en) * 1997-10-21 1999-12-21 At&T Corp. System and method for multirecord compression in a relational database
US6134558A (en) * 1997-10-31 2000-10-17 Oracle Corporation References that indicate where global database objects reside
US6108664A (en) * 1997-10-31 2000-08-22 Oracle Corporation Object views for relational data
US6134544A (en) * 1997-11-21 2000-10-17 Telefonaktiebolaget Lm Ericsson (Publ) Query supporting interface between a customer administrative system and database network elements in a telecommunications system
US6003025A (en) * 1997-11-24 1999-12-14 International Business Machines Corporation Data transformer system for accessing database information
US6108670A (en) * 1997-11-24 2000-08-22 International Business Machines Corporation Checking and enabling database updates with a dynamic, multi-modal, rule based system
US5946681A (en) * 1997-11-28 1999-08-31 International Business Machines Corporation Method of determining the unique ID of an object through analysis of attributes related to the object
US6195795B1 (en) 1997-12-19 2001-02-27 Alcatel Usa Sourcing, L.P. Apparatus and method for automatic software release notification
US6002874A (en) * 1997-12-22 1999-12-14 International Business Machines Corporation Method and system for translating goto-oriented procedural languages into goto-free object oriented languages
US7391698B2 (en) * 1998-07-23 2008-06-24 Samsung Electronics Co., Ltd. Adaptive writing method for high-density optical recording apparatus and circuit thereof
US6260047B1 (en) * 1998-01-02 2001-07-10 Maxagrid International, Inc. Inventory management system
US6889358B1 (en) * 1998-01-08 2005-05-03 Lucent Technologies Inc. Concurrency control in materialized views of a database
CN1087454C (zh) * 1998-02-27 2002-07-10 英业达股份有限公司 WinCE作业环境下的数据结构处理方法
US6145120A (en) * 1998-03-24 2000-11-07 Lockheed Martin Corporation Declaration programming language extension for procedural programming languages
US6085188A (en) * 1998-03-30 2000-07-04 International Business Machines Corporation Method of hierarchical LDAP searching with relational tables
US6233586B1 (en) 1998-04-01 2001-05-15 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated query object
US6263342B1 (en) 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6272488B1 (en) 1998-04-01 2001-08-07 International Business Machines Corporation Managing results of federated searches across heterogeneous datastores with a federated collection object
US6167402A (en) * 1998-04-27 2000-12-26 Sun Microsystems, Inc. High performance message store
US6539398B1 (en) 1998-04-30 2003-03-25 International Business Machines Corporation Object-oriented programming model for accessing both relational and hierarchical databases from an objects framework
US6539397B1 (en) 2000-03-31 2003-03-25 International Business Machines Corporation Object-oriented paradigm for accessing system service requests by modeling system service calls into an object framework
US7171426B2 (en) * 1998-05-12 2007-01-30 Shell Oil Company Hazard communication system
US6691183B1 (en) 1998-05-20 2004-02-10 Invensys Systems, Inc. Second transfer logic causing a first transfer logic to check a data ready bit prior to each of multibit transfer of a continous transfer operation
US6112300A (en) * 1998-06-03 2000-08-29 International Business Machines Corporation Method and apparatus for performing multi-way branching using a hardware relational table
US6253194B1 (en) * 1998-06-16 2001-06-26 Microsoft Corporation System and method for performing database queries using a stack machine
US6112209A (en) * 1998-06-17 2000-08-29 Gusack; Mark David Associative database model for electronic-based informational assemblies
US6308166B1 (en) * 1998-08-20 2001-10-23 Sap Aktiengesellschaft Methodology for advanced quantity-oriented cost assignment using various information sources
US6253187B1 (en) * 1998-08-31 2001-06-26 Maxagrid International, Inc. Integrated inventory management system
US6338067B1 (en) 1998-09-01 2002-01-08 Sector Data, Llc. Product/service hierarchy database for market competition and investment analysis
AU6421399A (en) 1998-10-09 2000-05-01 Microwave Science, Llc Interpretive language architecture for controlling the attributes of a physical,chemical, or thermodynamic process
US6401089B2 (en) * 1998-10-27 2002-06-04 Computer Associates Think, Inc. Method for maintaining exception tables for a check utility
US6339839B1 (en) 1998-11-12 2002-01-15 International Business Machines Corporation Enabling multiple code generators in a translator-based embedded scripting system
US6292936B1 (en) 1998-11-12 2001-09-18 International Business Machines Corporation Enabling multiple runtime processors in an interpreter-based embedded scripting system
US6237003B1 (en) * 1998-11-30 2001-05-22 Platinum Technology Ip, Inc. Method and apparatus for supporting dynamic run-time object definition in a relational database management system
US6920464B2 (en) 1998-12-03 2005-07-19 Grantley Patent Holdings, Ltd. System for generating an advertising revenue projection
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6338160B1 (en) * 1998-12-08 2002-01-08 Nazomi Communications, Inc. Constant pool reference resolution method
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US6281892B1 (en) * 1998-12-16 2001-08-28 Alcatel Usa Sourcing, L.P. System and method of table-driven computer interface
US6334122B1 (en) * 1998-12-23 2001-12-25 Advanced Micro Devices, Inc. Method and apparatus for translating variable names to column names for accessing a database
US6848111B1 (en) * 1999-02-02 2005-01-25 Sun Microsystems, Inc. Zero overhead exception handling
US6308168B1 (en) 1999-02-09 2001-10-23 Knowledge Discovery One, Inc. Metadata-driven data presentation module for database system
US6714928B1 (en) 1999-03-19 2004-03-30 Sybase, Inc. Development system providing HTML database control object
US6457014B1 (en) * 1999-03-26 2002-09-24 Computer Associates Think, Inc. System and method for extracting index key data fields
US6463440B1 (en) 1999-04-08 2002-10-08 International Business Machines Corporation Retrieval of style sheets from directories based upon partial characteristic matching
US6589291B1 (en) 1999-04-08 2003-07-08 International Business Machines Corporation Dynamically determining the most appropriate location for style sheet application
US6622300B1 (en) 1999-04-21 2003-09-16 Hewlett-Packard Development Company, L.P. Dynamic optimization of computer programs using code-rewriting kernal module
US6938041B1 (en) 1999-04-30 2005-08-30 Sybase, Inc. Java-based data access object
AU5273100A (en) * 1999-05-17 2000-12-05 Foxboro Company, The Methods and apparatus for control configuration with versioning, security, composite blocks, edit selection, object swapping, formulaic values and other aspects
US6754885B1 (en) 1999-05-17 2004-06-22 Invensys Systems, Inc. Methods and apparatus for controlling object appearance in a process control configuration system
US7089530B1 (en) * 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6501995B1 (en) 1999-06-30 2002-12-31 The Foxboro Company Process control system and method with improved distribution, installation and validation of components
US6393606B1 (en) * 1999-06-25 2002-05-21 Agilent Technologies, Inc. Inverse assembler
US6952741B1 (en) * 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6453313B1 (en) 1999-07-06 2002-09-17 Compaq Information Technologies Group, L.P. Database management system and method for dequeuing rows published to a database table
US6339772B1 (en) 1999-07-06 2002-01-15 Compaq Computer Corporation System and method for performing database operations on a continuous stream of tuples
US6304873B1 (en) * 1999-07-06 2001-10-16 Compaq Computer Corporation System and method for performing database operations and for skipping over tuples locked in an incompatible mode
US6510352B1 (en) 1999-07-29 2003-01-21 The Foxboro Company Methods and apparatus for object-based process control
CA2279222C (en) * 1999-07-30 2002-07-16 Ibm Canada Limited-Ibm Canada Limitee Direct call threaded code
US6578194B1 (en) * 1999-09-08 2003-06-10 International Business Machines Corporation System and method using extended relocation types and operations in relocating operations
US7120638B1 (en) * 1999-09-21 2006-10-10 International Business Machines Corporation Method, system, program, and data structure for cleaning a database table
US6965888B1 (en) * 1999-09-21 2005-11-15 International Business Machines Corporation Method, system, program, and data structure for cleaning a database table using a look-up table
JP4462676B2 (ja) * 1999-10-27 2010-05-12 富士通株式会社 プログラム変換装置、コンパイラ装置およびプログラム変換プログラムを記録したコンピュータ読み取り可能な記録媒体
US7546304B1 (en) * 1999-10-29 2009-06-09 Computer Sciences Corporation Configuring keys for use in processing business data
US7693844B1 (en) 1999-10-29 2010-04-06 Computer Sciences Corporation Configuring processing relationships among entities of an organization
CA2327222A1 (en) * 1999-12-03 2001-06-03 Research In Motion Limited Virtual machine web browser
US6473660B1 (en) 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US7133873B1 (en) * 1999-12-14 2006-11-07 United Parcel Service Of America, Inc. System and method for modifying output of computer program without source code modifications
US6546394B1 (en) * 1999-12-28 2003-04-08 Oracle International Corporation Database system having logical row identifiers
US6393424B1 (en) * 1999-12-29 2002-05-21 Networks Associates, Inc. Method and apparatus for using a static metadata object to reduce database accesses
US6779128B1 (en) 2000-02-18 2004-08-17 Invensys Systems, Inc. Fault-tolerant data transfer
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US7334216B2 (en) * 2000-04-04 2008-02-19 Sosy, Inc. Method and apparatus for automatic generation of information system user interfaces
US6675163B1 (en) * 2000-04-06 2004-01-06 International Business Machines Corporation Full match (FM) search algorithm implementation for a network processor
KR20010110097A (ko) * 2000-06-03 2001-12-12 포만 제프리 엘 작업흐름-관리-시스템에서의 보관 방법
JP2002007169A (ja) * 2000-06-23 2002-01-11 Nec Corp 文法網羅率計測方式
US8688474B2 (en) * 2000-06-26 2014-04-01 Epic Systems Corporation Patient health record access system
US6934696B1 (en) 2000-09-15 2005-08-23 Bently Nevada, Llc Custom rule system and method for expert systems
US8050944B2 (en) * 2000-09-20 2011-11-01 Epic Systems Corporation Intelligent patient visit information management and navigation system
US7251610B2 (en) * 2000-09-20 2007-07-31 Epic Systems Corporation Clinical documentation system for use by multiple caregivers
EP1197847A3 (en) * 2000-10-10 2003-05-21 Nazomi Communications Inc. Java hardware accelerator using microcode engine
DE10052408B4 (de) * 2000-10-23 2005-03-31 British American Tobacco (Germany) Gmbh Verfahren und Vorrichtung zur Zuführung Flavour zum Tabak eines Rauchartikels
US20020055918A1 (en) * 2000-11-08 2002-05-09 Patrick Hlathein Operating room resource management system incorporating an interactive, visual method for coordinating multiple, interdependent
US8312429B2 (en) * 2000-11-10 2012-11-13 Oracle International Corporation Cell based data processing
US6941291B1 (en) * 2000-12-07 2005-09-06 Cisco Technology, Inc. Method and device for a user profile repository
US6647386B2 (en) * 2000-12-14 2003-11-11 International Business Machines Corporation Method, system, and program for reverse index scanning
US7275220B2 (en) * 2000-12-22 2007-09-25 Epic Systems Corporation System and method for a seamless user interface for an integrated electronic health care information system
US6983423B2 (en) * 2000-12-22 2006-01-03 Epic Systems Corporation Electronic system for collecting and communicating clinical order information in an acute care setting
US6629098B2 (en) * 2001-01-16 2003-09-30 Hewlett-Packard Development Company, L.P. Method and system for validating data submitted to a database application
US7047420B2 (en) * 2001-01-17 2006-05-16 Microsoft Corporation Exclusive encryption
US20020099834A1 (en) * 2001-01-19 2002-07-25 Neoplanet, Inc. Rules-based decision engine
WO2002059779A1 (en) * 2001-01-25 2002-08-01 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for optimised indexing records of static data with different lenghts
US6738779B1 (en) 2001-02-21 2004-05-18 Telecom Italia S.P.A. Apparatus for and method of multiple parallel string searching
US6907435B2 (en) * 2001-02-27 2005-06-14 Microsoft Corporation Converting numeric values to strings for optimized database storage
US7043637B2 (en) 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system
US20020138636A1 (en) * 2001-03-23 2002-09-26 Mark Buttner Method for automatically mass generating personalized data report outputs
US6981138B2 (en) 2001-03-26 2005-12-27 Microsoft Corporation Encrypted key cache
US7062490B2 (en) * 2001-03-26 2006-06-13 Microsoft Corporation Serverless distributed file system
US7231417B2 (en) * 2001-04-25 2007-06-12 Sun Microsystems, Inc. Assessment engine
US20020165898A1 (en) * 2001-05-03 2002-11-07 Joe Duffy Recipient-determined method for sharing tasks in an advanced electronic messaging/workflow system
BR0209497A (pt) * 2001-05-11 2005-08-30 Computer Ass Think Inc Método e sistema para a transformação de aplicações de software de legado em sistemas modernos orientados a objetos
FI111107B (fi) * 2001-05-15 2003-05-30 Softageneraattori Oy Menetelmä translaattorin kehittämiseksi ja vastaava järjestelmä
US6988124B2 (en) 2001-06-06 2006-01-17 Microsoft Corporation Locating potentially identical objects across multiple computers based on stochastic partitioning of workload
US6981250B1 (en) * 2001-07-05 2005-12-27 Microsoft Corporation System and methods for providing versioning of software components in a computer programming language
US8001523B1 (en) 2001-07-05 2011-08-16 Microsoft Corporation System and methods for implementing an explicit interface member in a computer programming language
US7904454B2 (en) * 2001-07-16 2011-03-08 International Business Machines Corporation Database access security
US6751627B2 (en) * 2001-07-23 2004-06-15 Networks Associates Technology, Inc. Method and apparatus to facilitate accessing data in network management protocol tables
US20030061073A1 (en) * 2001-08-01 2003-03-27 Khiang Seow Method and system for displaying patient information
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US7158994B1 (en) 2001-09-28 2007-01-02 Oracle International Corporation Object-oriented materialized views
US7024658B1 (en) * 2001-09-28 2006-04-04 Adobe Systems Incorporated Extensible help facility for a computer software application
US7480854B2 (en) * 2001-10-02 2009-01-20 International Business Machines Corporation Data conversion system and method
CA2359277A1 (en) * 2001-10-18 2003-04-18 Ibm Canada Limited-Ibm Canada Limitee Slow materialization of scrollable cursor result sets
AU2002210810A1 (en) * 2001-10-22 2003-05-06 Sun Microsystems, Inc. Inter-process communication using different programming languages
US8156471B2 (en) * 2001-11-09 2012-04-10 Oracle International Corporation Multi-language execution method
US20030154110A1 (en) * 2001-11-20 2003-08-14 Ervin Walter Method and apparatus for wireless access to a health care information system
US20030130872A1 (en) * 2001-11-27 2003-07-10 Carl Dvorak Methods and apparatus for managing and using inpatient healthcare information
US7386492B2 (en) * 2002-01-15 2008-06-10 Clear Channel Communications, Inc. Inventory and revenue maximization method and system
US7240331B2 (en) * 2002-01-16 2007-07-03 Xerox Corporation Bi-valuation of programming statements
WO2003065240A1 (en) * 2002-02-01 2003-08-07 John Fairweather System and method for managing collections of data on a network
US7111020B1 (en) * 2002-03-26 2006-09-19 Oracle International Corporation Incremental refresh of materialized views containing rank function, and rewrite of queries containing rank or rownumber or min/max aggregate functions using such a materialized view
US20030187755A1 (en) * 2002-04-01 2003-10-02 Kamal Acharya Method and system for providing portable shopping information
AU2003234106A1 (en) * 2002-04-15 2003-11-03 Invensys Systems, Inc. Methods and apparatus for process, factory-floor, environmental, computer aided manufacturing-based or other control system with real-time data distribution
US20030220816A1 (en) * 2002-04-30 2003-11-27 Andy Giesler System and method for managing interactions between machine-generated and user-defined patient lists
US20030220821A1 (en) * 2002-04-30 2003-11-27 Ervin Walter System and method for managing and reconciling asynchronous patient data
US20030220817A1 (en) * 2002-05-15 2003-11-27 Steve Larsen System and method of formulating appropriate subsets of information from a patient's computer-based medical record for release to various requesting entities
US20040010422A1 (en) * 2002-05-20 2004-01-15 Cliff Michalski Method and apparatus for batch-processed invoicing
US20040010465A1 (en) * 2002-05-20 2004-01-15 Cliff Michalski Method and apparatus for exception based payment posting
JP2004062227A (ja) * 2002-07-24 2004-02-26 Casio Comput Co Ltd 電子辞書端末、辞書システムサーバ、および端末処理プログラム、サーバ処理プログラム
US7979294B2 (en) * 2002-07-31 2011-07-12 Epic Systems Corporation System and method for providing decision support to appointment schedulers in a healthcare setting
US6952690B2 (en) * 2002-08-22 2005-10-04 International Business Machines Corporation Loop detection in rule-based expert systems
US7228529B2 (en) * 2002-08-27 2007-06-05 International Business Machines Corporation Restructuring computer programs
US7047254B2 (en) * 2002-10-31 2006-05-16 Hewlett-Packard Development Company, L.P. Method and apparatus for providing aggregate object identifiers
US7761346B2 (en) * 2002-11-07 2010-07-20 Agentsmith, Inc. System, method and computer program product for providing a multidimensional inventory management system
US8321235B2 (en) * 2002-11-27 2012-11-27 Hewlett-Packard Development Company, L.P. Validating an electronic transaction
US7065745B2 (en) * 2002-12-16 2006-06-20 Sun Microsystems, Inc. System and method for evaluating and executing hierarchies of rules
US7103588B2 (en) * 2003-05-05 2006-09-05 International Business Machines Corporation Range-clustered tables in a database management system
US6976144B1 (en) * 2003-05-06 2005-12-13 Pegasystems, Inc. Methods and apparatus for digital data processing with mutable inheritance
US7340480B2 (en) * 2003-05-08 2008-03-04 International Business Machines Corporation Iterative data analysis enabled through query result abstraction
US7251650B2 (en) * 2003-08-25 2007-07-31 International Business Machines Corporation Method, system, and article of manufacture for processing updates to insert operations
CN100338571C (zh) * 2003-09-27 2007-09-19 英特尔公司 处理器的扩展寄存器空间装置和方法
US20050071195A1 (en) * 2003-09-30 2005-03-31 Cassel David A. System and method of synchronizing data sets across distributed systems
US8825502B2 (en) * 2003-09-30 2014-09-02 Epic Systems Corporation System and method for providing patient record synchronization in a healthcare setting
US20050132340A1 (en) * 2003-12-15 2005-06-16 International Business Machines Corporation System and method for selection of translation routine for versioned data
EP1723583A2 (en) * 2004-02-04 2006-11-22 Sap Ag Method, system and software application for real time accounting data processing
US20060080140A1 (en) * 2004-02-09 2006-04-13 Epic Systems Corporation System and method for providing a clinical summary of patient information in various health care settings
US7761923B2 (en) * 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7376912B2 (en) * 2004-03-25 2008-05-20 Morgan Stanley Interactive user interface for displaying supply chain information
US7695590B2 (en) 2004-03-26 2010-04-13 Applied Materials, Inc. Chemical vapor deposition plasma reactor having plural ion shower grids
US7500221B2 (en) * 2004-04-08 2009-03-03 Sap Ag Filter-based comments in source code
US8478742B2 (en) * 2004-04-14 2013-07-02 Oracle Corporation Using estimated cost to refresh a set of materialized views (MVS)
US7734602B2 (en) 2004-04-14 2010-06-08 Oracle International Corporation Choosing whether to use a delayed index maintenance depending on the portion of the materialized view (MV) changed
US7890497B2 (en) 2004-04-14 2011-02-15 Oracle International Corporation Using estimated cost to schedule an order for refreshing a set of materialized views (MVS)
US20050234741A1 (en) * 2004-04-16 2005-10-20 Sumit Rana Electronic appointment scheduling for medical resources
US7721271B2 (en) * 2004-04-22 2010-05-18 Microsoft Corporation Language localization and intercepting data using translation tables
US8428968B2 (en) * 2004-05-10 2013-04-23 Epic Systems Corporation Interactive system for patient access to electronic medical records
AU2005243114B2 (en) * 2004-05-13 2011-02-24 Robert John Rogers A system and method for retrieving information and a system and method for storing information
US20050262032A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Portal rules engine enhancements
US7665063B1 (en) 2004-05-26 2010-02-16 Pegasystems, Inc. Integration of declarative rule-based processing with procedural programming
US20060004605A1 (en) * 2004-06-21 2006-01-05 Epic Systems Corporation System and method for a comprehensive interactive graphical representation of a health care facility for managing patient care and health care facility resources
US20050283387A1 (en) * 2004-06-21 2005-12-22 Epic Systems Corporation System for providing an interactive anatomical graphical representation of a body for use in a health care environment
JP4901731B2 (ja) * 2004-07-08 2012-03-21 マイクロソフト コーポレーション コンテンツ生成用の自動画像キャプチャ
US20060047554A1 (en) * 2004-08-24 2006-03-02 Steven Larsen Rules based resource scheduling
US8725547B2 (en) * 2004-08-24 2014-05-13 Epic Systems Corporation Utilization indicating schedule scanner
US20060053034A1 (en) * 2004-09-08 2006-03-09 Epic Systems Corporation System and method for providing a real-time status for managing encounters in health care settings
US7503040B2 (en) * 2004-09-30 2009-03-10 International Business Machines Corporation Configuring a shared library to accommodate relocatable data in a pervasive device
US20060085381A1 (en) * 2004-10-20 2006-04-20 Epic Systems Corporation Remote deployment access system and method
US20060117021A1 (en) * 2004-11-29 2006-06-01 Epic Systems Corporation Shared account information method and apparatus
US7580922B2 (en) * 2005-01-04 2009-08-25 International Business Machines Corporation Methods for relating data in healthcare databases
US8140370B2 (en) * 2005-01-20 2012-03-20 Epic Systems Corporation System and method for reducing the steps involved in searching for available appointment times and scheduling appointments in a health care environment
US8335704B2 (en) * 2005-01-28 2012-12-18 Pegasystems Inc. Methods and apparatus for work management and routing
CN100383787C (zh) * 2005-03-17 2008-04-23 华为技术有限公司 一种数据库多表信息初始化方法
US7565217B2 (en) * 2005-04-01 2009-07-21 International Business Machines Corporation Traversal of empty regions in a searchable data structure
US20060277525A1 (en) * 2005-06-06 2006-12-07 Microsoft Corporation Lexical, grammatical, and semantic inference mechanisms
US7970788B2 (en) * 2005-08-02 2011-06-28 International Business Machines Corporation Selective local database access restriction
US7797359B1 (en) 2005-08-23 2010-09-14 Hewlett-Packard Development Company, L.P. Recursive data naming
US7739696B2 (en) * 2005-09-08 2010-06-15 Honeywell International Inc. Message translation systems and methods
US7590940B2 (en) 2005-10-11 2009-09-15 Morgan Stanley Interactive user interface for displaying correlation
US7917856B2 (en) * 2005-10-24 2011-03-29 Sap Ag Converting between user interface technologies
US7933923B2 (en) 2005-11-04 2011-04-26 International Business Machines Corporation Tracking and reconciling database commands
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US20080208785A1 (en) * 2006-03-30 2008-08-28 Pegasystems, Inc. User interface methods and apparatus for rules processing
US20090132232A1 (en) * 2006-03-30 2009-05-21 Pegasystems Inc. Methods and apparatus for implementing multilingual software applications
US20070233902A1 (en) * 2006-03-30 2007-10-04 Alan Trefler User interface methods and apparatus for rules processing
WO2007123753A2 (en) 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
US8676785B2 (en) * 2006-04-06 2014-03-18 Teradata Us, Inc. Translator of statistical language programs into SQL
US7774746B2 (en) * 2006-04-19 2010-08-10 Apple, Inc. Generating a format translator
US7634486B2 (en) * 2006-06-29 2009-12-15 Microsoft Corporation Systems management navigation and focus collection
US8661425B1 (en) * 2006-07-28 2014-02-25 American Megatrends, Inc. Method, apparatus, and computer-readable medium for storing data associated with a firmware program
US7801856B2 (en) * 2006-08-09 2010-09-21 Oracle International Corporation Using XML for flexible replication of complex types
TWI320913B (en) * 2006-08-30 2010-02-21 Via Tech Inc Methods, systems and computer-readable storage medium for shading process compiling of 3d computer graphics
JP5042315B2 (ja) * 2006-10-19 2012-10-03 チェックマークス リミテッド ソースコード内のセキュリティ脆弱性の検出
US8141100B2 (en) 2006-12-20 2012-03-20 International Business Machines Corporation Identifying attribute propagation for multi-tier processing
CA2578980A1 (en) 2007-02-19 2008-08-19 Cognos Incorporated System and method of report rendering
CA2578979A1 (en) * 2007-02-19 2008-08-19 Cognos Incorporated System and method of report representation
US8495367B2 (en) 2007-02-22 2013-07-23 International Business Machines Corporation Nondestructive interception of secure data in transit
US8250525B2 (en) 2007-03-02 2012-08-21 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US20080250032A1 (en) * 2007-04-04 2008-10-09 International Business Machines Corporation Method and system for efficiently saving and retrieving values of a large number of resource variables using a small repository
US8538013B2 (en) * 2007-10-19 2013-09-17 International Business Machines Corporation Rules-driven hash building
US20090182689A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Rule-based dynamic operation evaluation
US8627299B2 (en) 2008-02-29 2014-01-07 International Business Machines Corporation Virtual machine and programming language for event processing
US8365149B2 (en) * 2008-02-29 2013-01-29 International Business Machines Corporation Debugger for a declarative event-driven programming model
US8397216B2 (en) * 2008-02-29 2013-03-12 International Business Machines Corporation Compiler for a declarative event-driven programming model
US8219966B2 (en) * 2008-03-26 2012-07-10 Sap Ag Method and system for integrating an application floorplan and an external service
US8261326B2 (en) 2008-04-25 2012-09-04 International Business Machines Corporation Network intrusion blocking security overlay
EP2304536A4 (en) 2008-06-20 2012-08-15 Invensys Sys Inc SYSTEMS AND METHOD FOR IMMERSIBLE INTERACTION WITH ACTUAL AND / OR SIMULATED DEVICES FOR PROCESS, ENVIRONMENTAL AND INDUSTRIAL CONTROL
DE112009001892T5 (de) * 2008-07-31 2011-07-21 Dustin Kurt Calif. Adler Datensatz basierte Codestruktur
US8171045B2 (en) * 2008-07-31 2012-05-01 Xsevo Systems, Inc. Record based code structure
US7979450B2 (en) * 2008-09-15 2011-07-12 Xsevo Systems, Inc. Instance management of code in a database
US8875055B1 (en) * 2008-11-28 2014-10-28 Google Inc. Interface for creating and viewing medical decision support rules
US8843435B1 (en) 2009-03-12 2014-09-23 Pegasystems Inc. Techniques for dynamic data processing
US8468492B1 (en) 2009-03-30 2013-06-18 Pegasystems, Inc. System and method for creation and modification of software applications
US8463964B2 (en) * 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) * 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
CA2675680C (en) * 2009-08-27 2013-05-14 Ibm Canada Limited - Ibm Canada Limitee Generating object code that uses calculated contents for a variable determined from a predicate
US8768947B2 (en) * 2009-12-22 2014-07-01 At&T Global Network Services Deutschland Gmbh System and method for implementing unique primary keys across enterprise databases
CA2691851A1 (en) * 2010-02-04 2011-08-04 Ibm Canada Limited - Ibm Canada Limitee Control flow analysis using deductive reaching definitions
US8689175B2 (en) * 2010-03-03 2014-04-01 Ebay Inc. Business rules management system
US9176490B2 (en) * 2010-08-16 2015-11-03 Mitsubishi Electric Corporation Control program generation device, control program generation program, and control program generation method
US9141806B2 (en) 2010-08-24 2015-09-22 Checkmarx Ltd. Mining source code for violations of programming rules
US9002876B2 (en) * 2010-12-02 2015-04-07 Sap Se Interpreted computer language to analyze business object data with defined relations
US20120180033A1 (en) * 2011-01-12 2012-07-12 David Amos Brown System and Methodology for Autonomous, Value-Centric, Architectural, Software Programming
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
WO2013019996A1 (en) * 2011-08-02 2013-02-07 Cavium, Inc. Lookup front end input processor
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US20130262150A1 (en) * 2012-03-30 2013-10-03 Mckesson Financial Holdings Data-driven concepts for processing claims
US20130262149A1 (en) * 2012-03-30 2013-10-03 Mckesson Financial Holdings Data-driven concepts for processing claims
US9424257B1 (en) * 2012-08-31 2016-08-23 Keysight Technologies, Inc. Compiler and operating system adapted for generating programs for decoding communication packets utilizing a protocol stack
US9141383B2 (en) * 2013-08-09 2015-09-22 Oracle International Corporation Subprocess definition and visualization in BPEL
US9544402B2 (en) 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US9667446B2 (en) 2014-01-08 2017-05-30 Cavium, Inc. Condition code approach for comparing rule and packet data that are provided in portions
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US10235780B2 (en) * 2015-12-18 2019-03-19 Dropbox, Inc. Integrated data exploration, modeling and visualization
US20170286140A1 (en) * 2016-03-31 2017-10-05 Ca, Inc. Java-based offload service in a mainframe environment
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US10664463B2 (en) * 2016-12-30 2020-05-26 Dropbox, Inc. Event context enrichment
EP3401827A1 (en) 2017-05-10 2018-11-14 Checkmarx Ltd. Method and system of static and dynamic data flow analysis
US10990594B2 (en) * 2018-05-04 2021-04-27 Oracle International Corporation Method for fast and consistent invocation of concurrently modifiable user-defined functions
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US20200167668A1 (en) * 2018-11-27 2020-05-28 Sap Se Dynamic rule execution order
US11240024B2 (en) * 2019-07-29 2022-02-01 EMC IP Holding Company LLC Cryptographic key management using key proxies and generational indexes
US11294894B2 (en) 2019-08-30 2022-04-05 Oracle International Corporation Dynamic resolution of dependencies for database guest languages
US11836258B2 (en) 2020-07-28 2023-12-05 Checkmarx Ltd. Detecting exploitable paths in application software that uses third-party libraries
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods
US11418331B1 (en) 2021-02-25 2022-08-16 EMC IP Holding Company LLC Importing cryptographic keys into key vaults

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099230A (en) * 1975-08-04 1978-07-04 California Institute Of Technology High level control processor
GB2126761B (en) * 1982-09-13 1987-07-08 Tektronix Inc Inverse assembler
JPH0640302B2 (ja) * 1984-01-30 1994-05-25 株式会社日立製作所 図式・ソ−スプログラム自動生成方法
AU591057B2 (en) * 1984-06-01 1989-11-30 Digital Equipment Corporation Local area network for digital data processing system
US4667290A (en) * 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
US4816994A (en) * 1984-12-04 1989-03-28 Tektronix, Inc. Rule acquisition for expert systems
US4905138A (en) * 1985-10-17 1990-02-27 Westinghouse Electric Corp. Meta-interpreter
US4787035A (en) * 1985-10-17 1988-11-22 Westinghouse Electric Corp. Meta-interpreter
JPS62128332A (ja) * 1985-11-30 1987-06-10 Toshiba Corp デ−タ処理装置
GB8602964D0 (en) * 1986-02-06 1986-03-12 Metaforth Computer Systems Ltd Computer architecture
EP0243110A3 (en) * 1986-04-21 1991-05-29 Texas Instruments Incorporated Computer system having source code re-creation capability
US4918593A (en) * 1987-01-08 1990-04-17 Wang Laboratories, Inc. Relational database system
US4860204A (en) * 1987-02-05 1989-08-22 Softron, Inc. Computer based workstation for development of graphic representation of computer programs
US4791561A (en) * 1987-04-17 1988-12-13 Wang Laboratories, Inc. Interactive construction of means for database maintenance
US4884217A (en) * 1987-09-30 1989-11-28 E. I. Du Pont De Nemours And Company Expert system with three classes of rules
US5287548A (en) * 1988-02-29 1994-02-15 Allen-Bradley Company, Inc. Programmable controller having a stored program with both machine language instructions and source code data
US5228116A (en) * 1988-07-15 1993-07-13 Aicorp., Inc. Knowledge base management system
EP0360387B1 (en) * 1988-09-23 1996-05-08 International Business Machines Corporation Data base management system
US4989132A (en) * 1988-10-24 1991-01-29 Eastman Kodak Company Object-oriented, logic, and database programming tool with garbage collection
US4931928A (en) * 1988-11-09 1990-06-05 Greenfeld Norton R Apparatus for analyzing source code
US5005152A (en) * 1989-04-05 1991-04-02 Allen-Bradley Company Industrial controller with decompilable user program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
カッツァン著,池野 監訳「FORTHへの招待」(初版),1982年(株)近代科学社,P92−100,117−132,152−155

Also Published As

Publication number Publication date
CA2284245A1 (en) 1991-03-02
AU673682B2 (en) 1996-11-21
AU646408B2 (en) 1994-02-24
CA2284247A1 (en) 1991-03-02
ATE155263T1 (de) 1997-07-15
EP0588445B1 (en) 1999-05-19
EP0588447B1 (en) 1999-05-19
EP0588446A2 (en) 1994-03-23
DE69033120D1 (de) 1999-06-24
DE69031040D1 (de) 1997-08-14
ES2133145T3 (es) 1999-09-01
ATE182014T1 (de) 1999-07-15
EP0489861B1 (en) 1997-07-09
DE69033120T2 (de) 1999-10-21
JPH05502527A (ja) 1993-04-28
DE69033203D1 (de) 1999-08-12
EP0588446B1 (en) 1999-07-07
US5586330A (en) 1996-12-17
EP0588447A2 (en) 1994-03-23
AU4608393A (en) 1993-12-16
AU671138B2 (en) 1996-08-15
CA2284248A1 (en) 1991-03-02
US5584026A (en) 1996-12-10
EP0588446A3 (en) 1995-11-15
CA2284250A1 (en) 1991-03-02
US5596752A (en) 1997-01-21
DE69033121D1 (de) 1999-06-24
US5586329A (en) 1996-12-17
ES2132176T3 (es) 1999-08-16
CA2284250C (en) 2001-12-04
EP0588445A3 (en) 1994-05-04
AU4608293A (en) 1993-12-23
ATE180336T1 (de) 1999-06-15
EP0489861A1 (en) 1992-06-17
EP0588447A3 (en) 1996-04-17
AU6429390A (en) 1991-04-08
US5594899A (en) 1997-01-14
EP0489861A4 (en) 1993-08-04
CA2284248C (en) 2001-12-04
ES2132175T3 (es) 1999-08-16
AU4608493A (en) 1993-12-16
EP0588445A2 (en) 1994-03-23
CA2284247C (en) 2005-12-06
WO1991003791A1 (en) 1991-03-21
DE69033121T2 (de) 1999-10-28
ATE180337T1 (de) 1999-06-15
AU671137B2 (en) 1996-08-15
CA2284245C (en) 2001-02-06
DE69033203T2 (de) 1999-11-04

Similar Documents

Publication Publication Date Title
JP3478820B2 (ja) プログラムを実行するシステム
US5682535A (en) Operating system and data base using table access method with dynamic binding
US4931928A (en) Apparatus for analyzing source code
US6556986B2 (en) Database management method of invoking a function retrieving index type definition, cataloging particular index which has not yet been supported by a database system
US5432930A (en) System for accessing cobol data files by generating a dictionary of NF.sup.2
US20030221162A1 (en) Meta-templates in website development and methods therefor
Katz et al. Decompiling CODASYL DML into retional queries
US6353819B1 (en) Method and system for using dynamically generated code to perform record management layer functions in a relational database manager
Benson et al. The design and implementation of a hierarchical interface for the multi-lingual database system
Schmidt et al. DBPL Language and System Manual
Antonacci et al. AQL: a problem-solving query language for relational data bases
Tye A prototype abstract data store
Van Hoeve et al. An object‐oriented approach to application generation
Pazel et al. The system architecture of EAS-E: An integrated programming and data base language
Feuerstein et al. Oracle PL/SQL Built-ins Pocket Reference
JPH06266595A (ja) データ辞書構成方法
Bizri et al. A three level Ada interface to a commercial database
Reavley Two examples of virtual records
Batory et al. Introductory P2 System Manual
HARVARD COLL CAMBRIDGE MA PRESIDENT AND FELLOWS Research on Automatic Programming
Tamm et al. A List‐based Virtual Machine for COBOL
Fonfria Atan A Data Base Management System developed for the Cuban minicomputer CID 300/10: Candidate dissertation
Rebsamen et al. LIDAS: A database system for the personal computer Lilith: the database management
Jones Data Retrieval and Documentation Using Unity in a UniVerse® Environment

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20081003

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees