JPH0237455A - モジュラコンパイラ - Google Patents
モジュラコンパイラInfo
- Publication number
- JPH0237455A JPH0237455A JP1129992A JP12999289A JPH0237455A JP H0237455 A JPH0237455 A JP H0237455A JP 1129992 A JP1129992 A JP 1129992A JP 12999289 A JP12999289 A JP 12999289A JP H0237455 A JPH0237455 A JP H0237455A
- Authority
- JP
- Japan
- Prior art keywords
- class
- parser
- dependent
- application
- independent
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Input From Keyboards Or The Like (AREA)
- Computer And Data Communications (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の技術分野〕
本発明はコンピュータ上で動作するエージェントエンジ
ンおよび複数のアプリケーションプログラムによって実
行されるコードをコンパイルするモジュラコンパイラの
使用に関する。
ンおよび複数のアプリケーションプログラムによって実
行されるコードをコンパイルするモジュラコンパイラの
使用に関する。
例えば−船釣な多(のスプレッドシートやデータヘース
のプログラム等の、ある種の商業的に人手できるアプリ
ケーションプログラムでは、打ち込んだコマンドを後で
ハソジ実行するためにスクリプトファイルに記憶するこ
とができるコマンド言語をインプリメントしている。こ
れらのスクリプトを使用することにより、ユーザは複雑
なコマンドの集まりを自動的に実行することができる。
のプログラム等の、ある種の商業的に人手できるアプリ
ケーションプログラムでは、打ち込んだコマンドを後で
ハソジ実行するためにスクリプトファイルに記憶するこ
とができるコマンド言語をインプリメントしている。こ
れらのスクリプトを使用することにより、ユーザは複雑
なコマンドの集まりを自動的に実行することができる。
更にユーザは、しばしば繰り返して行われる作業をスク
リプトの実行にまで筒車化することができる。
リプトの実行にまで筒車化することができる。
しかしながら、コマンド言語の現在のインプリメンテー
ションでのスクリプトは、その能力がきわめて乏しい。
ションでのスクリプトは、その能力がきわめて乏しい。
例えば、現行の方式はアプリケーションに依存している
。アプリケーションは各自が独自のコマンド言語スクリ
プトを生成し、そのようなスクリプトはそのアプリケー
ションでしか実行できない。同一のスクリプトをいくつ
ものアプリケーションで実行するための機構はない。こ
れに加えて、生成されたスクリプトファイルは、理解し
て修正するのは困難である。それはそのようなスクリプ
トファイルにはアプリケーションによって実際に実行さ
れるコマンドが入っているからである。
。アプリケーションは各自が独自のコマンド言語スクリ
プトを生成し、そのようなスクリプトはそのアプリケー
ションでしか実行できない。同一のスクリプトをいくつ
ものアプリケーションで実行するための機構はない。こ
れに加えて、生成されたスクリプトファイルは、理解し
て修正するのは困難である。それはそのようなスクリプ
トファイルにはアプリケーションによって実際に実行さ
れるコマンドが入っているからである。
本発明は上述した従来技術の問題点を解消し、複数のア
プリケーションに対して共通に使用でき、またアプリケ
ーションの追加・削除に柔軟に対応できるモジュラコン
パイラを提供することを目的とする。
プリケーションに対して共通に使用でき、またアプリケ
ーションの追加・削除に柔軟に対応できるモジュラコン
パイラを提供することを目的とする。
本発明の一実施例によれば、複数のアプリケーションお
よびエージェントエンジンを含むコンピュータシステム
が提供される。アプリケーションプログラムは各々一連
の意味的コマンドを実行する。
よびエージェントエンジンを含むコンピュータシステム
が提供される。アプリケーションプログラムは各々一連
の意味的コマンドを実行する。
アプリケージジンプログラムとエージェントエンジンが
実行するためのコードをコンパイルするために、モジュ
ラコンパイラが使用される。このモジュラコンパイラに
は、エージェントエンジンが実行すべきプログラムコー
ドを構文解析するクラス独立コンパイラが含まれる。モ
ジュラコンパイラにはまた、各アプリケーションプログ
ラム用のクラス依存パーザも含まれている。これらクラ
ス依存パーザは各々対応するアプリケーションの実行す
べきプログラムコードを構文解析する。アプリケーショ
ンプログラムがコンピュータシステムに追加された場合
、対応するクラス依存パーザがモジュラコンパイラに追
加される。また、コンピュータシステムからアプリケー
ションプログラムが取り除かれた場合には、それに対応
するクラス依存パーザがモジュラコンパイラから取り除
かれる。
実行するためのコードをコンパイルするために、モジュ
ラコンパイラが使用される。このモジュラコンパイラに
は、エージェントエンジンが実行すべきプログラムコー
ドを構文解析するクラス独立コンパイラが含まれる。モ
ジュラコンパイラにはまた、各アプリケーションプログ
ラム用のクラス依存パーザも含まれている。これらクラ
ス依存パーザは各々対応するアプリケーションの実行す
べきプログラムコードを構文解析する。アプリケーショ
ンプログラムがコンピュータシステムに追加された場合
、対応するクラス依存パーザがモジュラコンパイラに追
加される。また、コンピュータシステムからアプリケー
ションプログラムが取り除かれた場合には、それに対応
するクラス依存パーザがモジュラコンパイラから取り除
かれる。
本発明によれば、アプリケーションをコンピュータシス
テムに追加したりあるいはそこから取り除いたりできる
という、大きな多機能性が得られる。新たなアプリケー
ションをコンピュータシステムに追加しなければならな
い場合、この新たなアプリケーションで実行されるコマ
ンドを考慮に入れるためにコンパイラを書き直す必要は
ない。
テムに追加したりあるいはそこから取り除いたりできる
という、大きな多機能性が得られる。新たなアプリケー
ションをコンピュータシステムに追加しなければならな
い場合、この新たなアプリケーションで実行されるコマ
ンドを考慮に入れるためにコンパイラを書き直す必要は
ない。
その代わりに、この新たなアプリケーションが実行する
コマンドを生成するために、別個のクラス3、発明の詳
細な説明 [発明の技術分野] 本発明はコンピュータで実行されるプログラムで使用さ
れるコマンドをコンパイルし、記録し、再生しく pl
ayback)かつ監視するためのエージェントの利用
に関する。
コマンドを生成するために、別個のクラス3、発明の詳
細な説明 [発明の技術分野] 本発明はコンピュータで実行されるプログラムで使用さ
れるコマンドをコンパイルし、記録し、再生しく pl
ayback)かつ監視するためのエージェントの利用
に関する。
[従来技術およびその問題点コ
多くのアプリケーションプログラムには、ユーザがアプ
リケーションプログラムと対話する際にユーザが与える
キーストロークを記録する機構が備えられている。これ
らのキーストロークはマクロファイルに記憶され、後程
再生、すなわち再び実行することができる。マクロを利
用した再生を行うことによって、ユーザは複雑な命令群
を簡単に再実行することができる。更にユーザは、頻繁
に反復される作業を、マクロを実行させるということに
迄簡単にすることができる。
リケーションプログラムと対話する際にユーザが与える
キーストロークを記録する機構が備えられている。これ
らのキーストロークはマクロファイルに記憶され、後程
再生、すなわち再び実行することができる。マクロを利
用した再生を行うことによって、ユーザは複雑な命令群
を簡単に再実行することができる。更にユーザは、頻繁
に反復される作業を、マクロを実行させるということに
迄簡単にすることができる。
代表的には、このようなマクロの利用形態は構文レベル
(syntax 1evel)で利用されてきた。ここ
で「構文レベル」という意味(マ、アプリヶーションと
対話するためにユーザが行うキーストロークまたはマウ
スの運動のような動作のことである。
(syntax 1evel)で利用されてきた。ここ
で「構文レベル」という意味(マ、アプリヶーションと
対話するためにユーザが行うキーストロークまたはマウ
スの運動のような動作のことである。
例えば、後に再生するために作成されたマクロファイル
は一連のキーストロークを記憶するのが通例である。マ
クロを実行するアプリケーションは、記憶されたキース
トロークを単に再生し、あたかもユーザがそのキースト
ロークをキーボード上に打込んでいるかのようにそれを
実行する。
は一連のキーストロークを記憶するのが通例である。マ
クロを実行するアプリケーションは、記憶されたキース
トロークを単に再生し、あたかもユーザがそのキースト
ロークをキーボード上に打込んでいるかのようにそれを
実行する。
マクロファイルの作成を簡単にするため、アプリケーシ
ョンは「記録」モードを備えていることが多い。このモ
ードによってユーザはある作業を行うためにアプリケー
ションプログラムと対話することができる。ユーザがこ
の作業を行う際に用いるキーストロークはマクロツブイ
ルに記録される。その後は、この作業を繰返したくなる
毎に、このマクロファイルを再生できる。
ョンは「記録」モードを備えていることが多い。このモ
ードによってユーザはある作業を行うためにアプリケー
ションプログラムと対話することができる。ユーザがこ
の作業を行う際に用いるキーストロークはマクロツブイ
ルに記録される。その後は、この作業を繰返したくなる
毎に、このマクロファイルを再生できる。
再生用にキーストロークをマクロファイルに記憶するこ
とは有効ではあるが、多くの点で不充分である。例えば
マクロ・ファイルにキーストロークを記憶させるために
従来用いられている機構はアプリケーションに従属して
いる。これらの機構は、独自の標準規則を有する特定の
アプリケーションによって実現される。更に、このよう
な機構は構文的に動作し、ユーザはそのアプリケーショ
ンで正しく動作するマクロファイルを作成するためには
その特定のアプリケーションの構文を理解することが必
要であ゛る。これに加えて、キーストロークが記録され
る時点と、キーストロークが再生される時点の間での°
オブジェクトの場所や状態についての何らかの相違を考
慮するシステム固有のフィールドバックが存在しない。
とは有効ではあるが、多くの点で不充分である。例えば
マクロ・ファイルにキーストロークを記憶させるために
従来用いられている機構はアプリケーションに従属して
いる。これらの機構は、独自の標準規則を有する特定の
アプリケーションによって実現される。更に、このよう
な機構は構文的に動作し、ユーザはそのアプリケーショ
ンで正しく動作するマクロファイルを作成するためには
その特定のアプリケーションの構文を理解することが必
要であ゛る。これに加えて、キーストロークが記録され
る時点と、キーストロークが再生される時点の間での°
オブジェクトの場所や状態についての何らかの相違を考
慮するシステム固有のフィールドバックが存在しない。
更に、マクロファイルを作成した特定のアプリケーショ
ンの外側で再生時に動作するマクロファイルを作成する
方法は普通は存在しない。
ンの外側で再生時に動作するマクロファイルを作成する
方法は普通は存在しない。
[発明の目的]
本発明の目的は、上述した従来技術の問題点を除去し、
柔軟なスクリプト実行の可能なコンピュータシステムを
提供することである。
柔軟なスクリプト実行の可能なコンピュータシステムを
提供することである。
[発明の概要コ
本発明の実施例によれば、複数のアプリケーションを含
むコンピュータシステムが提供される。
むコンピュータシステムが提供される。
むメツセージを受ける動作プロセッサ、(action
processor)が備えられている。前記の動作は
意味XN的コマンド(semantic comman
d)に変換される。この意味的コマンドは実行するため
コマンドプロセッサに送られる。
processor)が備えられている。前記の動作は
意味XN的コマンド(semantic comman
d)に変換される。この意味的コマンドは実行するため
コマンドプロセッサに送られる。
コンピュータシステムの本実施例は、更にエージェント
エンジン(agent engine)を備えている。
エンジン(agent engine)を備えている。
このエージェントエンジンは、多くの機能を果たすため
に利用できる。このエンジンはアプリケーションから意
味的コマンドを受は取りこれを後に再生するために記録
する目的に利、用できる。更に、意味的コマンドをコマ
ンドプロセッサにより実行するために、作業言語ファイ
ル(task languagefile)からアプリ
ケーションプログラムへ送るために、このエンジンを利
用できる。このエンジンはまた、動作プロセッサからコ
マンドプロセッサへ送られる意味的コマンドを損取りす
るために利用できる。コマンドを慣取りした後、エージ
ェントエンジンは、意味的コマンドの実行が行われるよ
うにしたり、あるいは意味的コマンドの実行を起こさせ
ないようにするために利用できる。意味的コマンドを横
取りする能力は、コンピュータによるトレーニングにと
(に有効である。
に利用できる。このエンジンはアプリケーションから意
味的コマンドを受は取りこれを後に再生するために記録
する目的に利、用できる。更に、意味的コマンドをコマ
ンドプロセッサにより実行するために、作業言語ファイ
ル(task languagefile)からアプリ
ケーションプログラムへ送るために、このエンジンを利
用できる。このエンジンはまた、動作プロセッサからコ
マンドプロセッサへ送られる意味的コマンドを損取りす
るために利用できる。コマンドを慣取りした後、エージ
ェントエンジンは、意味的コマンドの実行が行われるよ
うにしたり、あるいは意味的コマンドの実行を起こさせ
ないようにするために利用できる。意味的コマンドを横
取りする能力は、コンピュータによるトレーニングにと
(に有効である。
本発明によって、・ユーザがアプリケーションと対話す
る能力に、大いに多様性を与えることができる。アプリ
ケーションが実行する動作を、ユーザの構文レベルでは
なく意味的コマンドのレベルで、記録、再生および監視
することができる。本発明の上記のまたその他の利点は
、以下の実施例[発明の実施例コ 第1図は本発明の実施例に基づくコンピュータシステム
のブロック図である。ユーザ111はソフトウェア環境
112を介してコンピュータシステムと通信する。ソフ
トウェア環境112は、例えばアメリカ合衆国の160
11 NE 36th ’l’lay、 Redmon
d、 IIIA98073−9717に業務上の住所を
有する1、1 i c r o s o f tCor
porationから市販されているプログラムである
24 i c r o s o f t 11 i n
d o w sであフてよい。ユーザの動作を記述す
る情報を含んだメツセージは、ソフトウェア環境112
によってアプリケーション 100に送られる。本実施
例では、ユーザ動作を含むメツセージは、!、1 i
c r o s o f t W i n d o v
t sが送り出す標準メツセージである。
る能力に、大いに多様性を与えることができる。アプリ
ケーションが実行する動作を、ユーザの構文レベルでは
なく意味的コマンドのレベルで、記録、再生および監視
することができる。本発明の上記のまたその他の利点は
、以下の実施例[発明の実施例コ 第1図は本発明の実施例に基づくコンピュータシステム
のブロック図である。ユーザ111はソフトウェア環境
112を介してコンピュータシステムと通信する。ソフ
トウェア環境112は、例えばアメリカ合衆国の160
11 NE 36th ’l’lay、 Redmon
d、 IIIA98073−9717に業務上の住所を
有する1、1 i c r o s o f tCor
porationから市販されているプログラムである
24 i c r o s o f t 11 i n
d o w sであフてよい。ユーザの動作を記述す
る情報を含んだメツセージは、ソフトウェア環境112
によってアプリケーション 100に送られる。本実施
例では、ユーザ動作を含むメツセージは、!、1 i
c r o s o f t W i n d o v
t sが送り出す標準メツセージである。
アプリケーション100は動作プロセッサ 101を備
えており、これがいくつかの構文的なユーザ動作を単一
の意味的コマンドに変換する。例えば、動作プロセッサ
101はユーザメが使っているマウスのクリックと運動
を観察し、構文的に意味のあるコマンドが生成されるま
で待機する。動作プロセッサ101は、ユーザが1つの
特定のコマンドを組立てる際に取り得る多くのやり方を
構文的に解釈することができる。動作プロセッサ101
は構文的なユーザ動作の他に、アプリケーション100
に到来する他のメツセージも処理する。いくつかのメツ
セージは、 これらが与えられる′ことによって意味的コマンドが生
成され、他のメツセージはもっばら動作プロセッサ 1
01によって処理される。
えており、これがいくつかの構文的なユーザ動作を単一
の意味的コマンドに変換する。例えば、動作プロセッサ
101はユーザメが使っているマウスのクリックと運動
を観察し、構文的に意味のあるコマンドが生成されるま
で待機する。動作プロセッサ101は、ユーザが1つの
特定のコマンドを組立てる際に取り得る多くのやり方を
構文的に解釈することができる。動作プロセッサ101
は構文的なユーザ動作の他に、アプリケーション100
に到来する他のメツセージも処理する。いくつかのメツ
セージは、 これらが与えられる′ことによって意味的コマンドが生
成され、他のメツセージはもっばら動作プロセッサ 1
01によって処理される。
アプリケーション100はまた意味的コマンドを実行す
るコマンドプロセッサ 102も備えている。
るコマンドプロセッサ 102も備えている。
コマンドプロセッサ102は意味的コマンドを内部形式
(内部形式については後に詳しく説明する。)で受は取
り、またコマンドが実行できない場合はエラーを戻す。
(内部形式については後に詳しく説明する。)で受は取
り、またコマンドが実行できない場合はエラーを戻す。
アプリケーション 100とソフトウェア環境112は
、ソフトウェア環境112とアプリケーション100の
間のインタフェースのレベルでヘルプ環境119と相互
作用する。ヘルプ環境119は、ヘルプテキスト104
を使用するヘルプアプリケーション103を含んでいる
。ヘルプ環境119はまたヘルプテキスト104を作成
するためのヘルプツール105も含んでいる。
、ソフトウェア環境112とアプリケーション100の
間のインタフェースのレベルでヘルプ環境119と相互
作用する。ヘルプ環境119は、ヘルプテキスト104
を使用するヘルプアプリケーション103を含んでいる
。ヘルプ環境119はまたヘルプテキスト104を作成
するためのヘルプツール105も含んでいる。
ソフトウェア環境112はまたエージェント環境(ag
ent environment) 118と相互作用
する。エージェント環境118はエージェントタスク
107およびエージェントエンジン108を含んでいる
。
ent environment) 118と相互作用
する。エージェント環境118はエージェントタスク
107およびエージェントエンジン108を含んでいる
。
エージェントエンジン108は、5つの機能を実行する
ため、5つの異なる概念的カテゴリでアプリケーション
100と相互作用する。エージェントエンジン108は
質問するためにデータチアネル113を介して動作プロ
セッサ101と相互作用する。また、アプリケーション
100の活動性を監視するため、データチャネル114
を介して、動作プロセッサ101およびコマンドプロセ
ッサ102との間で相互作用する。また、コマンドをア
プリケーション100によって実行させるため、データ
チャネル115を介してコマンドプロセッサ102と相
互作用する。
ため、5つの異なる概念的カテゴリでアプリケーション
100と相互作用する。エージェントエンジン108は
質問するためにデータチアネル113を介して動作プロ
セッサ101と相互作用する。また、アプリケーション
100の活動性を監視するため、データチャネル114
を介して、動作プロセッサ101およびコマンドプロセ
ッサ102との間で相互作用する。また、コマンドをア
プリケーション100によって実行させるため、データ
チャネル115を介してコマンドプロセッサ102と相
互作用する。
また、アプリケーション 100内でのコマンドの処理
の際のエラーを取り扱うため、データ・チャネル116
を介してコマンドプロセッサ102と相互作用する。更
にまた、108はアプリケーション100の実行を記録
し、またコマンドの完了通知を受は取るため、データチ
ャネル117を介してコマンドプロセッサ102と相互
作用する。
の際のエラーを取り扱うため、データ・チャネル116
を介してコマンドプロセッサ102と相互作用する。更
にまた、108はアプリケーション100の実行を記録
し、またコマンドの完了通知を受は取るため、データチ
ャネル117を介してコマンドプロセッサ102と相互
作用する。
本発明の実施例では、コマンドは次の4通りの形態で表
現できる。、(1)キーワードおよびパラメタとして記
憶されるタスク言語様式、(2)エージェント108に
よって解釈される付加ヘッダ付きの外部形式の2進コー
ドであるPコード様式、(3)アプリケーション100
により理解される2進データであり、かつエージェント
108とアプリケーション100との間で受は渡される
外部様式、および(4)アプリケーション100内で実
行される2′進コマンドとしての内部様式。
現できる。、(1)キーワードおよびパラメタとして記
憶されるタスク言語様式、(2)エージェント108に
よって解釈される付加ヘッダ付きの外部形式の2進コー
ドであるPコード様式、(3)アプリケーション100
により理解される2進データであり、かつエージェント
108とアプリケーション100との間で受は渡される
外部様式、および(4)アプリケーション100内で実
行される2′進コマンドとしての内部様式。
第2図はエージェントシステム全体がどのように機能す
るかを示すブロック図である。作業言語ファイル131
は作業言語が入るファイルである。
るかを示すブロック図である。作業言語ファイル131
は作業言語が入るファイルである。
作業言語はアプリケーションの機能を記述するテキスト
形式のコマンドである。作業言=吾はクラス依存コマン
ドとクラス独立コマンドから成っている。クラス依存コ
マンドはアプリケーションが実行すべきコマンドである
。第2図では1つのアプリケーション、すなわちアプリ
ケーション100だけを示しているが、エージェント
108は多くのアプリケーションと相互作用できる。
形式のコマンドである。作業言=吾はクラス依存コマン
ドとクラス独立コマンドから成っている。クラス依存コ
マンドはアプリケーションが実行すべきコマンドである
。第2図では1つのアプリケーション、すなわちアプリ
ケーション100だけを示しているが、エージェント
108は多くのアプリケーションと相互作用できる。
本発明の実施例では、アプリケーションによって操作さ
れるべきデータファイルはオブジェクトを用いて参照さ
れる。各オブジェクトはデータファイルへの参照および
アプリケーションへの参照を含んでいる。同一のアプリ
ケーションを参照する複数のオブジェクトは同一クラス
のメンバであると称される。各アプリケーションは別々
のコマンド群を実行する。従って、クラス依存コマンド
はアプリケーションごとに異なっている。
れるべきデータファイルはオブジェクトを用いて参照さ
れる。各オブジェクトはデータファイルへの参照および
アプリケーションへの参照を含んでいる。同一のアプリ
ケーションを参照する複数のオブジェクトは同一クラス
のメンバであると称される。各アプリケーションは別々
のコマンド群を実行する。従って、クラス依存コマンド
はアプリケーションごとに異なっている。
エージェントエンジン108は、エージェントエンジン
108によって理解されるコマンドであるクラス独立コ
マンドを実行する。クラス独立コマンドはアプリケーシ
ョンによってではなく、エージェントエンジン 108
によって実行される。
108によって理解されるコマンドであるクラス独立コ
マンドを実行する。クラス独立コマンドはアプリケーシ
ョンによってではなく、エージェントエンジン 108
によって実行される。
作業言語ファイル131は、Pコードファイル121を
準備するためクラス独立パーザ122によって使用され
る。Pコードファイル121を準備する際、クラス独立
パーザ122はクラス依存パーザ123.124等を呼
出す。後に更に説明するように、クラス依存パーザはP
コード形式にカプセル化されたクラス依存コマンド′を
生成するパーザである。エージェントエンジン108は
Pコード形式から外部形式のコマンドを抽出し、それら
のコマンドを適切なアプリケーションへ送る。Pコード
中のクラスフィールドは、どのアプリケーションが特定
のクラス依存コマンドを受は取るかを指示する。クラス
独立パーザ122はエージェントエンジン108によっ
て実行されるPコードを/i成するパーザである。
準備するためクラス独立パーザ122によって使用され
る。Pコードファイル121を準備する際、クラス独立
パーザ122はクラス依存パーザ123.124等を呼
出す。後に更に説明するように、クラス依存パーザはP
コード形式にカプセル化されたクラス依存コマンド′を
生成するパーザである。エージェントエンジン108は
Pコード形式から外部形式のコマンドを抽出し、それら
のコマンドを適切なアプリケーションへ送る。Pコード
中のクラスフィールドは、どのアプリケーションが特定
のクラス依存コマンドを受は取るかを指示する。クラス
独立パーザ122はエージェントエンジン108によっ
て実行されるPコードを/i成するパーザである。
作業言語ファイル131は、エージェント作業エディタ
132を用いて、ユーザ111が準備することができ
る。あるいは、クラス依存レコーダ126.127等を
利用するクラス独立レコーダ125を使用して、作業言
語ファイルを準備してもよい。一般に、レコーダは後に
再生するためにアプリケーションのコマンドを記録する
。コンピュータシステムが記録モードにある場合は、エ
ージェント作業エディタ 132は、エージェントエン
ジン108およびアプリケーションがどのような動作を
取っているかを詳細に記述する入力を、アプリケーショ
ン100のようなアプリケーションから受は取る。
132を用いて、ユーザ111が準備することができ
る。あるいは、クラス依存レコーダ126.127等を
利用するクラス独立レコーダ125を使用して、作業言
語ファイルを準備してもよい。一般に、レコーダは後に
再生するためにアプリケーションのコマンドを記録する
。コンピュータシステムが記録モードにある場合は、エ
ージェント作業エディタ 132は、エージェントエン
ジン108およびアプリケーションがどのような動作を
取っているかを詳細に記述する入力を、アプリケーショ
ン100のようなアプリケーションから受は取る。
アプリケーションはアプリケーションプログラム・イン
タフェース(application program
1nte−rfaca AP I )130を介して
エージェント作業エディタ 132と通信する。エージ
ェント作業エディタ132は、コンピュータシステムが
記録モードにある場合はデータをクラス独立レコーダ1
25に送り、エージェント作業エディタ 132をユー
ザ111が使用中の場合はデータを作業言語ファイル1
31に送る。
タフェース(application program
1nte−rfaca AP I )130を介して
エージェント作業エディタ 132と通信する。エージ
ェント作業エディタ132は、コンピュータシステムが
記録モードにある場合はデータをクラス独立レコーダ1
25に送り、エージェント作業エディタ 132をユー
ザ111が使用中の場合はデータを作業言語ファイル1
31に送る。
クラス独立レコーダ125は情報を受は取って作業言語
ファイル131を構築する。エージェント作業エディタ
がアプリケーションの取った動作に関する情報を送って
いることをクラス独立レコーダ125が検出すると、ク
ラス独立レコーダ125はそのアプリケーションのため
のクラス依存レコーダを呼出す。このクラス依存レコー
ダがこの動作に作についての作業言語様式を作成する。
ファイル131を構築する。エージェント作業エディタ
がアプリケーションの取った動作に関する情報を送って
いることをクラス独立レコーダ125が検出すると、ク
ラス独立レコーダ125はそのアプリケーションのため
のクラス依存レコーダを呼出す。このクラス依存レコー
ダがこの動作に作についての作業言語様式を作成する。
Pコードファイル−121を実行するとき、エージェン
トエンジン10Bは各Pコ〜ドコマントヲ読ミ取す、ソ
のPコードコマンドがエージェントエンジン108によ
って実行されるべきクラス独立コマンドを含んでいるの
か、それともアプリケーションによって実行されるべき
クラス依存コマンドを含んでいるのかを判定する。Pコ
ードコマンドがクラス独立コマンドを含んでいる場合は
、エージェントエンジン108がそのコマンドを実行す
る。
トエンジン10Bは各Pコ〜ドコマントヲ読ミ取す、ソ
のPコードコマンドがエージェントエンジン108によ
って実行されるべきクラス独立コマンドを含んでいるの
か、それともアプリケーションによって実行されるべき
クラス依存コマンドを含んでいるのかを判定する。Pコ
ードコマンドがクラス独立コマンドを含んでいる場合は
、エージェントエンジン108がそのコマンドを実行す
る。
Pコード指令がクラス依存コマンドを含んでいる場合は
、エージェントエンジン108は、このコマンドを受は
取るべきアプリケーションをこのPフードコマンドから
判定する。次にエージェントエンジン 108は、Pコ
ード内に埋め込まれたクラス依存コマンドを外部形式で
抜き出す。次にこのクラス依存コマンドはアプリケーシ
ョンに送出される。例えばクラス依存コマンドがアプリ
ケーション100についてのものであるならば、そのク
ラス依存コマンドは、アプリケーション100に送出さ
れる。アプリケーション100内において、外部形式で
送出されたクラス依存コマンドを内部形式のコマンドに
翻訳するため、内部向は翻訳プロセッサ128が使用さ
れる。
、エージェントエンジン108は、このコマンドを受は
取るべきアプリケーションをこのPフードコマンドから
判定する。次にエージェントエンジン 108は、Pコ
ード内に埋め込まれたクラス依存コマンドを外部形式で
抜き出す。次にこのクラス依存コマンドはアプリケーシ
ョンに送出される。例えばクラス依存コマンドがアプリ
ケーション100についてのものであるならば、そのク
ラス依存コマンドは、アプリケーション100に送出さ
れる。アプリケーション100内において、外部形式で
送出されたクラス依存コマンドを内部形式のコマンドに
翻訳するため、内部向は翻訳プロセッサ128が使用さ
れる。
エージェントエンジン108とアプリケーションの間の
相互作用を行う際、AP1130が使用される。AP1
130はエージェントエンジン 108および他の機構
をアクセスするための関数とメツセージの集まりである
。
相互作用を行う際、AP1130が使用される。AP1
130はエージェントエンジン 108および他の機構
をアクセスするための関数とメツセージの集まりである
。
システムが記録モードにあるときは、内部向は翻訳プロ
セッサ128はエージェントエンジン108からのコマ
ンドを翻訳し、第3図に示すコマンドインタフェース要
素146を介してそのコマンドをコマンドプロセッサ1
02へ送る。外部向は翻訳プロセッサ 129は、コマ
ンドプロセッサ 102によって実行された内部形式の
コマンドを受は取る。このコマンドは第3図に示すリタ
ーンインタフェース要素を介して受は取られる。外部向
は翻訳プロセッサ129は内部形式のコマンドを外部形
式のコマンドに翻訳する。この外部形式のコマンドはこ
れによりAP1130を経て作業エディタ 132へ転
送される。
セッサ128はエージェントエンジン108からのコマ
ンドを翻訳し、第3図に示すコマンドインタフェース要
素146を介してそのコマンドをコマンドプロセッサ1
02へ送る。外部向は翻訳プロセッサ 129は、コマ
ンドプロセッサ 102によって実行された内部形式の
コマンドを受は取る。このコマンドは第3図に示すリタ
ーンインタフェース要素を介して受は取られる。外部向
は翻訳プロセッサ129は内部形式のコマンドを外部形
式のコマンドに翻訳する。この外部形式のコマンドはこ
れによりAP1130を経て作業エディタ 132へ転
送される。
第3図は本発明の実施例におけるアプリケーション10
0のアーキテクチャをより詳細に示している。アプリケ
ーション100は、ソフトウェア環境112と相互作用
するユーザ動作インタフェース要素145、および動作
プロセッサ101とコマンドプロセッサ 102の双方
と通信するコマンドインタフェース要素146を含んで
いる。図示されているように、動作プロセッサ101コ
マンドプロセツサ102の双方がアプリケーションデー
タ 144をアクセスする。リターンインタフェース要
素 147はコマンドプロセッサ102に応答して、制
御をソフトウェア環境112に戻す。図示のように、外
部向は翻訳プロセッサ 129はリターンインターフェ
ース要素147ヲ相互作用する。リターンインタフェー
ス要は、 素147g、アプリケーション100が再生モードまた
は記録モードにある場合だけ呼出される。これらのモー
ドについては後により詳細に説明する。
0のアーキテクチャをより詳細に示している。アプリケ
ーション100は、ソフトウェア環境112と相互作用
するユーザ動作インタフェース要素145、および動作
プロセッサ101とコマンドプロセッサ 102の双方
と通信するコマンドインタフェース要素146を含んで
いる。図示されているように、動作プロセッサ101コ
マンドプロセツサ102の双方がアプリケーションデー
タ 144をアクセスする。リターンインタフェース要
素 147はコマンドプロセッサ102に応答して、制
御をソフトウェア環境112に戻す。図示のように、外
部向は翻訳プロセッサ 129はリターンインターフェ
ース要素147ヲ相互作用する。リターンインタフェー
ス要は、 素147g、アプリケーション100が再生モードまた
は記録モードにある場合だけ呼出される。これらのモー
ドについては後により詳細に説明する。
リターンインタフェース要素147はエージェントエン
ジン108に対して、アプリケーション100によって
コマンドが既に実行され、アプリケーションは次のコマ
ンドへの準備が完了しているということを指示する。
ジン108に対して、アプリケーション100によって
コマンドが既に実行され、アプリケーションは次のコマ
ンドへの準備が完了しているということを指示する。
アプリケーション100には、モーダルダイアローブボ
ックスプロセッサ 148とエラーダイアローブボック
ス要素149も含まれている。これらはいずれもソフト
ウェア環境112と相互作用して、ユーザ111と通信
するダイアロー久ボックスの表示を制御する。
〜ある種のアプリケーションは
一度に複数のウィンドウ中で動作することができる。こ
れを行う際、モードなしのユーザ動作インタフェース要
素と、モードなし動作プロセッサと、モードなしコマン
ドインタフェース要素が、アプリケーションがその中で
動作する複数のウィンドウのそれぞれごとに付加される
。例えば、アプリケーション100内には、モードなし
ユーザ動作インタフェース要素141と、モードなし動
作プロセッサ142と、モードなしコマンドインタフェ
ース要素 143が含まれている。
ックスプロセッサ 148とエラーダイアローブボック
ス要素149も含まれている。これらはいずれもソフト
ウェア環境112と相互作用して、ユーザ111と通信
するダイアロー久ボックスの表示を制御する。
〜ある種のアプリケーションは
一度に複数のウィンドウ中で動作することができる。こ
れを行う際、モードなしのユーザ動作インタフェース要
素と、モードなし動作プロセッサと、モードなしコマン
ドインタフェース要素が、アプリケーションがその中で
動作する複数のウィンドウのそれぞれごとに付加される
。例えば、アプリケーション100内には、モードなし
ユーザ動作インタフェース要素141と、モードなし動
作プロセッサ142と、モードなしコマンドインタフェ
ース要素 143が含まれている。
第4図はアプリケーション100内でのデータフローを
示す。アプリケーション100へのメツセージはユーザ
動作インタフェース要素145が受は取る。例えばヘル
プアプリケーション 103からのメツセージのような
ある種のメツセージに対しては、ユーザ動作インタフェ
ース要素145によってアプリケーション 100は即
ちにリターンする。それ以外の場合は、メンセージは再
生メ、ツセージテスト要素(playback mes
sage test component) 150に
進む。このメツセージが記録あるいはパージングのいず
れかによって作成されたコマンドを再生するためのメツ
セージである場合は、このメツセージは、メツセージに
含まれるコマンドを外部形式から内部形式へ翻訳する内
部向は翻訳プロセッサ128に送られる。コマンドは次
にコマンドインタフェース要素 146に送られる。
示す。アプリケーション100へのメツセージはユーザ
動作インタフェース要素145が受は取る。例えばヘル
プアプリケーション 103からのメツセージのような
ある種のメツセージに対しては、ユーザ動作インタフェ
ース要素145によってアプリケーション 100は即
ちにリターンする。それ以外の場合は、メンセージは再
生メ、ツセージテスト要素(playback mes
sage test component) 150に
進む。このメツセージが記録あるいはパージングのいず
れかによって作成されたコマンドを再生するためのメツ
セージである場合は、このメツセージは、メツセージに
含まれるコマンドを外部形式から内部形式へ翻訳する内
部向は翻訳プロセッサ128に送られる。コマンドは次
にコマンドインタフェース要素 146に送られる。
メツセージが再生用メツセージではない場合は、このメ
ツセージは例えばメツセージを生成せしめたユーザの動
作を構文的に解釈するため、動作プロセッサ101に送
られる。動作プロセッサ101により生成されたかある
いは内部向は翻訳プロセッサ128によって作成された
意味的コマンドがない場合は、再生メツセージテスト要
素150はアプリケーション100をリターンさせる。
ツセージは例えばメツセージを生成せしめたユーザの動
作を構文的に解釈するため、動作プロセッサ101に送
られる。動作プロセッサ101により生成されたかある
いは内部向は翻訳プロセッサ128によって作成された
意味的コマンドがない場合は、再生メツセージテスト要
素150はアプリケーション100をリターンさせる。
生成された意味的コマンドがある場合は、そのコマンド
はコマンドインタフェース要素 146に送られる。
はコマンドインタフェース要素 146に送られる。
エージェントエンジン108がアプリケーション100
によるコマンドの実行を監視している場合は、コマンド
インタフェース要素146は受信したデータは皆、コマ
ンドを外部形式に翻訳する外部向は翻訳プロセッサ12
9に送り、またそのコマンドをエージェントエンジン
108に転送スル。コマンドインタフェース要素はまた
モーダルダイアローブボックステスト要素 152にデ
ータを進める。
によるコマンドの実行を監視している場合は、コマンド
インタフェース要素146は受信したデータは皆、コマ
ンドを外部形式に翻訳する外部向は翻訳プロセッサ12
9に送り、またそのコマンドをエージェントエンジン
108に転送スル。コマンドインタフェース要素はまた
モーダルダイアローブボックステスト要素 152にデ
ータを進める。
進められたデータがダイアローブボックスに対する要求
を含んでいる場合は、モーダルダイアローブボックステ
スト要素152は処理を行うため、モーダルダイアロー
ブボックスプロセッサ148にこのデータを送り出す。
を含んでいる場合は、モーダルダイアローブボックステ
スト要素152は処理を行うため、モーダルダイアロー
ブボックスプロセッサ148にこのデータを送り出す。
そうでない場合には、モーダルダイアローブボックステ
スト要素152はデータをコマンドテス・ト要素151
へ送り出す。
スト要素152はデータをコマンドテス・ト要素151
へ送り出す。
このデータがコマンドを含んでいる場合は、コマンドテ
スト要素1511ま実行のためにこのコマンドをコマン
ドプロセッサ102に送出す。コマンドテスト要素 1
51はデータをリターンインタフェース要素147へ送
り出す。
スト要素1511ま実行のためにこのコマンドをコマン
ドプロセッサ102に送出す。コマンドテスト要素 1
51はデータをリターンインタフェース要素147へ送
り出す。
エージェントエンジン108がコマンドを記録している
場合は、リターンインタフェース要素147はデータを
外部形式に翻訳するために外部向は翻訳プロセッサ12
9に送出し、またデータをリターンインタフェース要素
147を経てエージェントエンジン 108へ転送する
。リターンインタフェース要素147は次のメツセージ
が受は取られるまでリターンする。
場合は、リターンインタフェース要素147はデータを
外部形式に翻訳するために外部向は翻訳プロセッサ12
9に送出し、またデータをリターンインタフェース要素
147を経てエージェントエンジン 108へ転送する
。リターンインタフェース要素147は次のメツセージ
が受は取られるまでリターンする。
次に本発明の実施例に基づく動作の記録および再生の態
様を説明する。
様を説明する。
第8図では、ウィンドウ 205内でアプリケーション
“New Wave 0ffice”が図示のように実
行中である。ウィンドウ 205内にはアイコン201
で表されたオブジェクト“J o e ”と、アイコン
206で表されたフォルダBil]”と、アイコン20
2で表されたフォルダS a m ”が示されている。
“New Wave 0ffice”が図示のように実
行中である。ウィンドウ 205内にはアイコン201
で表されたオブジェクト“J o e ”と、アイコン
206で表されたフォルダBil]”と、アイコン20
2で表されたフォルダS a m ”が示されている。
オブジェクト“J o e ”には、テキストファイル
への参照およびこのテストファイルを操作するアプリケ
ーションへの参照が含まれている。フォルダSam”は
オープンされている。従ってアイコン202には陰影が
つけられており、ウィンドウ 204はフォルダSam
の内容を示している。フォルダ、Sam”内にはアイコ
ン203で表されたフォルダFred’がある。カーソ
ル200は第6図に示すようにマウス20またはキーボ
ード19によって制御される。
への参照およびこのテストファイルを操作するアプリケ
ーションへの参照が含まれている。フォルダSam”は
オープンされている。従ってアイコン202には陰影が
つけられており、ウィンドウ 204はフォルダSam
の内容を示している。フォルダ、Sam”内にはアイコ
ン203で表されたフォルダFred’がある。カーソ
ル200は第6図に示すようにマウス20またはキーボ
ード19によって制御される。
第6図には、コンピュータ18とウィンドウ 205を
表示するモニタ14も図示されている。第7図はボタン
27.28を含むマウス20を図示している。
表示するモニタ14も図示されている。第7図はボタン
27.28を含むマウス20を図示している。
オブジェクト“Jae”は次のようにしてフォルダ″B
111’内に置くことができる。こうするにはまずマウ
ス20を使ってカーソル200をオブジェクト“Joa
”の上に置き、ボタン27を押し込み、次にカーソル2
00をフォルダB111”の上に動かし、そこでボタン
27を離せばよい。同様に、マウス20を用いてカーソ
ル20CIをオブジェクト“Joe”の上に置いてから
ボタン27を押し込み、次にウィンドウ204内にカー
ソル200゛を動かし、そこでボタン27を離すことに
よって、フォルダSam″°内にオブジェクト“Joe
″゛を置くことができる。最後に、マウス20を用いて
カーソル200をオブジェクト“Joeの上に置いてボ
タン27を押し込み、カーソル200をフォルダFre
d”上へ動かして5からボタン27を離すことによって
、フォルダFred”内にオブジェクト“Joe″を置
くことでかきる。
111’内に置くことができる。こうするにはまずマウ
ス20を使ってカーソル200をオブジェクト“Joa
”の上に置き、ボタン27を押し込み、次にカーソル2
00をフォルダB111”の上に動かし、そこでボタン
27を離せばよい。同様に、マウス20を用いてカーソ
ル20CIをオブジェクト“Joe”の上に置いてから
ボタン27を押し込み、次にウィンドウ204内にカー
ソル200゛を動かし、そこでボタン27を離すことに
よって、フォルダSam″°内にオブジェクト“Joe
″゛を置くことができる。最後に、マウス20を用いて
カーソル200をオブジェクト“Joeの上に置いてボ
タン27を押し込み、カーソル200をフォルダFre
d”上へ動かして5からボタン27を離すことによって
、フォルダFred”内にオブジェクト“Joe″を置
くことでかきる。
オブジェクト“Joe”′をフォルダSam”や8i]
1’”の中に置くのを、以下に説明するようにして記録
することができる。ユーザがマウス20を動かすごとに
、構文的なユーザ動作を含pメツセージをユ−ザ動作イ
ンターフェース要素145が受は取って、これを再生メ
ツセージテスト要素150を介して動作プロセッサ 1
01へ中継する。このような構文的ユーザ動作に基づい
て、動作プロセッサ101はコマンドプロセッサ102
によって実行される意味的コマンドを生成する。
1’”の中に置くのを、以下に説明するようにして記録
することができる。ユーザがマウス20を動かすごとに
、構文的なユーザ動作を含pメツセージをユ−ザ動作イ
ンターフェース要素145が受は取って、これを再生メ
ツセージテスト要素150を介して動作プロセッサ 1
01へ中継する。このような構文的ユーザ動作に基づい
て、動作プロセッサ101はコマンドプロセッサ102
によって実行される意味的コマンドを生成する。
次にフォルダB111”中にオブジェクト“joeを置
くのを記録することについて説明する。カーソル200
はウィンドウ 205内で自由に動かすことができる。
くのを記録することについて説明する。カーソル200
はウィンドウ 205内で自由に動かすことができる。
ユーザがマウス20を動かすと、構文的ユーザ動作は前
述のように動作プロセッサ101へ送られる。アクショ
ン・プロセッサ 101はカーソル200の座標位置を
常に掌握している。ボタン27が押されると、動作プロ
セッサ 101はカーソル2二子の上にあった場合は、
動作プロセッサ101は、オブジェクト“J o e
”がカーソル200の位置にあることを発見する。この
とき、プロセッサ101は意味的コマンド”5elec
t Document ’Joe” (文書”J−oe
”を選択せよ)を生成する。この意味的コマンドは、再
生メツセージテスト要素150と、コマンドインターフ
ェース要素146と、モーダルダイアローブボックステ
スト要素152と、コマンドテスト要素151を通過し
てコマンドプロセッサ102へ送られ、ここにこの意味
的コマンドが実行される。
述のように動作プロセッサ101へ送られる。アクショ
ン・プロセッサ 101はカーソル200の座標位置を
常に掌握している。ボタン27が押されると、動作プロ
セッサ 101はカーソル2二子の上にあった場合は、
動作プロセッサ101は、オブジェクト“J o e
”がカーソル200の位置にあることを発見する。この
とき、プロセッサ101は意味的コマンド”5elec
t Document ’Joe” (文書”J−oe
”を選択せよ)を生成する。この意味的コマンドは、再
生メツセージテスト要素150と、コマンドインターフ
ェース要素146と、モーダルダイアローブボックステ
スト要素152と、コマンドテスト要素151を通過し
てコマンドプロセッサ102へ送られ、ここにこの意味
的コマンドが実行される。
この意味的コマンドはリターンインターフェース要素1
47にも受は取られ外部向は翻訳プロセッサ129へ送
られる。外部向は翻訳プロセッサはこのコマンドを外部
形式にして、これをクラス独立しレコーダ125へ、ひ
いてはクラス依存レコーダ126へ送る。このクラス依
存レコーダ126がこのコマンドを作業言;吾形式で作
業言語ファイル内に記録する。
47にも受は取られ外部向は翻訳プロセッサ129へ送
られる。外部向は翻訳プロセッサはこのコマンドを外部
形式にして、これをクラス独立しレコーダ125へ、ひ
いてはクラス依存レコーダ126へ送る。このクラス依
存レコーダ126がこのコマンドを作業言;吾形式で作
業言語ファイル内に記録する。
マウス20が動かされている間、構文的ユーザ勤が継続
的に動作プロセッサ101に送られる。動作プロセッサ
はカーソル200の座標位置を掌遷し続ける。第9図で
は、カーソル200はオブジェクト“Joe″゛の「幻
影」を動かしている。第10図ではカーソル200はフ
ォルダB111”の上に置かれている。
的に動作プロセッサ101に送られる。動作プロセッサ
はカーソル200の座標位置を掌遷し続ける。第9図で
は、カーソル200はオブジェクト“Joe″゛の「幻
影」を動かしている。第10図ではカーソル200はフ
ォルダB111”の上に置かれている。
ボタン27が離されると、動作プロセッサ 101は意
味的コマンド”!、l0V8 To Folder
’B111”” (フォルダBilビへ移動せよ)を
生成する。この意味的コマンドプロセッサ102へ渡さ
れ、このコマンドプロセッサが先に選択されていたオブ
ジェクト“J o e ”をフォルダB111”へ転送
する。第11図は転送が完了し、オブジェクト“Joe
”がフォルダ“B111”内にある状態を示す。外部向
は翻訳プロセッサ129はコマンドを外部形式に変換し
、これをクラス独立レコーダ125に、ひいてはコマン
ドを作業言工吾ファイル内に記録するクラス依存レコー
ダ126へ送る。フォルダB1】1”をオーブンすると
、第12図に示すようにオブジェクト“J o e ”
が見える。
味的コマンド”!、l0V8 To Folder
’B111”” (フォルダBilビへ移動せよ)を
生成する。この意味的コマンドプロセッサ102へ渡さ
れ、このコマンドプロセッサが先に選択されていたオブ
ジェクト“J o e ”をフォルダB111”へ転送
する。第11図は転送が完了し、オブジェクト“Joe
”がフォルダ“B111”内にある状態を示す。外部向
は翻訳プロセッサ129はコマンドを外部形式に変換し
、これをクラス独立レコーダ125に、ひいてはコマン
ドを作業言工吾ファイル内に記録するクラス依存レコー
ダ126へ送る。フォルダB1】1”をオーブンすると
、第12図に示すようにオブジェクト“J o e ”
が見える。
この場合、外部向は翻訳プロセッサ129はオブジェク
) ”Joe”やフォルダ”B111″についての情報
を更に得る必要はなかった。何故ならば、アプリケーシ
ョン“New lすave 0ffice”は自分の内
部オブジェクト″J o e ”およびフォルダB11
1″がそのからである。更に、アプリケーション100
″NewWave 0ffice″°はフォルダBil
ビが閉じていることを知っている。
) ”Joe”やフォルダ”B111″についての情報
を更に得る必要はなかった。何故ならば、アプリケーシ
ョン“New lすave 0ffice”は自分の内
部オブジェクト″J o e ”およびフォルダB11
1″がそのからである。更に、アプリケーション100
″NewWave 0ffice″°はフォルダBil
ビが閉じていることを知っている。
フォルダSam″′内へオブジェクト“Joe″を置く
のを記録する態様も上と同様である。第8図ではウィン
ドウ 205は活動状態である。カーソル200はウィ
ンドウ 205内を自由に移動できる。ボタン27が押
されると、アクション・プロセッサはカーソル200の
現在の座標位置に何があるかをチエツクする。ボタン2
7が押されたとき、カーソル200がオブジェクト“J
oe”の上に置かれていた場合は、動作プロセッサ 1
01はオブジェクト“Joe″′がカーソル200の位
置にあることを発覚する。このとき、動作フロセッサ1
01は意味的コマンド”5elect D−ocume
nt ’Joe” (文書” Joa”を選択せよ)を
生成する。この意味的コマンドは、再生メツセージテス
ト要素 150と、コマンドインターフェース要素14
6と、モーダルダイアローブボックステスト要素152
と、コマンドテスト要素151を経て、コマンドプロセ
ッサ102へ送られ、この意味的コマンドはここで実行
される。
のを記録する態様も上と同様である。第8図ではウィン
ドウ 205は活動状態である。カーソル200はウィ
ンドウ 205内を自由に移動できる。ボタン27が押
されると、アクション・プロセッサはカーソル200の
現在の座標位置に何があるかをチエツクする。ボタン2
7が押されたとき、カーソル200がオブジェクト“J
oe”の上に置かれていた場合は、動作プロセッサ 1
01はオブジェクト“Joe″′がカーソル200の位
置にあることを発覚する。このとき、動作フロセッサ1
01は意味的コマンド”5elect D−ocume
nt ’Joe” (文書” Joa”を選択せよ)を
生成する。この意味的コマンドは、再生メツセージテス
ト要素 150と、コマンドインターフェース要素14
6と、モーダルダイアローブボックステスト要素152
と、コマンドテスト要素151を経て、コマンドプロセ
ッサ102へ送られ、この意味的コマンドはここで実行
される。
意味指令はリターンインターフェース要素147でも受
は取られ、外部向は翻訳プロセッサ 129へ送られる
。外部向は翻訳プロセッサはこのコマンドを外部形式に
変換し、これをクラス独立レコーダ125へ、ひいては
コマンドを作業言工吾ファイル内に記録するクラス依存
レコーダ126へ送る。
は取られ、外部向は翻訳プロセッサ 129へ送られる
。外部向は翻訳プロセッサはこのコマンドを外部形式に
変換し、これをクラス独立レコーダ125へ、ひいては
コマンドを作業言工吾ファイル内に記録するクラス依存
レコーダ126へ送る。
マウス20が移動している間、構文的ユーザ動作が継続
的に動作プロセッサ 101へ送出される。動作プロセ
ッサはカーソル200の座標位置を継続的に掌遷してい
る。第13図では、カーソル200はウィンドウ 20
4内に位置している。ボタン27が離されると、動作プ
ロセッサ 101はコマンド!、10 V ETo F
older ’Sam’ ” (7tルダSam”へ移
動せよ)を生成する。この意味的コマンドはコマンドプ
ロセッサ 102へ;度され、コマンドプロセッサ 1
02は先に選択されていたオブジェクト“Joe″′を
フォルダB111”へ転送する。この意味的コマンドは
またリターンインターフェース要素147でも受は取ら
れ、外部向は翻訳プロセッサ129へ送られる。
的に動作プロセッサ 101へ送出される。動作プロセ
ッサはカーソル200の座標位置を継続的に掌遷してい
る。第13図では、カーソル200はウィンドウ 20
4内に位置している。ボタン27が離されると、動作プ
ロセッサ 101はコマンド!、10 V ETo F
older ’Sam’ ” (7tルダSam”へ移
動せよ)を生成する。この意味的コマンドはコマンドプ
ロセッサ 102へ;度され、コマンドプロセッサ 1
02は先に選択されていたオブジェクト“Joe″′を
フォルダB111”へ転送する。この意味的コマンドは
またリターンインターフェース要素147でも受は取ら
れ、外部向は翻訳プロセッサ129へ送られる。
外部向は翻訳プロセッサ129は“API INTE
RROG−ATE MSG”(API質問メツセージ
)を送出する。このメツセージの機能は、”API
111110 ARE YOUFN”(API機能
「おまえは誰か」)である。このメツセージにより、外
部向は翻訳プロセッサ 129は、フォルダSam″゛
についてのオープンしているウィンドウがカーソル20
0の位置にあることを示り出す。このメツセージの機能
は“API !!!HATSINsERT八B、LE
八T Fへ”(A、PI機能「そこ1こ何を挿入
可能か」)である。ウィンドウ 204内のカーソル2
00の位置には何もないのでそ、れ以上の要素(e−n
tity)は見出されない。
RROG−ATE MSG”(API質問メツセージ
)を送出する。このメツセージの機能は、”API
111110 ARE YOUFN”(API機能
「おまえは誰か」)である。このメツセージにより、外
部向は翻訳プロセッサ 129は、フォルダSam″゛
についてのオープンしているウィンドウがカーソル20
0の位置にあることを示り出す。このメツセージの機能
は“API !!!HATSINsERT八B、LE
八T Fへ”(A、PI機能「そこ1こ何を挿入
可能か」)である。ウィンドウ 204内のカーソル2
00の位置には何もないのでそ、れ以上の要素(e−n
tity)は見出されない。
外部向は翻訳プロセッサはコマンドを外部形式に変換し
てクラス独立レコーダ125に、ひいてはクラス依存レ
コーダ126に送り、このコマンドは作業言語ファイル
131内に記録される。第14図は転送が完了した結果
を示している。すなわち、オブジェクト“Joe“はウ
ィンドウ 204内にある。
てクラス独立レコーダ125に、ひいてはクラス依存レ
コーダ126に送り、このコマンドは作業言語ファイル
131内に記録される。第14図は転送が完了した結果
を示している。すなわち、オブジェクト“Joe“はウ
ィンドウ 204内にある。
同様にして、オブジェクト″Joe″をフオルダ”F−
red”に転送できる。第15図では、カーソル200
がウィンドウ 204内のフォルダFred”上に位置
している。ボタン27が離されると、アクション・プロ
セッサ 101は意味的D7ンド1.10 Vε To
Folder’Fred’ l’1lTHIN Fo
lder Sam”’(フォルダS a m ”内にあ
るフォルダFred”へ移動せよ)を生成する。この意
味的コマンドはコマンドプロセッサ102に1度され、
それによって先に選択されていたオブジェクト“Joe
”がフォルダSam”内のフォルダF−r e d ”
へ転送される。この意味的コマンドはリターンインター
フェース要5147でも受は取られて、外部向は翻訳プ
ロセッサ 129に送られる。
red”に転送できる。第15図では、カーソル200
がウィンドウ 204内のフォルダFred”上に位置
している。ボタン27が離されると、アクション・プロ
セッサ 101は意味的D7ンド1.10 Vε To
Folder’Fred’ l’1lTHIN Fo
lder Sam”’(フォルダS a m ”内にあ
るフォルダFred”へ移動せよ)を生成する。この意
味的コマンドはコマンドプロセッサ102に1度され、
それによって先に選択されていたオブジェクト“Joe
”がフォルダSam”内のフォルダF−r e d ”
へ転送される。この意味的コマンドはリターンインター
フェース要5147でも受は取られて、外部向は翻訳プ
ロセッサ 129に送られる。
外部向は翻訳プロセッサ 129はこのコマンドを次の
ようにして外部形式に変換する。外部向は翻訳プロセッ
サ 129は“API INTERROGATE
1.lsG”ジの結果として、外部向は翻訳プロセッ
サ129は、フォルダFred”がカーソル200の位
置にあることを示すリターンメツセージを受は取る。外
部向は翻訳プロセッサは“API INTEItRO
GAT巳 !、I S G”をもう−度送出する。今度
のメツセージの機能は“API メツ)In AR
E YOII FN”である。このメツセージの結
果として、外部向は翻訳プロセッサ129はフォルダS
am”がカーソル200の位置にあることを示すリター
ンデータを受は取る。
ようにして外部形式に変換する。外部向は翻訳プロセッ
サ 129は“API INTERROGATE
1.lsG”ジの結果として、外部向は翻訳プロセッ
サ129は、フォルダFred”がカーソル200の位
置にあることを示すリターンメツセージを受は取る。外
部向は翻訳プロセッサは“API INTEItRO
GAT巳 !、I S G”をもう−度送出する。今度
のメツセージの機能は“API メツ)In AR
E YOII FN”である。このメツセージの結
果として、外部向は翻訳プロセッサ129はフォルダS
am”がカーソル200の位置にあることを示すリター
ンデータを受は取る。
この時点で外部向は翻訳プロセッサはAP目30を経て
外部形式のコマンドをクラス独立レコーダ125に、ひ
いてはクラス依存レコーダ126に送ることができる。
外部形式のコマンドをクラス独立レコーダ125に、ひ
いてはクラス依存レコーダ126に送ることができる。
クラス依存レコーダ126は外部コマンドを作業言工吾
ファイル131に記録する。第16図は転送が終了し、
オブジェクト“J o e ”がフォルダ’F−red
”内にあることを示している。第17図に示すように、
フォルダFre+j″がオーブンされている場合はオブ
ジェクト”Joe’″が見える。
ファイル131に記録する。第16図は転送が終了し、
オブジェクト“J o e ”がフォルダ’F−red
”内にあることを示している。第17図に示すように、
フォルダFre+j″がオーブンされている場合はオブ
ジェクト”Joe’″が見える。
オブジェクト“J o e ”をフォルダFred’に
転送した一連の一旦タスク言語ファイルに記録されると
、コマンドは、−度作業言工吾フアイルに記録した後で
再生することができる。例えば、ウィンドウ205が第
18図のように見える場合を想定してみる。ウィンドウ
204と、オブジェクトテキスドJ−oe”と、フォ
ルダFred”はどれもウィンドウ205内ではじめと
は異なる位置にあるので、構文的なユーザ動作を単に再
生するのでは、オブジェクト“Joe″°がフォルダF
red”内に配置されることにはならない。しかし、記
録されたのは構文的ユーザ動作ではなく意味的コマンド
であるので、この意味的コマンドの再生によって、オブ
ジェクト“J−Oe”はフォルダFred”内に配置さ
れる。
転送した一連の一旦タスク言語ファイルに記録されると
、コマンドは、−度作業言工吾フアイルに記録した後で
再生することができる。例えば、ウィンドウ205が第
18図のように見える場合を想定してみる。ウィンドウ
204と、オブジェクトテキスドJ−oe”と、フォ
ルダFred”はどれもウィンドウ205内ではじめと
は異なる位置にあるので、構文的なユーザ動作を単に再
生するのでは、オブジェクト“Joe″°がフォルダF
red”内に配置されることにはならない。しかし、記
録されたのは構文的ユーザ動作ではなく意味的コマンド
であるので、この意味的コマンドの再生によって、オブ
ジェクト“J−Oe”はフォルダFred”内に配置さ
れる。
具体的に作業言語ファイルに以下のコマンドが含まれて
いたものと想定してみる。
いたものと想定してみる。
FOCUS on Desktop New)5(l
liave 0ffice(デスクトップ” Newl
Wave Of f ice”に焦点を合わせよ) SεしECT Document J o e
”よ (文書“Joe”を選択せダ) !、l0VE TOFolcjer Fred’
lすITHIN Folder ”Sam(フォ
ルダSam″°内のフォルダFred”へ移動せよ) 最初のコマンドであるFocus on Deskto
p″NewWaveoffice”はクラス独立コマン
ドであり、第5図に示す作業言工吾コンパイラ 120
によって一旦コンパイルされると、エージェントエンジ
ン108によって実行できる。後に詳述するように、こ
のFO−ct+sコマンドはアプリケーション“Ne虫
1すave 0ff−ice″°に焦点を合わせる。こ
のことは、作業官署指令は、可能であるなら、クラス依
存コマンドとして取り扱われ、実行されるためにアプリ
ケーション″NewQIVava 0ffice”に送
られることを意味する。
liave 0ffice(デスクトップ” Newl
Wave Of f ice”に焦点を合わせよ) SεしECT Document J o e
”よ (文書“Joe”を選択せダ) !、l0VE TOFolcjer Fred’
lすITHIN Folder ”Sam(フォ
ルダSam″°内のフォルダFred”へ移動せよ) 最初のコマンドであるFocus on Deskto
p″NewWaveoffice”はクラス独立コマン
ドであり、第5図に示す作業言工吾コンパイラ 120
によって一旦コンパイルされると、エージェントエンジ
ン108によって実行できる。後に詳述するように、こ
のFO−ct+sコマンドはアプリケーション“Ne虫
1すave 0ff−ice″°に焦点を合わせる。こ
のことは、作業官署指令は、可能であるなら、クラス依
存コマンドとして取り扱われ、実行されるためにアプリ
ケーション″NewQIVava 0ffice”に送
られることを意味する。
説明を簡単にするため、アプリケーション″NewWa
ve Of f ice”をアプリケーション 100
であるとする。
ve Of f ice”をアプリケーション 100
であるとする。
2番目と3番目のコマンドである旺LECT Docu
m−ent ”Joe″および!、l0VE TOF
older ”Fred” l’1lTHINFold
er ”5alT+”はクラス依存コマンドである。こ
れ命のクラス依存コマンドは作業官署コンパイラ120
によってPコード形式にコンパイルされてからエージェ
ントエンジン108によって受は取られろ。エージェン
トエンジン108は、Pコード形式からクラス依存コマ
ンドを外部形式で抜き出して、これらのクラス依存コマ
ンドをアプリケーション100へ送る。アプリケーショ
ン 100のユーザD(乍インターフェース要素145
はこの外部コマンドを含むメツセージを受は取り、この
メツセージを再生メツセージテスト要素150へ進める
。再生メツセージテスト要素150はこのコマンド内部
向は翻訳プロセッサ128へ送り出す。内部向は翻訳プ
ロセンサ128はこのコマンドを外部形式から内部正式
へ翻訳し、内部形式のコマンドを再生テスト要素150
へ戻す。この内部形式のコマンドは次にコマンドインタ
ーフェース要素146と、モーダルダイアローブボック
ステスト要素152と、コマンドテスト要素151を経
て、コマンドプロセッサ 102へ送られる。コマンド
プロセッサ 102はこのコマンドを実行する。
m−ent ”Joe″および!、l0VE TOF
older ”Fred” l’1lTHINFold
er ”5alT+”はクラス依存コマンドである。こ
れ命のクラス依存コマンドは作業官署コンパイラ120
によってPコード形式にコンパイルされてからエージェ
ントエンジン108によって受は取られろ。エージェン
トエンジン108は、Pコード形式からクラス依存コマ
ンドを外部形式で抜き出して、これらのクラス依存コマ
ンドをアプリケーション100へ送る。アプリケーショ
ン 100のユーザD(乍インターフェース要素145
はこの外部コマンドを含むメツセージを受は取り、この
メツセージを再生メツセージテスト要素150へ進める
。再生メツセージテスト要素150はこのコマンド内部
向は翻訳プロセッサ128へ送り出す。内部向は翻訳プ
ロセンサ128はこのコマンドを外部形式から内部正式
へ翻訳し、内部形式のコマンドを再生テスト要素150
へ戻す。この内部形式のコマンドは次にコマンドインタ
ーフェース要素146と、モーダルダイアローブボック
ステスト要素152と、コマンドテスト要素151を経
て、コマンドプロセッサ 102へ送られる。コマンド
プロセッサ 102はこのコマンドを実行する。
エージェントエンジン 108はウィンドウ 205を
活動状態とすることによって、コマンドFOCIJS
onDesktop″NevrQ’/1aveOf f
ice”を実行する。今や、カーソル200の位置は
、ウィンドウ 205の座標に関して判定される。
活動状態とすることによって、コマンドFOCIJS
onDesktop″NevrQ’/1aveOf f
ice”を実行する。今や、カーソル200の位置は
、ウィンドウ 205の座標に関して判定される。
コマンドプロセッサ 102がコマンド5ELECT
Doc−ument ”Joe”を受は取ると、コマン
ドプロセッサ102によってオブジェクト“Joe“′
が選択される。
Doc−ument ”Joe”を受は取ると、コマン
ドプロセッサ102によってオブジェクト“Joe“′
が選択される。
オブジェクト“Joe””はウィンドウ 205内にあ
るので別に問合わせをす・る必要はない。
るので別に問合わせをす・る必要はない。
コマンド!、l0VE To Folder ”Fr
ed” lすITHIN Fold−er″Sam’″
についての内部コマンドを作るときに、内部向は翻訳プ
ロセッサ 128はオーブンされているウィンドウの各
々に’API INTERROGATE ’IsG
”を送る。このメツセージの機能は“API l’1
HOARE YO[I FN”t?ある。
ed” lすITHIN Fold−er″Sam’″
についての内部コマンドを作るときに、内部向は翻訳プ
ロセッサ 128はオーブンされているウィンドウの各
々に’API INTERROGATE ’IsG
”を送る。このメツセージの機能は“API l’1
HOARE YO[I FN”t?ある。
フォルダS a m ”についてのウィンドウがこのメ
ツセージを受は取ると、このウィンドウはこれに応答し
て“Folder ’Sam’−(私はフォルダ” S
am”である)を戻す。内部向は翻訳プロセッサ128
はFN”(API機能「どこにいるか」)である。フォ
ルダFred”がパラメタとして含まれている。このメ
ツセージは、ウィンドウ 204内でのフォルダ”F−
red”座標を示すデータを返すフォルダSam’″へ
送られる。次に内部向は闘訳プロセッサ128が内部形
式のコマンドIJOVE To Folder″Fr
ed’ WITHINFolder ’Sam”を生成
する。コマンドプロセッサ102はこのコマンドを受は
取って、オブジェクト“JOe″をフォルダFred”
に転送する。
ツセージを受は取ると、このウィンドウはこれに応答し
て“Folder ’Sam’−(私はフォルダ” S
am”である)を戻す。内部向は翻訳プロセッサ128
はFN”(API機能「どこにいるか」)である。フォ
ルダFred”がパラメタとして含まれている。このメ
ツセージは、ウィンドウ 204内でのフォルダ”F−
red”座標を示すデータを返すフォルダSam’″へ
送られる。次に内部向は闘訳プロセッサ128が内部形
式のコマンドIJOVE To Folder″Fr
ed’ WITHINFolder ’Sam”を生成
する。コマンドプロセッサ102はこのコマンドを受は
取って、オブジェクト“JOe″をフォルダFred”
に転送する。
作業言語ファイル121はユーザによって、また記録に
よって書き込まれたコンパイルされるコードによって作
成できる。第5図には作業言語コンパイラ 120を通
るデータフローが示されている。
よって書き込まれたコンパイルされるコードによって作
成できる。第5図には作業言語コンパイラ 120を通
るデータフローが示されている。
作業言語ファイル131にはユーザが書き込んだコマン
ドが入っている。
ドが入っている。
作業言語コンパイラ 120は2バスコンパイラである
。第1バスで使用されるルーチンには、入力ストリーム
プロセッサ 164と、式パーザ(expres−si
on parser) 166と、クラス独立パーザ1
22と、保存ファイルバッファ (save fil
e bufferH71と、第2バスルーチン群と、ク
ラス依存パーザ123.167.168として図示され
ているクラス依存パーザ群等がある。第1バスにより、
−時ファイル176が作成される。
。第1バスで使用されるルーチンには、入力ストリーム
プロセッサ 164と、式パーザ(expres−si
on parser) 166と、クラス独立パーザ1
22と、保存ファイルバッファ (save fil
e bufferH71と、第2バスルーチン群と、ク
ラス依存パーザ123.167.168として図示され
ているクラス依存パーザ群等がある。第1バスにより、
−時ファイル176が作成される。
クラス独立パーザ122は種々のクラス独立作業言2吾
コマンドを構文解析する。システムで実行される各アプ
リケーションはそのアプリケーションが実行する特別の
コマンドを有している。したがって各アプリケーション
用に各々別個のクラス依存パーザが開発される。このパ
ーザはその開発の目的となっているアプリケーションに
よって実行されるコマンドを構文解析することができる
。アプリケーションがシステムに追加したりあるいはシ
ステムから抹消したりする隙、作業言語コンピュータ
120にクラス依存パーザを、追加したりそこから抹消
したりしてよい。
コマンドを構文解析する。システムで実行される各アプ
リケーションはそのアプリケーションが実行する特別の
コマンドを有している。したがって各アプリケーション
用に各々別個のクラス依存パーザが開発される。このパ
ーザはその開発の目的となっているアプリケーションに
よって実行されるコマンドを構文解析することができる
。アプリケーションがシステムに追加したりあるいはシ
ステムから抹消したりする隙、作業言語コンピュータ
120にクラス依存パーザを、追加したりそこから抹消
したりしてよい。
コンパイルが開始されると、クラス独立パーザ122は
入力ストリームプロセッサ 164に対してトークンを
要求する。人力ストリームプロセッサ164は作業言語
ファイル131を走査してトークンを作成する。次にク
ラス独立パーザ122はいくつかの事柄のうちの1つを
実行する。クラス独立パーザ122は保存ファイルバッ
ファ 171に送るためのPコードを生成することがで
きる。クラス独立パーザ122が次のトークンは式であ
るはずであると予期しているならば、クラス独立パーザ
122は式パーザ166を呼出すルーチン!、1ake
Expression()を呼出す。式パーザ166
は、式が完成するまで、人力ストリームプロセッサ 1
64に対してトークンを要求する。次に、式パーザ16
6は、ファイルバッファ 171に送られ、その後−時
ファイル176に保存されるPコードを生成する。これ
に加えて、式パーザ166は入力ストリームプロセッサ
164に戻される弐トークンも生成する。入力ストリー
ムプロセッサ 164は、クラス独立パー、ザ122か
ら要求された場合は、この式トークンをクラス独立パー
ザ122に送る。
入力ストリームプロセッサ 164に対してトークンを
要求する。人力ストリームプロセッサ164は作業言語
ファイル131を走査してトークンを作成する。次にク
ラス独立パーザ122はいくつかの事柄のうちの1つを
実行する。クラス独立パーザ122は保存ファイルバッ
ファ 171に送るためのPコードを生成することがで
きる。クラス独立パーザ122が次のトークンは式であ
るはずであると予期しているならば、クラス独立パーザ
122は式パーザ166を呼出すルーチン!、1ake
Expression()を呼出す。式パーザ166
は、式が完成するまで、人力ストリームプロセッサ 1
64に対してトークンを要求する。次に、式パーザ16
6は、ファイルバッファ 171に送られ、その後−時
ファイル176に保存されるPコードを生成する。これ
に加えて、式パーザ166は入力ストリームプロセッサ
164に戻される弐トークンも生成する。入力ストリー
ムプロセッサ 164は、クラス独立パー、ザ122か
ら要求された場合は、この式トークンをクラス独立パー
ザ122に送る。
F(]Il”USコマンドを実行すると、特定のクラス
依存パーザが優先権を持つ。従って、クラス独立スキャ
ナ 122aはその構文解析ループ内で現在焦点を合わ
せているアプリケーショ。ン用のクラス依存パーザを呼
出す。このクラス依存パーザは、クラス依存パーザによ
り呼出された意味ルーチンを外部コマンド形式に変換す
るクラス依存コマンドを受は取るまで、あるいはクラス
依存パーザが受は取った式を構文解析することができな
いと判所するまで、入力ストリームプロセッサ 164
に対してトークンを要求する。クラス独立パーザが式に
出会うと、それはMaka’1Expression
()を用いて式パーザ166を呼出すことができる。ク
ラス依存パーザが受は取ったトークンを構文解析するこ
とができない場合は、このクラス依存パーザはエラーを
戻し、クラス独立パーザがこのトークンを構文解析しよ
うとする。
依存パーザが優先権を持つ。従って、クラス独立スキャ
ナ 122aはその構文解析ループ内で現在焦点を合わ
せているアプリケーショ。ン用のクラス依存パーザを呼
出す。このクラス依存パーザは、クラス依存パーザによ
り呼出された意味ルーチンを外部コマンド形式に変換す
るクラス依存コマンドを受は取るまで、あるいはクラス
依存パーザが受は取った式を構文解析することができな
いと判所するまで、入力ストリームプロセッサ 164
に対してトークンを要求する。クラス独立パーザが式に
出会うと、それはMaka’1Expression
()を用いて式パーザ166を呼出すことができる。ク
ラス依存パーザが受は取ったトークンを構文解析するこ
とができない場合は、このクラス依存パーザはエラーを
戻し、クラス独立パーザがこのトークンを構文解析しよ
うとする。
Focus OFFコマンドを実行する、と、クラス独
立パーザ122は全てのコマンドをクラス依存パーザに
送らずに直ちに構文解析するようになる。クラス独立コ
マンドの素列が構文解析されているときには、クラス依
存パーザソフトウェアの不必要な実行を避けることがで
き、ひいては作業言語をコンパイルするのに必要な計算
時間が節約される。
立パーザ122は全てのコマンドをクラス依存パーザに
送らずに直ちに構文解析するようになる。クラス独立コ
マンドの素列が構文解析されているときには、クラス依
存パーザソフトウェアの不必要な実行を避けることがで
き、ひいては作業言語をコンパイルするのに必要な計算
時間が節約される。
第19図には、クラス独立パーザ122と、クラス従属
パーザ123.125として図示されているクラス依存
パーザとの間のデータフローが示されている。これらの
パーザ間の関係に論点を絞るため、第19図の説明では
スキャナ122aによる式ノX11−ザ166への呼出
しは考慮に入れないことにする。
パーザ123.125として図示されているクラス依存
パーザとの間のデータフローが示されている。これらの
パーザ間の関係に論点を絞るため、第19図の説明では
スキャナ122aによる式ノX11−ザ166への呼出
しは考慮に入れないことにする。
クラス独立パーザ122がトークンを構文解析する準備
ができると、クラス独立パーザ122はスキャナルーチ
ン122aを呼出す。スキャナ 122aはアプリケー
ションに焦点が合わせられているか否かをチエツクする
。アプリケーションに焦点が合わせられていない場合は
、スキャナ 122aは人力ストリームプロセッサ 1
64を呼出し、このプロセッサ164はスキ丁す122
alこトー、クンを戻す。スキ丁す 122aはこのト
ークンをクラス独立ノマーザ122aに戻す。
ができると、クラス独立パーザ122はスキャナルーチ
ン122aを呼出す。スキャナ 122aはアプリケー
ションに焦点が合わせられているか否かをチエツクする
。アプリケーションに焦点が合わせられていない場合は
、スキャナ 122aは人力ストリームプロセッサ 1
64を呼出し、このプロセッサ164はスキ丁す122
alこトー、クンを戻す。スキ丁す 122aはこのト
ークンをクラス独立ノマーザ122aに戻す。
アプリケーション上に焦点が合わせられている場合は、
そのアプリケーション用のクラス依存/<−ザに優先権
があるので、これが呼出される。例えば、クラス依存パ
ーサ゛123に対応するアプリケーションに焦点が合っ
ている場合は、クラス依存パーザ123はクラス依存ス
キャナ123aを介してスキャナ122aを呼出す。ス
キャナ122aはその状態をチエツクし、自分がクラス
依存パーザによって呼出されていると判定し、別のクラ
ス依存パーザの再帰呼出しを行なわない。スキャナ12
2aは入力ストリームプロセッサ 164を呼出し、こ
れがスキャナ122aにトークンを戻す。スキャナ12
2aはクラス依存スキャナ123aを介してクラス依存
パーザ123にトークンを戻す。本発明のこの実施例は
クラス依存スキャナ123aを含むが、別の実施例では
クラス依存スキャナ123aを使わず、クラス依存パー
ザ123が直接スキャナ122aを呼出してもよい。
そのアプリケーション用のクラス依存/<−ザに優先権
があるので、これが呼出される。例えば、クラス依存パ
ーサ゛123に対応するアプリケーションに焦点が合っ
ている場合は、クラス依存パーザ123はクラス依存ス
キャナ123aを介してスキャナ122aを呼出す。ス
キャナ122aはその状態をチエツクし、自分がクラス
依存パーザによって呼出されていると判定し、別のクラ
ス依存パーザの再帰呼出しを行なわない。スキャナ12
2aは入力ストリームプロセッサ 164を呼出し、こ
れがスキャナ122aにトークンを戻す。スキャナ12
2aはクラス依存スキャナ123aを介してクラス依存
パーザ123にトークンを戻す。本発明のこの実施例は
クラス依存スキャナ123aを含むが、別の実施例では
クラス依存スキャナ123aを使わず、クラス依存パー
ザ123が直接スキャナ122aを呼出してもよい。
クラス依存パーザ123は、それが受は取ったトークン
を構文解析し得る限り、クラス依存スキャナ123aを
介してトークンを要求し続ける。それらのトークンと共
に、クラス依存パーザは意味ルーチン(semanti
c routines)を呼出し、これら意味ルーチン
は、Pコード内に埋め込まれたクラス依存外部コマンド
を生成する。クラス依存パーザ123が受は取ったトー
クンを構文解析できない場合は、そのクラス依存パーザ
はスキャナ122aにエラーを返す。この場合、スキャ
ナ 122aは入力ストリームプロセッサ 164を呼
出して、クラス依存パーザが構文解析できなかったトー
クンを入力ストリームプロセッサ 164から受は取る
。このトークンはクラス独立パーザ122に返される。
を構文解析し得る限り、クラス依存スキャナ123aを
介してトークンを要求し続ける。それらのトークンと共
に、クラス依存パーザは意味ルーチン(semanti
c routines)を呼出し、これら意味ルーチン
は、Pコード内に埋め込まれたクラス依存外部コマンド
を生成する。クラス依存パーザ123が受は取ったトー
クンを構文解析できない場合は、そのクラス依存パーザ
はスキャナ122aにエラーを返す。この場合、スキャ
ナ 122aは入力ストリームプロセッサ 164を呼
出して、クラス依存パーザが構文解析できなかったトー
クンを入力ストリームプロセッサ 164から受は取る
。このトークンはクラス独立パーザ122に返される。
クラス独立パーザ122はこのトークンを構文解析し、
エージェントエンジン10已によって実行するためのP
コードを生成する意味ルーチンを呼出す。クラス独立パ
ーザ122がスキャナ122aにトークンを要求した後
、スキャナ122aは、FOCUS OFF :]マン
トが現れるまで、あるいは別、のアプリケーションに焦
点が合わせられるまで、再びクラス依存パーザ123を
呼出す。
エージェントエンジン10已によって実行するためのP
コードを生成する意味ルーチンを呼出す。クラス独立パ
ーザ122がスキャナ122aにトークンを要求した後
、スキャナ122aは、FOCUS OFF :]マン
トが現れるまで、あるいは別、のアプリケーションに焦
点が合わせられるまで、再びクラス依存パーザ123を
呼出す。
クラス異存パーザ124に対応するアプリケーションに
焦点が合っている場合は、スキャナ122aはクラス依
存パーザ124を呼出す。クラス依存パーザ124はク
ラス依存スキャナ 124aを呼出して、クラス依存パ
ーザ123と同様に動作する。
焦点が合っている場合は、スキャナ122aはクラス依
存パーザ124を呼出す。クラス依存パーザ124はク
ラス依存スキャナ 124aを呼出して、クラス依存パ
ーザ123と同様に動作する。
第5図に示した保存ファイルバッファ 171はクラス
独立パーザ122および式パーザ166からPコードを
受は取り、クラス依存パーザから、Pコード内に埋込ま
れた外部形式のコマンドを受は取る。
独立パーザ122および式パーザ166からPコードを
受は取り、クラス依存パーザから、Pコード内に埋込ま
れた外部形式のコマンドを受は取る。
保存ファイルバッファ 171はこの情報を一時フアイ
ル176に記憶する。第2バスルーチン174は一時フ
アイル176に記憶されたPコードと外部形式のコマン
ドを取り出し、作業言語ファイル121を生成するため
、例えばアドレスを決定する等の準〔発明の効果〕 以上詳細に説明したように、本発明によれば、アプリケ
ーションのシステムへの追加やそこからの削除に柔軟に
対応できる、システム全体のためのモジエラコンパイラ
が得られる。
ル176に記憶する。第2バスルーチン174は一時フ
アイル176に記憶されたPコードと外部形式のコマン
ドを取り出し、作業言語ファイル121を生成するため
、例えばアドレスを決定する等の準〔発明の効果〕 以上詳細に説明したように、本発明によれば、アプリケ
ーションのシステムへの追加やそこからの削除に柔軟に
対応できる、システム全体のためのモジエラコンパイラ
が得られる。
第1図はアプリケーション、エージェント環境およびヘ
ルプ環境の間の相互作用を示す図、第2図はどのように
して作業言語ファイルが生成され実行されるかを示す図
、 第3図は第1図中に示されたアプリケーションの構成を
示す図、 第4図は第1図中に示されたアプリケーションのデータ
フローを示す図、 第5図はコンパイラの構成を示す図、 第6図はコンピュータ、モニタ、キーボードおよびマウ
スを示す図、 第7図は第6図中のマウスの上面図、 第8図ないし第18図はユーザとの対話中に第6図中の
モニタに現れる画面を示す図、第19図は第5図中に示
されたコンパイラのデータフローを示す図である。 14:モニタ 18:コンピュータ 19:キーボード 20:マウス 27.2日:ボタン 100ニアプリ゛ケーシヨン 101:動作プロセッサ 102:コマンドプロセッサ 103:ヘルプアプリケーション 104:ヘルプテキスト 105:ヘルプツール 107:エージェントタスク 108:エージェントエンジン 111:ユーザ 112:ソフトウェア環境 118:エージェント環境 119:ヘルプ環境 120:作業言語コンパイラ にPコードファイル 2:クラス独立パーザ 2a:スキャナ 3.124:クラス依存パーザ 3a、124a:クラス依存スキャナ 5:クラス独立レコーダ 6.127:クラス依存レコーダ 8:内部向は翻訳プロセッサ 9:外部向は翻訳プロセッサ 0:APl 1二作業言語ファイル 2:エージェント作業エディタ 1:モードなしユーザ動作インタフェース要素 142:モードなし動作プロセッサ 143:モードなしコマンドインタフェース要素 144:アプリケーションデータ 145:ユーザ動作インタフェース要素146:コマン
ドインタフェース要素 147:リターンインタフェース要素 148:モーダルダイアローブボックスプロセッサ 149:エラーダイローブボックス要素150:再生メ
ツセージテスト要素 151:コマンドテスト要素 164:入力ストリームプロセッサ 166:式パーザ 167.168:クラス依存パーザ 171:保存ファイルバッファ 174:第2バスルーチン群 176:−時ファイル 200:カーソル 204.205:ウィンドウ
ルプ環境の間の相互作用を示す図、第2図はどのように
して作業言語ファイルが生成され実行されるかを示す図
、 第3図は第1図中に示されたアプリケーションの構成を
示す図、 第4図は第1図中に示されたアプリケーションのデータ
フローを示す図、 第5図はコンパイラの構成を示す図、 第6図はコンピュータ、モニタ、キーボードおよびマウ
スを示す図、 第7図は第6図中のマウスの上面図、 第8図ないし第18図はユーザとの対話中に第6図中の
モニタに現れる画面を示す図、第19図は第5図中に示
されたコンパイラのデータフローを示す図である。 14:モニタ 18:コンピュータ 19:キーボード 20:マウス 27.2日:ボタン 100ニアプリ゛ケーシヨン 101:動作プロセッサ 102:コマンドプロセッサ 103:ヘルプアプリケーション 104:ヘルプテキスト 105:ヘルプツール 107:エージェントタスク 108:エージェントエンジン 111:ユーザ 112:ソフトウェア環境 118:エージェント環境 119:ヘルプ環境 120:作業言語コンパイラ にPコードファイル 2:クラス独立パーザ 2a:スキャナ 3.124:クラス依存パーザ 3a、124a:クラス依存スキャナ 5:クラス独立レコーダ 6.127:クラス依存レコーダ 8:内部向は翻訳プロセッサ 9:外部向は翻訳プロセッサ 0:APl 1二作業言語ファイル 2:エージェント作業エディタ 1:モードなしユーザ動作インタフェース要素 142:モードなし動作プロセッサ 143:モードなしコマンドインタフェース要素 144:アプリケーションデータ 145:ユーザ動作インタフェース要素146:コマン
ドインタフェース要素 147:リターンインタフェース要素 148:モーダルダイアローブボックスプロセッサ 149:エラーダイローブボックス要素150:再生メ
ツセージテスト要素 151:コマンドテスト要素 164:入力ストリームプロセッサ 166:式パーザ 167.168:クラス依存パーザ 171:保存ファイルバッファ 174:第2バスルーチン群 176:−時ファイル 200:カーソル 204.205:ウィンドウ
Claims (4)
- (1)複数のアプリケーションおよびエージェントエン
ジンを有するコンピュータシステムにおいて、以下の(
a)および(b)を設けてなるモジュラコンパイラ: (a)クラス独立パーザ:前記エージェントエンジンに
よって実行されるべきコマンドを含むプログラムコード
を構文解析する; (b)複数のクラス依存パーザ:各クラス依存パーザは
前記複数のアプリケーションの一つに関連付けられて当
該アプリケーションによって実行されるべきコマンドを
含むプログラムコードを構文解析することができるとと
もに、各クラス依存パーザはそれに関連付けられたアプ
リケーションが前記コンピュータシステムに付加されあ
るいはそこから除去される時前記モジュラコンパイラに
付加されあるいはそこから除去される。 - (2)複数のアプリケーションおよびエージェントエン
ジンを有するコンピュータシステムにおいて、以下の(
a)ないし(e)を設けてなるモジュラコンパイラ: (a)クラス独立パーザ:前記エージェントエンジンに
よって実行されるべきコマンドを含むプログラムコード
を構文解析する; (b)第1スキャナルーチン:前記クラス独立パーザか
ら呼ばれた時、前記クラス独立パーザにトークンを戻す
; (c)複数のクラス依存パーザ:前記第1スキャナルー
チンから呼ばれ、各クラス依存パーザは別個のコマンド
セットを構文解析する; (d)複数のスキャナルーチン:これら複数のスキャナ
ルーチンのうちのひとつのスキャナルーチンは前記複数
のクラス依存パーザのうちのひとつのクラス依存パーザ
から呼ばれることにより、各クラス依存パーザがそれ自
身のスキャナルーチンを呼ぶようにし、また呼ばれた前
記スキャナルーチンは呼び出しを行った前記クラス依存
パーザにトークンを戻す; (e)入力ストリームプロセッサ:前記第1スキャナル
ーチンおよび前記複数のスキャナルーチンのうちの各々
のスキャナルーチンから呼ばれ、呼び出しを行ったスキ
ャナルーチンにトークンを戻す。 - (3)コンピュータシステムにおいて、下記のステップ
(a)および(b)を含み、プログラムコードをエージ
ェントエンジンおよび夫々が異なるコマンドセットを実
行することができる複数のアプリケーションによって実
行されるべきコマンドにコンパイルする方法: (a)前記エージェントエンジンによって実行されるべ
きコマンドを含むプログラムコードをクラス独立パーザ
を使用して構文解析する; (b)アプリケーションによって実行されるべきコマン
ドを含むプログラムコードを当該アプリケーションに関
連付けられたクラス依存パーザで構文解析する。 - (4)コンピュータシステムにおいて、以下のステップ
(a)ないし(c)を含み、クラス独立パーザと、少な
くともひとつのクラス依存パーザと、前記クラス独立パ
ーザ用のクラス独立スキャナルーチンと、前記クラス依
存パーザの各々のためのクラス依存スキャナルーチンと
を用いて、コードを生成する方法: (a)前記クラス独立パーザから前記クラス独立スキャ
ナを呼ぶ; (b)第1のクラス依存パーザが優先権を持っている場
合は以下のステップ(b−1)ないし(b−5)を実行
する; (b−1)前記クラス独立スキャナルーチンから前記第
1のクラス依存パーザを呼ぶ; (b−2)前記第1のクラス依存パーザからそのための
第1のクラス依存スキャナルーチンを少なくとも1回呼
ぶ; (b−3)前記第1のクラス依存パーザが前記第1のク
ラス依存スキャナルーチンを呼ぶ毎に、前記第1のクラ
ス依存スキャナルーチンから前記第1のクラス依存パー
ザへトークンを戻す;(b−4)前記第1のクラス依存
パーザを用いて、前記第1のクラス依存スキャナルーチ
ンから受信されたトークンの構文解析を試みる;(b−
5)前記第1のクラス依存パーザが前記第1のクラス依
存スキャナルーチンから受信されたトークンを構文解析
できない場合には、前記第1のクラス依存パーザから前
記クラス独立スキャナルーチンへエラーを戻す; (c)前記クラス独立スキャナルーチンから前記クラス
独立パーザへトークンを戻す。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/197,795 US4914585A (en) | 1988-05-23 | 1988-05-23 | Modular complier with a class independent parser and a plurality of class dependent parsers |
| US197,795 | 1994-02-15 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0237455A true JPH0237455A (ja) | 1990-02-07 |
| JP2842889B2 JP2842889B2 (ja) | 1999-01-06 |
Family
ID=22730798
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1129992A Expired - Fee Related JP2842889B2 (ja) | 1988-05-23 | 1989-05-23 | モジュラコンパイラ |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US4914585A (ja) |
| EP (1) | EP0343883B1 (ja) |
| JP (1) | JP2842889B2 (ja) |
| KR (1) | KR970007760B1 (ja) |
| CN (1) | CN1018206B (ja) |
| AU (1) | AU617776B2 (ja) |
| CA (1) | CA1331887C (ja) |
| DE (1) | DE68926835T2 (ja) |
| HK (1) | HK33197A (ja) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5276880A (en) * | 1989-12-15 | 1994-01-04 | Siemens Corporate Research, Inc. | Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses |
| US5204960A (en) * | 1990-01-08 | 1993-04-20 | Microsoft Corporation | Incremental compiler |
| BR9205331A (pt) * | 1991-06-28 | 1994-06-21 | Ericsson Telefon Ab L M | Processo de estruturaçao e sistema de software para controlar uma central de telecomunicaçoes controlada por programa amazenado |
| US5386570A (en) * | 1993-05-24 | 1995-01-31 | Hewlett-Packard Company | Method for a two pass compiler with the saving parse states from first to second pass |
| WO1996011532A2 (en) * | 1994-09-30 | 1996-04-18 | Philips Electronics N.V. | Multimedia system receptive for presentation of mass data comprising an application program inclusive of a multiplatform interpreter, and a platform subsystem arranged for interaction with said multiplatform interpreter, and mass memory for use with such system or subsystem |
| US6401080B1 (en) | 1997-03-21 | 2002-06-04 | International Business Machines Corporation | Intelligent agent with negotiation capability and method of negotiation therewith |
| US6192354B1 (en) | 1997-03-21 | 2001-02-20 | International Business Machines Corporation | Apparatus and method for optimizing the performance of computer tasks using multiple intelligent agents having varied degrees of domain knowledge |
| US6085178A (en) * | 1997-03-21 | 2000-07-04 | International Business Machines Corporation | Apparatus and method for communicating between an intelligent agent and client computer process using disguised messages |
| TW504632B (en) | 1997-03-21 | 2002-10-01 | Ibm | Apparatus and method for optimizing the performance of computer tasks using intelligent agent with multiple program modules having varied degrees of domain knowledge |
| US5991539A (en) * | 1997-09-08 | 1999-11-23 | Lucent Technologies, Inc. | Use of re-entrant subparsing to facilitate processing of complicated input data |
| KR20010076775A (ko) * | 2000-01-28 | 2001-08-16 | 오길록 | 스크립트 자동 생성 에이전트 및 그 방법 |
| US7089541B2 (en) * | 2001-11-30 | 2006-08-08 | Sun Microsystems, Inc. | Modular parser architecture with mini parsers |
| US7480657B1 (en) * | 2003-01-06 | 2009-01-20 | Cisco Technology, Inc. | Caching information for multiple service applications |
| US8334995B2 (en) * | 2007-09-19 | 2012-12-18 | Sharp Laboratories Of America, Inc. | Method and system for adaptive control of imaging node |
| CN102012900B (zh) * | 2009-09-04 | 2013-01-30 | 阿里巴巴集团控股有限公司 | 信息检索方法和系统 |
| US10379825B2 (en) | 2017-05-22 | 2019-08-13 | Ab Initio Technology Llc | Automated dependency analyzer for heterogeneously programmed data processing system |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4787035A (en) * | 1985-10-17 | 1988-11-22 | Westinghouse Electric Corp. | Meta-interpreter |
| CA1267229A (en) * | 1986-03-10 | 1990-03-27 | Randal H. Kerr | Reconfigurable automatic tasking system |
-
1988
- 1988-05-23 US US07/197,795 patent/US4914585A/en not_active Expired - Lifetime
-
1989
- 1989-03-20 AU AU31517/89A patent/AU617776B2/en not_active Ceased
- 1989-04-06 CA CA000595973A patent/CA1331887C/en not_active Expired - Fee Related
- 1989-04-10 CN CN89102064A patent/CN1018206B/zh not_active Expired
- 1989-05-19 DE DE68926835T patent/DE68926835T2/de not_active Expired - Fee Related
- 1989-05-19 EP EP89305120A patent/EP0343883B1/en not_active Expired - Lifetime
- 1989-05-23 KR KR1019890006886A patent/KR970007760B1/ko not_active Expired - Fee Related
- 1989-05-23 JP JP1129992A patent/JP2842889B2/ja not_active Expired - Fee Related
-
1997
- 1997-03-20 HK HK33197A patent/HK33197A/en not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| CN1018206B (zh) | 1992-09-09 |
| DE68926835D1 (de) | 1996-08-22 |
| US4914585A (en) | 1990-04-03 |
| EP0343883A2 (en) | 1989-11-29 |
| CA1331887C (en) | 1994-09-06 |
| KR970007760B1 (ko) | 1997-05-16 |
| KR900018809A (ko) | 1990-12-22 |
| EP0343883A3 (en) | 1990-07-11 |
| DE68926835T2 (de) | 1996-11-21 |
| AU617776B2 (en) | 1991-12-05 |
| EP0343883B1 (en) | 1996-07-17 |
| AU3151789A (en) | 1989-11-23 |
| CN1037977A (zh) | 1989-12-13 |
| JP2842889B2 (ja) | 1999-01-06 |
| HK33197A (en) | 1997-03-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6434629B1 (en) | Computing system which implements recording and playback of semantic commands | |
| US5317688A (en) | Software agent used to provide instruction to a user for a plurality of computer applications | |
| Ousterhout | Tcl: An embeddable command language | |
| US6766513B2 (en) | Method and system of memory management using stack walking | |
| US5586328A (en) | Module dependency based incremental compiler and method | |
| JPH0237455A (ja) | モジュラコンパイラ | |
| Kelsey et al. | A tractable Scheme implementation | |
| US20050034109A1 (en) | Method and system for program editing | |
| Gisi et al. | Extending a tool integration language | |
| Ladd et al. | Programming the Web: An application-oriented language for hypermedia service programming | |
| JPH07141201A (ja) | 2パスコンパイラのための改良された方法 | |
| AU631128B2 (en) | Software agent used to provide instruction to a user for a plurality of computer applications | |
| US5970250A (en) | System, method, and computer program product for scoping operating system semanticis in a computing environment supporting multi-enclave processes | |
| Stewart et al. | Dynamic applications from the ground up | |
| US20030117417A1 (en) | Generic application flow management system and method | |
| US6769119B1 (en) | System, method, and computer program product for scoping operating system semantics in a computing environment supporting multi-enclave processes | |
| Felgentreff et al. | Squimera: A live, Smalltalk-based IDE for dynamic programming languages | |
| Korn | Tksh: A Tcl Library for KornShell. | |
| CN121255182A (zh) | 一种嵌入式用户界面系统、设计方法以及智能设备 | |
| Hari et al. | CHILL toolset for C-DOT DSS | |
| Al-Sharif et al. | UDB: An Agent-Oriented Source-Level Debugger | |
| Clément et al. | Centaur: the system | |
| Chakravarty | Dynamic Applications From the Ground Up | |
| Gabriel | Lucid, Inc. April 7, 1993 | |
| JPH0588934A (ja) | デバツグ方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |