JPH07319698A - プログラム実行装置 - Google Patents

プログラム実行装置

Info

Publication number
JPH07319698A
JPH07319698A JP10972494A JP10972494A JPH07319698A JP H07319698 A JPH07319698 A JP H07319698A JP 10972494 A JP10972494 A JP 10972494A JP 10972494 A JP10972494 A JP 10972494A JP H07319698 A JPH07319698 A JP H07319698A
Authority
JP
Japan
Prior art keywords
integration
executed
activated
execution
pair
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10972494A
Other languages
English (en)
Inventor
Toru Araya
徹 荒谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP10972494A priority Critical patent/JPH07319698A/ja
Publication of JPH07319698A publication Critical patent/JPH07319698A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 起動されたメソッドと共に、そのメソッドと
一体化して実行されるべき他のメソッドを一緒に実行す
る機構を有するプログラム実行装置を提供する。 【構成】 メソッド実行手段3は、オブジェクト・メソ
ッド格納手段1に格納されているオブジェクトやメソッ
ドを参照し、メソッド中の命令を実行する。実行する命
令がメソッドの起動命令であれば、起動命令が指定する
メソッドに対してメソッド起動手段4を呼び出す。メソ
ッド起動手段4は、起動すべきメソッドに対して一体化
判定手段5を起動し、その判定の結果が真であるなら、
メソッド一体化実行手段6を起動する。メソッド一体化
実行手段6は、メソッド一体化情報管理手段2内のテー
ブルを参照し、与えられたオブジェクトとそのメソッド
の対が格納されているテーブルに登録されている全ての
メソッドを、メソッド実行手段3で実行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オブジェクトの指向言
語で記述されたプログラムおよび手続型言語で記述され
たオブジェクト指向のプログラムを実行する計算機シス
テムに関するものである。
【0002】
【従来の技術】オブジェクト指向のプログラムとは、オ
ブジェクトによって構成されたプログラムであり、オブ
ジェクトは、データと、それを操作するための手続き
(メソッド)から構成される。メソッドは、オブジェク
トに付随した存在として扱われる点が通常の手続型言語
の手続きとは異なる。もちろん、手続型言語によりオブ
ジェクト指向のプログラムを構成することは可能であ
る。
【0003】オブジェクト指向のプログラムは、例え
ば、グラフィカルユーザインターフェースを持つアプリ
ケーションプログラムの実現などに用いることができ
る。グラフィカルユーザインターフェースを持つアプリ
ケーションプログラムをオブジェクト指向のプログラム
としてオブジェクト指向言語で記述する場合、一般に、
プログラムを、 1.スクリーンやウィンドウを通じて入出力を行なうた
めのボタンやリスト、スクロールバーといった汎用のユ
ーザインターフェースプログラム(対話部)と、 2.アプリケーションプログラムに固有のデータの操作
や、アルゴリズム等の実行を行なうプログラム(計算
部)の2つの部分に分割した上で、それぞれを1つまた
は複数個のオブジェクトによって構成することができ
る。
【0004】同様のプログラムを、オブジェクト指向言
語ではなく、通常の手続型言語を用いて記述することも
行なわれている。この場合、手続型言語ではオブジェク
トはデータとして、メソッドは手続き(サブルーチン)
として表現される。手続きを起動する際には、オブジェ
クトを表すデータを必ずその引数の1つに指定する。こ
の場合にも、汎用の対話部と、それぞれのアプリケーシ
ョンプログラムに固有の計算部に分割し、それぞれのオ
ブジェクトにより構成することができる。
【0005】このように、プログラムを汎用の対話部と
アプリケーションプログラム固有の計算部に分割するこ
とによって、対話部のオブジェクトをライブラリプログ
ラムとしてあらかじめ用意しておくことが可能となる。
【0006】このとき、アプリケーションプログラムに
おける対話部と計算部は、一方の側のオブジェクトのメ
ソッドが動作したとき、他方の側のオブジェクトのメソ
ッドを連動させる必要がある。例えば、スクリーン上に
表示されているボタンがマウス等により押された際に、
押された状態のボタンをスクリーン上に表示する(フィ
ードバックを行なう)対話部のメソッドと、ボタンが押
された際にアプリケーションの処理を行なう計算部のメ
ソッドは連動する必要がある。また、例えば、ある変数
の値を書き換えるような計算部のメソッドと、これに連
動してその変数の値を実際にスクリーン上に表示する対
話部のメソッドは、連動する必要がある。
【0007】これらの連動を実現する一つの方法とし
て、例えば、対話部または計算部のメソッドを起動する
プログラムの側において、連動して動作すべき対話部と
計算部のメソッドを常に一緒に起動するようにプログラ
ムを記述する方法がある。しかし、この方法では、メソ
ッドを起動する全てのプログラムにおいて、連動する両
方のメソッドを必ず一緒に起動するうにプログラムする
必要があり、プログラムが繁雑になる。
【0008】メソッドの連動を実現する別の方法とし
て、起動された対話部または計算部のメソッドの側にお
いて、それと連動して動作すべき対話部または計算部の
メソッドが起動されるようにプログラムを記述する方法
が考えられる。例えば、対話部の動作に対して計算部を
連動させる場合は、対話部のメソッド中に、計算部のメ
ソッドの呼び出し(いわゆるコールバック)を埋め込
む。逆に、計算部の動作に対して対話部を連動させる場
合は、計算部のメソッド中に対話部のメソッドの呼び出
しを埋め込む。
【0009】図13は、コールバックの一例の説明図で
ある。図13では、対話部の動作に対して計算部を連動
させるために、対話部のメソッド中に計算部のメソッド
の呼び出し(いわゆるコールバック)を埋め込んだ様子
を表わしている。この方法では、対話部や計算部のメソ
ッドを起動するプログラム側では、起動すべきメソッド
だけを起動するように記述すれば良く、連動するメソッ
ドまで起動する必要はない。
【0010】また、この方法において、メソッドの呼び
出しを埋め込む代わりに、特開平4−163630号公
報に記載されているバックポインタを用い、例えば、計
算部のメソッドが起動される際に対話部のメソッドが起
動されるように構成することによって、計算部の動作に
対して対話部を連動さる方法が提案されている。この技
術は、例えば、村田真,増市博,荒谷徹、「ユーザイン
ターフェース構築のためのマルチエージェントモデ
ル」,マルチエージェントと協調計算■−日本ソフトウ
ェア科学会MACC’91,レクチャーノート/ソフト
ウェア学2,近代科学社,1992,pp.139−1
64等に記載されている。
【0011】しかしながら、対話部と計算部の間に双方
向の連動を必要とする場合がある。ここで、2つのメソ
ッドの間の双方向の連動とは、一方のメソッドが実行さ
れる際に、必ず他方のメソッドも実行されることである
とする。図14は、双方向に連動されるメソッドの実行
の説明図である。図14に示した例は、上述の各メソッ
ド内に連動するメソッドを呼び出す記述を行なう方法
で、対話部のメソッドAと計算部のメソッドBは双方向
に連動させようとするものである。対話部のメソッドA
は計算部のメソッドBを呼び出すように記述され、計算
部のメソッドBは対話部のメソッドAを呼び出すように
記述されている。
【0012】このような場合に、例えば、プログラムか
ら対話部のメソッドAが起動されると、対話部のメソッ
ドAの実行中に計算部のメソッドBが起動され、その実
行中に再び対話部のメソッドAが起動されてしまう。こ
のため、対話部のメソッドAが重複して実行されたり、
最悪の場合、無限ループに陥ったりしてしまい、結果と
して、双方向の連動を実現することができない。
【0013】このような問題を解決するために、通常
は、対話部と計算部にそれぞれ2種類のプログラムを用
意し、一方は対話部の動作に対して計算部が連動する場
合の処理を行ない、もう一方は計算部の動作に対して対
話部が連動する場合の処理を行なうように構成する。図
15は、2組の連動するメソッドを用いた構成例であ
る。図15に示すように、対話部にメソッドA,A’、
計算部にメソッドB,B’を設ける。メソッドAはメソ
ッドBを起動する。また、メソッドB’はメソッドA’
を起動する。このとき、メソッドA’,メソッドBは、
それぞれメソッドB’,メソッドAを起動しない。
【0014】このような構成によれば、例えば、計算部
からリスト上の要素の選択操作を行なうにはメソッド
B’を起動することにより、メソッドA’が正しく1回
だけ実行される。しかし、この方法では、ほぼ同一の内
容のメソッドを2種類用意しなければならない。また、
メソッドを呼び出す側でも2種類のメソッドを区別して
呼び出さなければならない。通常、対話部のプログラム
はライブラリとしてあらかじめ用意されているが、計算
部のプログラムはアプリケーションプログラムによって
用意されねばならないので、アプリケーションプログラ
マは計算部のメソッドに関して2種類のプログラムを用
意することになる。そのため、プログラマは大きな負担
を強いられることになる。
【0015】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、起動されたメソッドと共
に、そのメソッドと一体化して実行されるべき他のメソ
ッドを一緒に実行する機構を有するプログラム実行装置
を提供することを目的とするものである。
【0016】
【課題を解決するための手段】本発明は、メソッド実行
手段と、オブジェクトとメソッドを格納するオブジェク
ト・メソッド格納手段を備えるオブジェクト指向プログ
ラムを実行するプログラム実行装置において、一体化し
て実行すべきメソッドの情報を保持するメソッド一体化
情報管理手段と、メソッドとそのメソッドと一体化して
実行されるべき他のメソッドとを前記メソッド実行手段
に一緒に実行させるメソッド一体化実行手段と、前記メ
ソッド実行手段においてメソッドが起動される際に前記
メソッド一体化情報管理手段に保持されている情報に基
づき他のメソッドと一体化して実行されるべきものであ
る場合に前記メソッド一体化実行手段を起動するメソッ
ド起動手段を有することを特徴とするものである。
【0017】
【作用】本発明によれば、双方向に連動すべきメソッド
を、一体化して実行すべきメソッドの情報としてメソッ
ド一体化情報管理手段に登録しておく。メソッドが起動
される際には、メソッド起動手段により、起動すべきメ
ソッドが他のメソッドと一体化して実行されるべきもの
である場合には、メソッド一体化実行手段によって、起
動すべきメソッドとそのメソッドと一体化して実行され
るべき他のメソッドを一緒にメソッド実行手段に実行さ
せる。これにより、上述の例では、対話部または計算部
いずれのメソッドを起動しようとした際にも、メソッド
起動手段により、メソッド一体化実行手段が起動され
て、常に、対話部と計算部の両方のメソッドが一体化し
て実行される。これによりメソッドの双方向の連動が実
現される。
【0018】本発明によれば、2つのメソッドが一体化
して実行される場合、いずれかのメソッドを起動しよう
とした際に、起動しようとしたメソッドが最初に実行さ
れて次に残りのメソッドが実行されるという保証はない
が、通常、対話部と計算部のメソッドはどちらが実行さ
れてもその最終結果は変わらないため、この点が問題に
なることはない。
【0019】
【実施例】図1は、本発明のプログラム実行装置の一実
施例を示すブロック図である。図中、1はオブジェクト
・メソッド格納手段、2はメソッド一体化情報管理手
段、3はメソッド実行手段、4はメソッド起動手段、5
は一体化判定手段、6はメソッド一体化実行手段であ
る。
【0020】オブジェクト・メソッド格納手段1には、
データおよびメソッドが一体となったオブジェクトが格
納されている。メソッド一体化情報管理手段2には、一
体化して実行すべき複数のオブジェクトとそのメソッド
を対にしたテーブルの集まりが格納されている。テーブ
ルは、一体化して実行されるべきメソッドの組ごとにそ
れぞれ用意される。テーブルのデータ構造は、通常のテ
ーブル形式でもよいし、例えばリスト構造など、他の形
式でもよい。オブジェクト・メソッド格納手段1、メソ
ッド一体化情報管理手段2は、例えば、メモリやディス
ク等の装置で構成することができる。
【0021】メソッド実行手段3は、オブジェクト・メ
ソッド格納手段1に格納されているオブジェクトやメソ
ッドを参照しながら、メソッド中の命令を実行するイン
タプリタである。メソッド実行手段3は、現在実行中の
メソッドにおいて、次に実行すべき命令を読み込み、そ
の命令がメソッドの起動命令であれば、起動命令が指定
するオブジェクトとメソッドに対してメソッド起動手段
を呼び出すことによってメソッドの起動を行ない、そう
でなければ、すなわち通常の命令であれば、その命令を
通常の方法で実行する処理を繰り返す。
【0022】メソッド起動手段4は、メソッド実行手段
3がメソッドの起動命令に遭遇し、新たなメソッドを起
動する際に起動される。起動しようとしたオブジェクト
のメソッドに対して一体化判定手段5を起動し、その判
定の結果が真であるなら、そのオブジェクトのメソッド
に対してメソッド一体化実行手段6を起動して、そのオ
ブジェクトのメソッドと、一体化して実行されるべき他
のメソッドとを一緒に実行する。一体化判定手段5の判
定結果が偽となった場合には、起動しようとしたオブジ
ェクトのメソッドに対して、メソッド実行手段3を再帰
的に呼び出すことにより、そのメソッドのみをそのまま
メソッド実行手段によって実行する。
【0023】一体化判定手段5は、メソッド一体化情報
管理手段2に格納されているテーブル群を検索して、与
えられたオブジェクトとそのメソッドの対が格納されて
いるテーブルが存在するならば真を、そうでなければ偽
を返す。
【0024】メソッド一体化実行手段6は、与えられた
オブジェクトとそのメソッドの対が格納されているメソ
ッド一体化情報管理手段2内のテーブルを参照し、テー
ブルに格納されている全てのオブジェクトのメソッドに
対して、メソッド実行手段を再帰的に呼び出してメソッ
ドを実行する。
【0025】メソッド実行手段3、メソッド起動手段
4、一体化判定手段5、メソッド一体化実行手段6は、
例えば、CPUとそれによって実行されるプログラムに
よって実現することができる。
【0026】上述の構成において、一体化判定手段5に
よる判定は、メソッド起動手段4において行なうように
構成してもよい。また、メソッド一体化実行手段6は、
改めてメソッド一体化情報管理手段2を参照せず、メソ
ッド一体化情報管理手段2に格納されているテーブルの
情報を一体化の判定の際に読み込み、このテーブルの情
報をメソッド起動手段4から受け取るように構成するこ
ともできる。
【0027】以下、本発明のプログラム実行装置の一実
施例における動作の第1の例について説明する。図2
は、メソッド実行手段3の動作の一例を示すフローチャ
ートである。メソッド実行手段3は、メソッドの命令を
順に実行する。まず、S11において、メソッドの命令
が尽きた場合には、メソッドの実行を終了する。命令が
残っている場合には、S12において、次の命令を読み
込み、S13において、メソッドの呼び出し命令か否か
を判定する。もし、メソッドの呼び出し命令の場合に
は、S14において、メソッド起動手段4を起動し、メ
ソッドの起動及び実行処理を行なう。メソッド呼び出し
命令以外の場合には、S15において、通常の命令の実
行を行なう。そして、S11へ戻り、メソッド内の命令
についての処理を繰り返す。
【0028】図3は、メソッド起動手段4の動作の一例
を示すフローチャートである。メソッド起動手段4がメ
ソッド実行手段3から起動されると、まず、S21にお
いて、一体化判定手段5で一体化して実行すべきメソッ
ドがあるか否かを判定して、その結果を得る。得られた
結果をS22で判断し、結果が真、すなわち、一体化す
べきメソッドがある場合には、S23において、メソッ
ド一体化実行手段6を起動し、起動すべきメソッドと、
そのメソッドと一体化して実行すべきメソッドの実行を
行なう。一体化判定手段5から得られた結果が偽の場
合、すなわち、一体化して実行すべきメソッドが無い場
合には、S24において、メソッド実行手段3を再帰的
に起動し、メソッドを実行する。
【0029】図4は、一体化判定手段5の動作の一例を
示すフローチャートである。メソッド起動手段4から一
体化判定手段5が起動されると、メソッド一体化情報管
理手段2中のテーブルを順に参照する。S31におい
て、テーブルをすべて参照した場合には、判定結果を
「偽」として処理を終了する。S32において、次のテ
ーブルを読み込む。S33において、読み込んだテーブ
ルが実行すべきメソッドに対応するテーブルか否かを判
定し、実行すべきメソッドに対応するものである場合に
は、判定結果を「真」として処理を終了する。対応する
ものでない場合には、S31へ戻り、次のテーブルにつ
いての処理を行なう。
【0030】図5は、メソッド一体化実行手段6の動作
の一例を示すフローチャートである。メソッド一体化実
行手段6は、メソッド起動手段4から起動されると、S
41ないしS43において、実行すべきメソッドに対応
するテーブルを読み込む。S44において、テーブル内
の要素がすべて実行されたか否かを判定し、すべて終了
した場合には、S41へ戻る。S45において、テーブ
ルからオブジェクトとメソッドの対を読み込み、S46
において、メソッド実行手段3を起動してメソッドを実
行する。そして、S44に戻り、テーブルに記録されて
いる次の一体化して実行するメソッドについての処理を
繰り返す。
【0031】上述の処理の例においては、一体化判定手
段5におけるメソッドの一体化の判定と、メソッド一体
化実行手段6によるメソッドの一体化実行において、そ
れぞれ独立してテーブルの検索が行なわれている。しか
し、一体化の判定の際に検索して得られたテーブルを一
体化実行手段6に渡し、渡されたテーブルにしたがって
一体化実行を行なうことも可能である。この場合、図5
におけるS41ないしS43の処理は不要である。
【0032】上述の動作を具体例をもとに説明する。図
6は、メソッドが双方向に連動する具体例の説明図であ
る。対話部と計算部に属する2つのオブジェクトPとA
が存在する。オブジェクトPは、メソッドdispla
ySelectionを持つ。また、オブジェクトA
は、メソッドselectとメソッドselectNe
xtを持つ。
【0033】対話部のメソッドdisplaySele
ctionは、オペレーターがキーボードやマウス等を
操作してスクリーン上に表示されているリストの要素に
対して選択操作を行なった場合に起動されて、選択操作
の結果をスクリーン上にハイライト表示する。このメソ
ッドdisplaySelectionに連動して計算
部のメソッドselectが起動され、アプリケーショ
ンに固有の処理(ここでは選択されたリスト要素を後の
処理のために変数に格納する処理)が行なわれる。ま
た、計算部のメソッドselectNextは、リスト
上での選択操作以外の方法(例えば、ボタン操作)によ
り起動されるメソッドで、リストの新たな選択箇所とな
るべき要素を計算し、メソッドselectによりこの
要素に対してアプリケーション固有の処理を行なう。メ
ソッドselectの起動に連動して対話部のメソッド
displaySelectionが起動され、リスト
上の新たな要素がハイライト表示される。この例では、
メソッドselectとともにメソッドdisplay
Selectionは、一体化して起動される必要があ
る。
【0034】図7は、メソッド一体化情報管理手段2に
保持されるテーブルの一具体例の説明図である。図6に
示した具体例において、一体化して起動されるメソッド
selectとメソッドdisplaySelecti
onについての情報がメソッド一体化情報管理手段2内
にテーブルして保持される。この例では、一体化して起
動されるメソッドとそのオブジェクトを対にして記録さ
れている。すなわち、オブジェクトPとメソッドdis
playSelectionが対となって記録されてお
り、また、オブジェクトAとメソッドselectが対
となって記録されている。テーブルに記録されている各
メソッドが一体化して実行されるべきメソッドである。
【0035】上述の図6に示した具体例において、図7
に示したテーブルがメソッド一体化情報管理手段2に保
持されているものとして、具体的な動作を説明する。
今、メソッド実行手段3が、あるメソッドを実行途中に
オブジェクトPのメソッドdisplaySelect
ionを起動する命令に遭遇したとする。すなわち、図
2のS12において、オブジェクトPに対するメソッド
displaySelectionの起動命令が読み込
まれ、S13の結果がYESとなり、S14でメソッド
起動命令が指定するオブジェクトPとメソッドdisp
laySelectionに対してメソッド起動手段4
が呼び出される。
【0036】メソッド起動手段4では、図3のS21の
実行により、与えられたオブジェクトとそのメソッドに
対して一体化判定手段5を呼び出す。一体化判定手段5
は、図4のS31ないしS33を繰り返す途中、S32
で図7に示したテーブルを読み込む。次のS33でテー
ブルがオブジェクトPとメソッドdisplaySel
ectionの対を含んでいるので、結果はYESとな
り、判定結果として「真」を返す。これにより、メソッ
ド起動手段4における図3のS22の結果がYESとな
り、S23においてオブジェクトPとメソッドdisp
laySelectionに対してメソッド一体化実行
手段6が起動される。
【0037】メソッド一体化実行手段6では、図5のS
41ないしS43を繰り返すことによって、与えられた
オブジェクトPとメソッドdisplaySelect
ionの対を含んでいるテーブルを探索する。途中、S
42において図7に示したテーブルが読み込まれ、次の
S43の判定の結果がYESとなる。この後、S44な
いしS46を繰り返して、S42で読み込んだ図7に示
すテーブル上の全てのオブジェクトとメソッドをS45
で読み込んで、読み込んだオブジェクトとメソッドに対
して、S46でメソッド実行手段3を起動する。すなわ
ち、メソッド実行手段3が、オブジェクトPのメソッド
displaySelectionとオブジェクトAの
メソッドselectに対して起動され、これらのメソ
ッドが実行される。これらのメソッドの実行後、S44
はYESとなり、テーブルがもう他になければS41の
判定もYESとなって、メソッド一体化実行手段の実行
を終了する。
【0038】この結果、メソッド起動手段4における図
3のS23の実行を終了し、メソッド起動手段4の実行
を終了する。メソッド起動手段4の実行終了と共に、メ
ソッド実行手段3における図2のS14の実行を終了し
て、メソッド実行手段3における、オブジェクトPに対
するメソッドdisplaySelectionの起動
命令の実行が終了する。
【0039】また、例えば、メソッドselectNe
xtから、オブジェクトAのメソッドselectを起
動しようとした場合にも、同様に、オブジェクトPのメ
ソッドdisplaySelectionとオブジェク
トAのメソッドselectが実行される。
【0040】上述の具体例では、メソッド一体化情報管
理手段2に保持されるテーブルには、オブジェクトとメ
ソッドの組を登録した。しかしこれに限らず、テーブル
を、オブジェクトのクラスの情報として(宣言的に)定
義することができる。以下、オブジェクトのクラスの情
報として定義されたテーブルを用いる場合について説明
する。
【0041】メソッド一体化情報管理手段2は、クラス
ごとに設けられたテーブルの集まりである。各テーブル
の要素は、オブジェクトのインスタンス変数名とこのイ
ンスタンス変数に代入されるオブジェクトのメソッドの
対、あるいは、そのオブジェクト自身のメソッドのいず
れかである。同じテーブル上に記入されているメソッド
は一体化して実行される。オブジェクト自身のメソッド
の場合、テーブルのインスタンス変数名の欄には「se
lf」と書き込むものとする。
【0042】インスタンス変数名とメソッドとを対にし
てテーブルを構成した場合、そのインスタンス変数名に
より参照されるメソッドを有する別のオブジェクトの側
で、そのメソッドが起動される場合がある。このような
場合、そのメソッドを有するオブジェクトに対応して、
インスタンス変数名により参照しているもとのオブジェ
クトと同様のテーブルを有するように構成するか、ある
いは、参照元のオブジェクトのテーブルを参照すること
が必要となる。ここでは、参照元のオブジェクトのテー
ブルを探索する場合を示す。
【0043】参照元のオブジェクトを知るために、バッ
クポインタを用いる。オブジェクト・メソッド格納手段
1において、あるオブジェクトのインスタンス変数によ
って参照されているオブジェクトは、バックポインタを
持つ。オブジェクトのバックポインタは、そのオブジェ
クトを参照しているオブジェクトと、実際に参照してい
るインスタンス変数名の対である。
【0044】このような構成とした場合、上述の各手段
の処理において、一体化判定手段5およびメソッド一体
化実行手段6は、起動されたメソッドを含むオブジェク
トに対応したテーブルを参照するだけでなく、そのメソ
ッドを参照している別のオブジェクトに対応するテーブ
ルを探索する必要がある。
【0045】そのため、一体化判定手段5は、与えられ
たオブジェクトのクラスに設けられたメソッド一体化情
報管理手段2内のテーブルを検索して、「self」と
与えられたメソッドの対を格納するテーブルが存在する
かどうかを判定すると共に、与えられたオブジェクトが
持つバックポインタが指すオブジェクトのクラスに設け
られたメソッド一体化情報管理手段2内のテーブルを検
索して、バックポインタが指すインスタンス変数名と与
えられたメソッドの対を格納するテーブルが存在するか
どうかを判定する。
【0046】また、メソッド一体化実行手段6は、与え
られたオブジェクトのクラスに設けられたメソッド一体
化情報管理手段2内のテーブルを検索して得られる「s
elf」と与えられたメソッドの対を格納するテーブル
と、与えられたオブジェクトが持つバックポインタが指
すオブジェクトのクラスに設けられたメソッド一体化情
報管理手段2内のテーブルを検索して得られるバックポ
インタが指すインスタンス変数名と与えられたメソッド
の対を格納するテーブルの各要素を得る。得られた各要
素について、インスタンス変数名の欄に指定されたイン
スタンス変数に代入されているオブジェクトと、テーブ
ルのメソッドの欄に指定されているメソッド、および、
それらのオブジェクトとメソッドに対して同様の検索
を、新たなオブジェクトとそのメソッドが得られなくな
るまで繰り返して得られるオブジェクトとそのメソッド
を、メソッド実行手段3により実行する。
【0047】図8は、一体化判定手段5のクラスの情報
を用いた場合の動作の一例を示すフローチャートであ
る。メソッド起動手段4から一体化判定手段5が起動さ
れると、起動すべきメソッドを有するオブジェクトのク
ラスに設けられたメソッド一体化情報管理手段2内のテ
ーブルを検索する。S51でテーブルがまだ残っている
場合には、S52で1つのテーブルを読み込み、S53
でインスタンス変数名の欄が「self」であって、起
動すべきメソッドと対になっている要素を含むか否かを
判定する。このような要素を含むテーブルが存在すれ
ば、一体化して実行するメソッドが存在するので、判定
結果として「真」を返す。その様な要素を含まない場合
には、S51へ戻り、次のテーブルについての処理を行
なう。
【0048】「self」と起動すべきメソッドとの対
が見つからない時は、S51からS54へ進む。S54
でバックポインタが残っている時には、S55におい
て、バックポインタが指すオブジェクトを求める。そし
て、バックポインタが指すオブジェクトのテーブルの検
索を行なう。S56でテーブルがまだ残っている場合に
は、S57で、バックポインタが指すオブジェクトのテ
ーブルを読み込み、S58でそのテーブル内にインスタ
ンス変数名とメソッドの対が存在するか否かを判定す
る。インスタンス変数名とメソッドの対が存在する場合
には、判定結果として「真」を返す。インスタンス変数
名とメソッドの対が存在しない場合には、S56へ戻
り、バックポインタが指すオブジェクトの次のテーブル
についての処理を行なう。バックポインタが指すオブジ
ェクトのテーブルが尽きると、S56からS54に戻
り、次のバックポインタについての処理を同様に行な
う。すべてのバックポインタが指すオブジェクトについ
て、そのオブジェクトのテーブルにインスタンス変数名
とメソッドの対が存在しない時、S54において、判定
結果として「偽」を返す。
【0049】図9、図10は、メソッド一体化実行手段
6のクラスの情報を用いた場合の動作の一例を示すフロ
ーチャートである。メソッド一体化実行手段6がメソッ
ド起動手段4から起動されると、まず、S61におい
て、要展開リストに実行すべきメソッドを含むオブジェ
クトと、実行すべきメソッドの対をセットする。また、
S62において、展開済リストを空にセットする。
【0050】S63において、要展開リストが尽きたか
否かを判定し、まだ要展開リストにオブジェクトとメソ
ッドの対が記録されている場合には、S64において、
要展開リストからオブジェクトとメソッドの対を取り出
し、要展開リストから取り出したオブジェクトとメソッ
ドの対を削除するとともに、S65において、取り出し
たオブジェクトとメソッドの対を展開済リストに追加す
る。
【0051】S66において、S64で取り出したオブ
ジェクトに対応する未処理のテーブルがまだ存在する場
合には、S67でテーブルを読み込み、S68で「se
lf」とメソッドが対になっている要素を含むか否かを
判定する。含んでいない場合には、S66に戻って、次
のテーブルについての処理を繰り返す。
【0052】S68で「self」とメソッドが対にな
っている要素がある場合には、S69ないしS72にお
いて、各要素についての処理を行なう。S69におい
て、テーブルの要素がある間は、S70において、テー
ブルの要素を読み込み、S71において、読み込んだ要
素が展開済リストに含まれていない場合には、S72に
おいて、その要素を要展開リストに追加する。S69で
テーブルに要素がなくなると、S66へ戻って次のテー
ブルに関する処理を繰り返し行なう。
【0053】S66において、S64で取り出されたオ
ブジェクトに対応するテーブルがなくなると、S76な
いしS84で、S64で取り出されたオブジェクトをイ
ンスタンス変数により参照している他のオブジェクトに
対応するテーブルの探索を行なう。インスタンス変数に
より参照している他のオブジェクトは、バックポインタ
により知ることができる。S76で未処理のバックポイ
ンタが残っているときは、S77において、バックポイ
ンタが指すオブジェクトを求める。そして、そのオブジ
ェクトに対応するテーブルについての処理を行なう。S
78でバックポインタが指すオブジェクトに対応する未
処理のテーブルが残っているときには、S79でバック
ポインタが指すオブジェクトに対応するテーブルを読み
込む。そして、S80において、読み込んだテーブルに
インスタンス変数名と実行すべきメソッドの対が含まれ
ているか否かを判定し、含まれている場合には、そのテ
ーブルの各要素についての処理を行なう。S81で未処
理の要素が残っている場合には、S82でテーブルの要
素を読み込み、その要素が展開済リストに含まれていな
い場合には、S84において、その要素を要展開リスト
に追加する。
【0054】S81において、S79で読み込んだテー
ブル内のすべての要素について処理が終了すると、S7
8に戻り、バックポインタが指すオブジェクトに対応す
る次のテーブルについての処理を行なう。S78におい
て、バックポインタが指すオブジェクトに対応するすべ
てのテーブルについて処理を終了すると、S76に戻
り、他のバックポインタについての処理を行なう。すべ
てのバックポインタについて処理が終了すると、S76
からS63へ戻る。
【0055】S63において、要展開リストに登録され
た要素がなくなると、S73ないしS75で展開済リス
トに登録された要素が実行される。すなわち、S73で
未処理の展開済リストの要素が残っている場合には、S
74で展開済リストからオブジェクトとメソッドの対で
ある要素を1つ取り出し、S75で、メソッド実行手段
3に取り出したメソッドを実行する。すべての展開済み
リストに登録されている要素について実行すると、メソ
ッド一体化実行手段6の実行を終了する。
【0056】従来の技術の項で述べた特開平4−163
630号公報においては、部分オブジェクトのメソッド
が起動される際に全体オブジェクトのメソッドも併せて
起動することができる。本発明の一体化して実行する構
成によれば、逆の場合、すなわち、全体オブジェクトの
メソッドが起動される際にも、部分オブジェクトのメソ
ッドが起動される。このために、一体化して実行される
べきメソッドの組は、いずれのメソッドをキーとしても
導くことが可能である。
【0057】上述のクラスの情報を用いた動作例を具体
的に説明する。ここでも図6に示した具体例を用いて説
明する。図11は、クラスの情報を用いた場合のメソッ
ド一体化情報管理手段2に保持されているテーブルの一
例の説明図である。図11に示したテーブルは、オブジ
ェクトPのクラスに対応して設けられる。テーブルに
は、オブジェクトPのメソッドdisplaySele
ctionと、インスタンス変数applに格納されて
いるオブジェクト、すなわち、オブジェクトAのメソッ
ドselectに関する一体化情報が格納されている。
【0058】図11のインスタンス変数欄に記入されて
いる「self」は、メソッドdisplaySele
ctionがテーブルに設けられているクラスのオブジ
ェクトP自身のメソッドであることを示す。また、オブ
ジェクトAにおいては、オブジェクトPのクラスに登録
した一体化情報以外には、一体化して実行すべきメソッ
ドは存在せず、メソッド一体化情報管理手段2には、オ
ブジェクトAに設けられたテーブルは1つも登録されて
いないものとする。
【0059】図12は、インスタンス変数とバックポイ
ンタの関係の説明図である。図6に示した例において、
オブジェクトPのインスタンス変数applには、オブ
ジェクトAが格納されているものとする。このとき、オ
ブジェクトAは、オブジェクトAがオブジェクトPのイ
ンスタンス変数applに格納されていることを表わす
バックポインタを持つ。バックポインタには、オブジェ
クトAを参照しているインスタンス変数名‘appl’
と、そのインスタンス変数を有するオブジェクトPが格
納されている。
【0060】いま、メソッド実行手段3が、例えばメソ
ッドselectを実行する命令にに遭遇したとする。
すると、図2のS14において、メソッド起動手段4が
起動され、図3のS21において、オブジェクトAとメ
ソッドselectに対して一体化判定手段5が呼び出
される。
【0061】一体化判定手段では、図8に示した動作が
行なわれる。すなわち、メソッド一体化情報管理手段2
を参照し、与えられたオブジェクトAに設けられたテー
ブルを参照しようとする。しかし、オブジェクトAに対
応するテーブルが1つも登録されていないため、S51
の判定はYESとなる。次に、S54の判定は、与えら
れたオブジェクトAがバックポインタを持つため、NO
となる。S55において、オブジェクトAのバックポイ
ンタが指すオブジェクトPが求められる。S56の判定
は、メソッド一体化情報管理手段2内に、図11に示し
たオブジェクトPに対応するテーブルが登録されている
ので、NOとなり、S57において、メソッド一体化情
報管理手段2内のオブジェクトPに対応するテーブルの
1つが読み込まれる。ここで、図11に示したテーブル
が読み込まれたとする。このテーブルはバックポインタ
が指すインスタンス変数「appl」と与えられたメソ
ッドselectの対を含むので、S58の判定はYE
Sとなり、一体化判定手段は真を返す。S57におい
て、図11に示したテーブル以外のテーブルが読み込ま
れたとしても、S56〜S58を繰り返す間に、いずれ
は図11に示すテーブルが読み込まれるので、一体化判
定手段5が真を返すことに変わりはない。
【0062】メソッド起動手段4は、上述のようにして
一体化判定手段5から判定結果として「真」を得る。そ
して、図3におけるS23において、オブジェクトAと
メソッドselectに対して、メソッド一体化実行手
段6を起動する。
【0063】メソッド一体化実行手段6では、図9、図
10に従った動作を行なう。まず、S61,S62によ
って、要展開リストは与えられたオブジェクトAとメソ
ッドselectの対のみからなるリストに、展開済リ
ストは空にセットされる。
【0064】S63の判定はNOとなるので、S64,
S65で、オブジェクトAとメソッドselectの対
が要展開リストから取り出されて、要展開リストから削
除され、展開済リストに追加される。メソッド一体化情
報管理手段2には、要展開リストから取り出されたオブ
ジェクトAに対応するテーブルが1つも登録されていな
いため、S66の判定はYESとなる。
【0065】オブジェクトAはバックポインタを持つの
で、次のS76の判定はNOとなり、S77でバックポ
インタが指すオブジェクトPが求められる。メソッド一
体化情報管理手段2内には、オブジェクトPに対応して
設けられた図11に示すテーブルが少なくとも登録され
ているので、S78の判定はNOとなり、S79でメソ
ッド一体化情報管理手段に登録されているオブジェクト
Pに対応したテーブルの1つが読み込まれる。ここで、
図11に示すテーブルが読み込まれたとする。すると、
S80では、テーブルが、バックポインタが示すインス
タンス変数「appl」と、要展開リストから取り出し
たメソッドselectの対を含むので、判定はYES
となる。
【0066】S81〜S84は、テーブルの要素である
全てのインスタンス変数名とメソッドの対に対して、S
77で求めたオブジェクトPにおいて、インスタンス変
数に代入されているオブジェクトとメソッドの対が展開
済みリストに含まれていなければ、それを要展開リスト
に追加する処理を繰り返す。このとき、インスタンス変
数名に「self」が指定されている場合には、S61
7で求めたオブジェクトPそれ自身を用いる。すなわ
ち、S81でテーブルの要素が存在するので、NOとな
り、S82で、まず、インスタンス変数名の欄から「s
elf」が、メソッドの欄から「displaySel
ection」が取り出される。そして、S83で展開
済リストを参照し、この対が登録されているか否かを判
定する。この場合、登録されていないので、NOとな
り、S84において、「self」とdisplayS
electionの対に対して、オブジェクトPとメソ
ッドdisplaySelectionの対が要展開リ
ストに追加される。
【0067】S81に戻り、テーブルにはもう一つの要
素が残っているので、NOとなり、S82へ進み、イン
スタンス変数名「appl」とメソッドselectの
対を得る。このインスタンス変数名「appl」とメソ
ッドselectの対に対しては、オブジェクトAとメ
ソッドselectの対がすでに展開済リストに登録さ
れている。そのため、S83はYESとなり、S84で
の要展開リストへの追加は行なわれない。
【0068】このようにして、図11のテーブルの全て
の要素を処理し終わると、S81の判定はYESとな
る。メソッド一体化情報管理手段2には、オブジェクト
Pの他のテーブルは登録されていないとすると、S78
の判定がYESとなり、オブジェクトAは他にバックポ
インタを持たないので、S76の判定がYESとなる。
【0069】この時点で、要展開リストには、オブジェ
クトPとメソッドdisplaySelectionの
対が、展開済リストにはオブジェクトAとメソッドse
lectの対が登録されている。そのため、S63の判
定がNOとなり、要展開リストに登録されているオブジ
ェクトPとメソッドdisplaySelection
の対に対して、S64〜S72,S76〜S84の処理
が行なわれる。
【0070】S64,S65で、要展開リストからオブ
ジェクトPとメソッドdisplaySelectio
nの対が取り出され、要展開リストから削除されるとと
もに、展開済リストに追加される。メソッド一体化情報
管理手段2には、オブジェクトPに対応して図11に示
したテーブルが格納されている。S66の判定はNOと
なり、例えば図11に示したテーブルがS67で読み込
まれる。このテーブルには「self」とメソッドの対
が含まれているので、S68の判定はYESとなる。S
69の判定はNOとなって、S70でテーブルから「s
elf」とメソッドdisplaySelection
の対が読み込まれる。しかし、この対はすでに展開済リ
ストに登録されているので、S71の判定はYESとな
り、S69へ戻る。テーブルにはまだ要素が残っている
ので、S69の判定はNOとなり、S70で次の要素で
あるインスタンス変数名「appl」とメソッドsel
ectの対が読み込まれる。しかし、この要素も展開済
リストに登録されているので、S71の判定はYESと
なる。S69へ戻り、テーブルの要素が尽きたので、S
69の判定がYESとなり、S66へ戻る。オブジェク
トPに対応するテーブルが他に存在しなければ、S66
の判定はYESとなり、S76へ進む。オブジェクトP
がバックポインタを持っていれば、さらにそのバックポ
インタをもとに、S77ないしS84の処理が行なわれ
る。ここでは、オブジェクトPはバックポインタを持っ
ていないものとすれば、S76の判定はYESとなる。
この時点で、要展開リストが空で、展開済みリストには
オブジェクトAとメソッドselectの対と、オブジ
ェクトPとメソッドdisplaySelection
の対が登録されている。この状態でS63に戻る。
【0071】今度は、S63の判定はYESとなるの
で、S73〜S75の処理により、展開済リストに登録
されている全てのオブジェクトとメソッドの対に対し
て、メソッド実行手段3が起動される。ここでは、オブ
ジェクトAとメソッドselect、および、オブジェ
クトPとメソッドdisplaySelectionに
対してメソッド実行手段3が起動されて、各オブジェク
トにおいてそれぞれのメソッドが実行される。
【0072】以上で、メソッド一体化実行手段6は処理
を終了し、メソッド起動手段3が処理を終了して、メソ
ッド実行手段3における、オブジェクトAのメソッドs
electを起動する命令の処理が終了する。
【0073】オブジェクトPのメソッドdisplay
Selectionを起動しようとした場合にも、同様
に、オブジェクトPのメソッドdisplaySele
ctionとオブジェクトAのメソッドselectが
実行される。すなわち、一体化判定手段5で、図11に
示したテーブルから一体化実行することを判定した後、
メソッド一体化実行手段6が起動される。まず、S65
でオブジェクトPとメソッドdisplaySelec
tionの対が展開済リストに登録され、S66ないし
S72の処理によって、インスタンス変数名「app
l」が指すオブジェクトAとメソッドselectの対
が要展開リストに追加される。オブジェクトPにはバッ
クポインタがないとすれば、S76からS63へ戻り、
要展開リストに登録されているオブジェクトAとメソッ
ドselectの対が展開済リストに登録され、この対
についての処理が行なわれる。メソッド一体化情報管理
手段2にはオブジェクトAに対応するテーブルはないの
で、S66からS76へ進む。オブジェクトAはバック
ポインタを持つので、S77ないしS84の処理が行な
われ、オブジェクトPが参照されて、図11に示すテー
ブルが参照されるが、図11に示すテーブルの各要素は
展開済リストに登録されているので、新たに要展開リス
トに追加されるオブジェクトとメソッドの対はない。バ
ックポインタに関する処理を終了し、S76からS63
へ戻る。この時点で要展開リストに登録されている要素
はないので、S63の判定はYESとなり、S73ない
しS75の処理により、オブジェクトPのメソッドdi
splaySelectionと、オブジェクトAのメ
ソッドselectがメソッド実行手段3で実行される
ことになる。
【0074】図12において、オブジェクトPの他に、
オブジェクトPと同じクラスを持つオブジェクトP’が
存在し、オブジェクトP’がインスタンス変数appl
によりオブジェクトAを参照(共有)している場合もあ
る。このような場合でも、オブジェクトAのメソッドs
elect、オブジェクトPのメソッドdisplay
Selection、あるいはオブジェクトP’のメソ
ッドdisplaySelectionのいずれかがメ
ソッド実行手段3で起動される時には、これらのオブジ
ェクトのメソッドは一体化して実行される。
【0075】また、オブジェクトQが存在し、インスタ
ンス変数qによりオブジェクトPを参照し、オブジェク
トPがインスタンス変数applによりオブジェクトA
を参照ている場合に、オブジェクトQ、オブジェクト
P、オブジェクトAのメソッドを一体化して実行するこ
とが可能である。このとき、メソッド一体化情報が記録
されたテーブルは、オブジェクトQとオブジェクトPに
対応して設けられる。
【0076】メソッド一体化実行手段6は、一体化して
実行されるべきオブジェクトのメソッドを逐次実行する
ものや、並行して実行するもの、あるいは、他の特殊な
順序で実行するものであっても良い。例えば、メソッド
にbefore,after,primaryの3つの
タイプを設けて、beforeタイプのメソッドはpr
imaryタイプのメソッドを実行するよりも前に実行
し、afterタイプのメソッドはprimaryタイ
プのメソッドを実行した後で実行されることも可能であ
る。このようなタイプの情報は、メソッド一体化情報管
理手段2に格納されているテーブルに付加しておいた
り、オブジェクト・メソッド格納手段1に格納されてい
るメソッドに付加しておくことができる。
【0077】メソッド実行手段3、メソッド一体化実行
手段6、およびメソッド起動手段4は、インタプリンタ
と、その中でメソッドを起動するそれぞれのプログラム
として構成することができる。このような構成以外に
も、例えば、メソッド実行手段3がCPU自身であっ
て、メソッド一体化実行手段6あるいはメソッド起動手
段4をメソッドに埋め込まれた機械語のプログラムとし
て実現することが可能である。このとき、一体化判定手
段5を、コンパイラによってコンパイル時に起動し、そ
の結果に基づいて、メソッド起動手段のメソッドへの埋
め込みを制御することが可能である。
【0078】以上に説明した構成とその動作は、プログ
ラムがオブジェクト指向のプログラムであれば、それが
実際にオブジェクト指向言語で記述されているか、ある
いは通常の手続型言語を用いて記述されているかによら
ない。プログラムが通常の手続型言語を用いて記述され
ている場合には、例えば、手続きを起動する際に渡され
る引数の1つが、その手続きが適用されるオブジェクト
を表わすようにしておくことによって、上述の実施例の
各手段はオブジェクトを得ることができる。したがっ
て、プログラムがオブジェクト指向言語で記述されてい
る場合と同様の動作を行なうことができる。
【0079】
【発明の効果】以上の説明から明らかなように、本発明
によれば、メソッドの重複実行や無限ループが発生する
ことなく、また、ほぼ同一の内容のメソッドを複数定義
しなくても、他のメソッドと一体化して実行されるべき
メソッドを起動しようとすると、そのメソッドと、その
メソッドと一体化して実行されるべき他のメソッドを一
緒に実行することができるという効果がある。このと
き、一体化して実行するどのメソッドを起動した場合で
も、一体化して実行する全てのメソッドを実行すること
ができる。
【図面の簡単な説明】
【図1】 本発明のプログラム実行装置の一実施例を示
すブロック図である。
【図2】 メソッド実行手段3の動作の一例を示すフロ
ーチャートである。
【図3】 メソッド起動手段4の動作の一例を示すフロ
ーチャートである。
【図4】 一体化判定手段5の動作の一例を示すフロー
チャートである。
【図5】 メソッド一体化実行手段6の動作の一例を示
すフローチャートである。
【図6】 メソッドが双方向に連動する具体例の説明図
である。
【図7】 メソッド一体化情報管理手段2に保持される
テーブルの一具体例の説明図である。
【図8】 一体化判定手段5のクラスの情報を用いた場
合の動作の一例を示すフローチャートである。
【図9】 メソッド一体化実行手段6のクラスの情報を
用いた場合の動作の一例を示すフローチャートである。
【図10】 メソッド一体化実行手段6のクラスの情報
を用いた場合の動作の一例の続きを示すフローチャート
である。
【図11】 クラスの情報を用いた場合のメソッド一体
化情報管理手段2に保持されているテーブルの一例の説
明図である。
【図12】 インスタンス変数とバックポインタの関係
の説明図である。
【図13】 コールバックの一例の説明図である。
【図14】 双方向に連動されるメソッドの実行の説明
図である。
【図15】 2組の連動するメソッドを用いた構成例で
ある。
【符号の説明】
1…オブジェクト・メソッド格納手段、2…メソッド一
体化情報管理手段、3…メソッド実行手段、4…メソッ
ド起動手段、5…一体化判定手段、6…メソッド一体化
実行手段。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 メソッド実行手段と、オブジェクトとメ
    ソッドを格納するオブジェクト・メソッド格納手段を備
    えるオブジェクト指向プログラムを実行するプログラム
    実行装置において、一体化して実行すべきメソッドの情
    報を保持するメソッド一体化情報管理手段と、メソッド
    とそのメソッドと一体化して実行されるべき他のメソッ
    ドとを前記メソッド実行手段に一緒に実行させるメソッ
    ド一体化実行手段と、前記メソッド実行手段においてメ
    ソッドが起動される際に前記メソッド一体化情報管理手
    段に保持されている情報に基づき他のメソッドと一体化
    して実行されるべきものである場合に前記メソッド一体
    化実行手段を起動するメソッド起動手段を有することを
    特徴とするプログラム実行装置。
JP10972494A 1994-05-24 1994-05-24 プログラム実行装置 Pending JPH07319698A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10972494A JPH07319698A (ja) 1994-05-24 1994-05-24 プログラム実行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10972494A JPH07319698A (ja) 1994-05-24 1994-05-24 プログラム実行装置

Publications (1)

Publication Number Publication Date
JPH07319698A true JPH07319698A (ja) 1995-12-08

Family

ID=14517627

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10972494A Pending JPH07319698A (ja) 1994-05-24 1994-05-24 プログラム実行装置

Country Status (1)

Country Link
JP (1) JPH07319698A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008547128A (ja) * 2005-06-28 2008-12-25 マイクロソフト コーポレーション セマンティックリッチオブジェクトによる動的なユーザエクスペリエンス
CN103729172A (zh) * 2012-10-12 2014-04-16 英业达科技有限公司 避免触控事件被拦截以触发给多元件执行的系统及其方法
WO2021164460A1 (zh) * 2020-02-19 2021-08-26 Oppo广东移动通信有限公司 触摸响应方法、装置、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008547128A (ja) * 2005-06-28 2008-12-25 マイクロソフト コーポレーション セマンティックリッチオブジェクトによる動的なユーザエクスペリエンス
CN103729172A (zh) * 2012-10-12 2014-04-16 英业达科技有限公司 避免触控事件被拦截以触发给多元件执行的系统及其方法
WO2021164460A1 (zh) * 2020-02-19 2021-08-26 Oppo广东移动通信有限公司 触摸响应方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CA2211478C (en) Systems, methods and apparatus for generating and controlling display of medical images
JP4313422B2 (ja) 適応学習を使用する選択のための代案を提示する方法と装置
US5950002A (en) Learn mode script generation in a medical imaging system
US5664129A (en) Visual programming method
US6707469B1 (en) Synchronous execution in a medical imaging system
JPH08137646A (ja) ダイアログ・ボックスの表示方法及びシステム
US5831612A (en) Cell overlap detection and correction in a medical imaging system
JPH0954669A (ja) グラフィカル・ユーザ・インタフェース用ダイナミック・ダイアログ・ボックス機能
JP4588295B2 (ja) シーケンス解析方法およびシーケンス解析装置
US5781905A (en) Program generating method combining data item part with database manipulation part
JPH07319698A (ja) プログラム実行装置
JPH0554277A (ja) プラント監視装置
JPH10149301A (ja) スクリプト作成装置
JP2859214B2 (ja) 簡易化機能選択メニュー方式
JP3294691B2 (ja) オブジェクト指向システム構築方法
JPH05216641A (ja) グラフィカル・ユーザ・インタフェース制御プログラム生成装置
JP2875135B2 (ja) プログラマブルコントローラ用プログラム装置
JP3083552B2 (ja) 階層編集処理装置
JPH07219753A (ja) 会話型プログラム開発支援システム
JP2601533B2 (ja) データ処理装置
JP4180099B2 (ja) シーケンス解析プログラムを記録した記録媒体、シーケンス解析装置およびシーケンス解析方法
JPH04257973A (ja) 設計支援装置及び設計支援方法
JPH086773A (ja) オブジェクトプログラム作成装置およびオブジェクトプログラム処理方法
JPH07175619A (ja) 対話型データ入力システム
JP4911848B2 (ja) 車両データ入力制御方法