JPH0628168A - オブジェクト指向プログラミングを実現する方法 - Google Patents
オブジェクト指向プログラミングを実現する方法Info
- Publication number
- JPH0628168A JPH0628168A JP3124589A JP12458991A JPH0628168A JP H0628168 A JPH0628168 A JP H0628168A JP 3124589 A JP3124589 A JP 3124589A JP 12458991 A JP12458991 A JP 12458991A JP H0628168 A JPH0628168 A JP H0628168A
- Authority
- JP
- Japan
- Prior art keywords
- window
- present
- class
- application
- library
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Digital Computer Display Output (AREA)
Abstract
(57)【要約】
【目的】 一様なユーザーインタフェースを提供するこ
とにより、Xアプリケーションを書き込むために必要と
される努力を最小限に抑える。 【構成】 本発明は、無修正C言語で書込まれたオブジ
ェクト指向インタフェースである。このユーザーインタ
フェースはCの上にある層と、オブジェクトとして知ら
れる1組のユーザーインタフェースコンポーネントとい
う2つの部分から構成される。本発明は、ウインドウラ
イブラリに対して一様なオブジェクト指向ユーザーイン
タフェースを提供する。インタフェース層により、アプ
リケーションはウインドウライブラリの一部である標準
クラスを作成することができる。さらに、インタフェー
ス層はオブジェクトを使用して、アプリケーションのユ
ーザーインタフェース部分をデータ抽象化を経て迅速且
つ一様に作成する。加えて、本発明は引継ぎによって新
たなクラスの開発を支援する。
とにより、Xアプリケーションを書き込むために必要と
される努力を最小限に抑える。 【構成】 本発明は、無修正C言語で書込まれたオブジ
ェクト指向インタフェースである。このユーザーインタ
フェースはCの上にある層と、オブジェクトとして知ら
れる1組のユーザーインタフェースコンポーネントとい
う2つの部分から構成される。本発明は、ウインドウラ
イブラリに対して一様なオブジェクト指向ユーザーイン
タフェースを提供する。インタフェース層により、アプ
リケーションはウインドウライブラリの一部である標準
クラスを作成することができる。さらに、インタフェー
ス層はオブジェクトを使用して、アプリケーションのユ
ーザーインタフェース部分をデータ抽象化を経て迅速且
つ一様に作成する。加えて、本発明は引継ぎによって新
たなクラスの開発を支援する。
Description
【0001】
【産業上の利用分野】本発明はオブジェクト指向プログ
ラミングを実現する分野に関し、特に、ウインドウベー
スシステムについて無修正の汎用プログラミング言語を
使用してオブジェクト指向プログラミングを実現する分
野に関する。
ラミングを実現する分野に関し、特に、ウインドウベー
スシステムについて無修正の汎用プログラミング言語を
使用してオブジェクト指向プログラミングを実現する分
野に関する。
【0002】
【従来の技術】オブジェクト指向プログラミングが何で
あるかということについては様々な見かたがあるが、コ
ンピュータ科学者やプログラマーは、オブジェクトが手
順及びデータの特性を組み合わせるコンポーネントであ
るという点では一致している。オブジェクト指向プログ
ラミングにおけるあらゆるアクションは、オブジェクト
間で事象又はメッセージを送信し合うことに由来する。
事象送信は間接手順呼出しの1つの形態である。事象
は、数ある中でも特に、オブジェクトについて実行すべ
き動作を指定する。オブジェクトは、動作を実行するた
めの独自の手段(「方法」と呼ばれる)を使用して事象
に応じる。オブジェクトに対して一様インタフェースと
して規定される1組の事象又はメッセージをプロトコル
と呼ぶ。M.Stefik 及びD.g.Bobrow の「object‐Orient
ed Programming :Themes and Variations 」(The
Al Magazine 第6巻第4号、1986年
冬、40〜62ページ)を参照。
あるかということについては様々な見かたがあるが、コ
ンピュータ科学者やプログラマーは、オブジェクトが手
順及びデータの特性を組み合わせるコンポーネントであ
るという点では一致している。オブジェクト指向プログ
ラミングにおけるあらゆるアクションは、オブジェクト
間で事象又はメッセージを送信し合うことに由来する。
事象送信は間接手順呼出しの1つの形態である。事象
は、数ある中でも特に、オブジェクトについて実行すべ
き動作を指定する。オブジェクトは、動作を実行するた
めの独自の手段(「方法」と呼ばれる)を使用して事象
に応じる。オブジェクトに対して一様インタフェースと
して規定される1組の事象又はメッセージをプロトコル
と呼ぶ。M.Stefik 及びD.g.Bobrow の「object‐Orient
ed Programming :Themes and Variations 」(The
Al Magazine 第6巻第4号、1986年
冬、40〜62ページ)を参照。
【0003】本発明は、オブジェクト指向プログラミン
グにより、データ抽象化と、引継ぎとを指す。データ抽
象化は、オブジェクトがアプリケーションプログラマー
に対し1組の方法を経てインタフェースを提示すること
を意味する。オブジェクトの内部データ構造の操作及び
それらの方法の実現はオブジェクトのユーザーに対して
は全く隠すところなく明らかにされる。従って、アプリ
ケーションプログラマーは、オブジェクトのユーザーが
その手順呼出しを変更する必要なく、オブジェクトの根
元的実現を変更することができる。
グにより、データ抽象化と、引継ぎとを指す。データ抽
象化は、オブジェクトがアプリケーションプログラマー
に対し1組の方法を経てインタフェースを提示すること
を意味する。オブジェクトの内部データ構造の操作及び
それらの方法の実現はオブジェクトのユーザーに対して
は全く隠すところなく明らかにされる。従って、アプリ
ケーションプログラマーは、オブジェクトのユーザーが
その手順呼出しを変更する必要なく、オブジェクトの根
元的実現を変更することができる。
【0004】引継は、既存のクラスの変形として新たな
クラスを規定することを意味する。クラスとは、1つ又
は2つ以上の類似するオブジェクトを記述する樹木構造
である。そこでユーザーは、この引継ぎによって、既存
のソフトウエアを再利用して新たなソフトウエアを再利
用して新たなソフトウエアを作成することができるので
ある。
クラスを規定することを意味する。クラスとは、1つ又
は2つ以上の類似するオブジェクトを記述する樹木構造
である。そこでユーザーは、この引継ぎによって、既存
のソフトウエアを再利用して新たなソフトウエアを再利
用して新たなソフトウエアを作成することができるので
ある。
【0005】Cを使用して構成されている環境の多く
は、元来、オブジェクト指向である。ウインドウシステ
ムに基づいて構成されたグラフィカルユーザーインタフ
ェースはその1例である。ところが、Cはオブジェクト
指向プログラミングを支援しない。L.Teslerの「Progra
mming Experiences」 (Byte,1986年8月刊)
を参照。
は、元来、オブジェクト指向である。ウインドウシステ
ムに基づいて構成されたグラフィカルユーザーインタフ
ェースはその1例である。ところが、Cはオブジェクト
指向プログラミングを支援しない。L.Teslerの「Progra
mming Experiences」 (Byte,1986年8月刊)
を参照。
【0006】オブジェクト指向プログラミング機能をC
に導入するために、いくつかの方式が応用されている。
その中には、モジューラ設計をCに取り入れることが可
能か否かを探ったものがある。D.Kalyan の「Modular P
rogramming in C:An Approach and Example 」(SIG
PLAN Notices,第20巻第3号,1985
年3月刊,9〜15ページ)を参照。モジューラ方式
は、1つのファイルに導入されている静的変数に基づく
ものである。オブジェクトCなどのプリプロセッサを必
要とする方式もある。たとえば S.Hookの「Objec
tive ー C Reference Manual,Version 3.0」(Produ
ctivity Products International, 1984年12月)
を参照。さらに別の方式は、オブジェクト指向プログラ
ミングを実現するに当たってC++などの全く異なる言語
を規定しようとしている。B.Stroustrup の「The C++
Programming Language 」(Addison-Wesley, 1986
年刊)を参照。
に導入するために、いくつかの方式が応用されている。
その中には、モジューラ設計をCに取り入れることが可
能か否かを探ったものがある。D.Kalyan の「Modular P
rogramming in C:An Approach and Example 」(SIG
PLAN Notices,第20巻第3号,1985
年3月刊,9〜15ページ)を参照。モジューラ方式
は、1つのファイルに導入されている静的変数に基づく
ものである。オブジェクトCなどのプリプロセッサを必
要とする方式もある。たとえば S.Hookの「Objec
tive ー C Reference Manual,Version 3.0」(Produ
ctivity Products International, 1984年12月)
を参照。さらに別の方式は、オブジェクト指向プログラ
ミングを実現するに当たってC++などの全く異なる言語
を規定しようとしている。B.Stroustrup の「The C++
Programming Language 」(Addison-Wesley, 1986
年刊)を参照。
【0007】本発明はCを修正又は拡張せずにオブジェ
クト指向プログラミングをCで実現する。本発明が支援
するオブジェクト指向環境は、X11プロトコル(R.W.
Scheifler 及びJ.Gettys の「The X Window System 」
(ACM Transactions on Graphics 第5巻第2号,19
86年4月刊,79〜109ページ )を参照)と、O
PEN LOOK仕様とを支援するXウインドウシステ
ムバージョン11を含む。OPPN LOOKは、UN
IXシステムへの直接操作グラフィカルインタフェース
を規定する。(UNIXはAT&Tの登録商標であ
る。)たとえば、ファイルにアイコン表示を与えるUN
IXファイルシステムへの視角インタフェースを構成す
るファイルマネジャと呼ばれるアプリケーションがあ
る。実行可能物,ディレクトリ及びデータファイルにつ
いては、様々に異なるアイコン表示がある。マウスなど
の入力装置を使用すると、ファイルにクリックし、所有
権やアクセス権利などのファイルの属性又は特性を照会
することが可能である。OPENLOOKの下でも、フ
ァイルのアイコン表示に二重クリックし、それをアプリ
ケーションと共に見ることができる。オブジェクトが実
行可能であれば、アイコンに対応するプログラムが実行
される。OPEN LOOK Graphical User Interfa
ce Functional Specification (AT&T and Sun Mic
rosystems,Inc., 1988年刊)を参照。
クト指向プログラミングをCで実現する。本発明が支援
するオブジェクト指向環境は、X11プロトコル(R.W.
Scheifler 及びJ.Gettys の「The X Window System 」
(ACM Transactions on Graphics 第5巻第2号,19
86年4月刊,79〜109ページ )を参照)と、O
PEN LOOK仕様とを支援するXウインドウシステ
ムバージョン11を含む。OPPN LOOKは、UN
IXシステムへの直接操作グラフィカルインタフェース
を規定する。(UNIXはAT&Tの登録商標であ
る。)たとえば、ファイルにアイコン表示を与えるUN
IXファイルシステムへの視角インタフェースを構成す
るファイルマネジャと呼ばれるアプリケーションがあ
る。実行可能物,ディレクトリ及びデータファイルにつ
いては、様々に異なるアイコン表示がある。マウスなど
の入力装置を使用すると、ファイルにクリックし、所有
権やアクセス権利などのファイルの属性又は特性を照会
することが可能である。OPENLOOKの下でも、フ
ァイルのアイコン表示に二重クリックし、それをアプリ
ケーションと共に見ることができる。オブジェクトが実
行可能であれば、アイコンに対応するプログラムが実行
される。OPEN LOOK Graphical User Interfa
ce Functional Specification (AT&T and Sun Mic
rosystems,Inc., 1988年刊)を参照。
【0008】X11ウインドウシステムは、ウインドウ
サーバ及びアプリケーションプロセスの通信の基礎とな
る分散形ウインドウプロトコルを規定する。Xライブラ
リと呼ばれるコンパニオンライブラリは、プロトコルに
対して手順インタフェースを構成する。アプリケーショ
ンはXライブラリの中の手順にウインドウ管理指令及び
ウインドウ描出指令をウインドウサーバに向かって送信
させる。ウインドウサーバは、マウスを動かす又はキー
ボードをたたくなどのユーザー側のアクションと、スク
リーン上の幾何学的変化とに応答して、事象通知をアプ
リケーションへ送信する。ウインドウライブラリは事象
を待合せし、それらをレコード構造にパッケージングす
る。アプリケーションは次の事象に合わせて周期的にX
ライブラリをポーリングする。J.Gettys,R.Newman,R.W.
Scheilfer の「Xlib-C LanguageInterfase」(Massachu
setts Institute of Technology,1987年刊)を参
照。Xウインドウシステムは特定のユーザーインタフェ
ースの型を規定するのではなく、多数のインタフェース
を支援するためのメカニズムを提供する。プログラマー
はXライブラリを使用してアプリケーションを形成する
ことができるが、このライブラリは冗長であり、これを
正しく使用するのは難しい。ウインドウマネジャコンベ
ンションを処理するだけでも、数百行分のコードが必要
になることもある。本発明は、Xウインドウシステム及
びXライブラリと共に使用され、OPEN LOOK仕
様に基づいてユーザーインタフェースを実現するように
設計されている。本発明は、データ構造及び手段を様々
なファイルに区分するための方法を提供する。さらに、
本発明は、ユーザーインタフェースをアプリケーション
の一部として迅速に作成するために新たなオブジェクト
を規定する(Xライブラリの一部から標準クラスを例示
する)ための方法を開示する。
サーバ及びアプリケーションプロセスの通信の基礎とな
る分散形ウインドウプロトコルを規定する。Xライブラ
リと呼ばれるコンパニオンライブラリは、プロトコルに
対して手順インタフェースを構成する。アプリケーショ
ンはXライブラリの中の手順にウインドウ管理指令及び
ウインドウ描出指令をウインドウサーバに向かって送信
させる。ウインドウサーバは、マウスを動かす又はキー
ボードをたたくなどのユーザー側のアクションと、スク
リーン上の幾何学的変化とに応答して、事象通知をアプ
リケーションへ送信する。ウインドウライブラリは事象
を待合せし、それらをレコード構造にパッケージングす
る。アプリケーションは次の事象に合わせて周期的にX
ライブラリをポーリングする。J.Gettys,R.Newman,R.W.
Scheilfer の「Xlib-C LanguageInterfase」(Massachu
setts Institute of Technology,1987年刊)を参
照。Xウインドウシステムは特定のユーザーインタフェ
ースの型を規定するのではなく、多数のインタフェース
を支援するためのメカニズムを提供する。プログラマー
はXライブラリを使用してアプリケーションを形成する
ことができるが、このライブラリは冗長であり、これを
正しく使用するのは難しい。ウインドウマネジャコンベ
ンションを処理するだけでも、数百行分のコードが必要
になることもある。本発明は、Xウインドウシステム及
びXライブラリと共に使用され、OPEN LOOK仕
様に基づいてユーザーインタフェースを実現するように
設計されている。本発明は、データ構造及び手段を様々
なファイルに区分するための方法を提供する。さらに、
本発明は、ユーザーインタフェースをアプリケーション
の一部として迅速に作成するために新たなオブジェクト
を規定する(Xライブラリの一部から標準クラスを例示
する)ための方法を開示する。
【0009】出願人が知っている最も近い技術は、Digi
tal Electronic Corporation のxtイントリンシクス
ツールキットである。J.McCormack,P.Asente の「An Ov
erview of the X Toolkit (Proceedings of the ACM S
IGGRAPH Symposium on UserInterface Software, 19
88年10月,46〜55ページ)及び J.McCormackと
P.Asent の「Using the X Toolkit,or How to Write a
Widget 」(Proceedings of the Summer,1988 USENIX C
onference,1〜13ページ)を参照。本発明は、(1)
xtイントリクスが全てのオブジェクトに対して一様な
インタフェースを有していないのに比べて、一様なイン
タフェースを有する、(2)xtイントリクスが連鎖す
る事象ハンドラを有していないのに比べて、連鎖する事
象ハンドラを有する、(3)xtイントリンシクスがそ
のウイジットを資源を有するものと規定するのに対し、
本発明はそのオブジェクトを属性から構成されるものと
して規定するという点で、xtイントリンシクスとは異
なる。属性と資源は同じような機能、すなわち、オブジ
ェクト又はウイジット内のデータ要素を参照するという
機能を実行するが、属性はオブジェクト内のデータ要素
を必ず参照するとは限らない。本発明におけるオブジェ
クトの属性は、たとえば、関数呼出しであっても良く、
それに対し、資源は定義の上ではウイジットの中にある
何らかのものである。また、(4)本発明によれば、プ
ログラマーは親と子の関係を変化させることができる
が、xtイントリンシクスでは不可能であるという相違
点もある。
tal Electronic Corporation のxtイントリンシクス
ツールキットである。J.McCormack,P.Asente の「An Ov
erview of the X Toolkit (Proceedings of the ACM S
IGGRAPH Symposium on UserInterface Software, 19
88年10月,46〜55ページ)及び J.McCormackと
P.Asent の「Using the X Toolkit,or How to Write a
Widget 」(Proceedings of the Summer,1988 USENIX C
onference,1〜13ページ)を参照。本発明は、(1)
xtイントリクスが全てのオブジェクトに対して一様な
インタフェースを有していないのに比べて、一様なイン
タフェースを有する、(2)xtイントリクスが連鎖す
る事象ハンドラを有していないのに比べて、連鎖する事
象ハンドラを有する、(3)xtイントリンシクスがそ
のウイジットを資源を有するものと規定するのに対し、
本発明はそのオブジェクトを属性から構成されるものと
して規定するという点で、xtイントリンシクスとは異
なる。属性と資源は同じような機能、すなわち、オブジ
ェクト又はウイジット内のデータ要素を参照するという
機能を実行するが、属性はオブジェクト内のデータ要素
を必ず参照するとは限らない。本発明におけるオブジェ
クトの属性は、たとえば、関数呼出しであっても良く、
それに対し、資源は定義の上ではウイジットの中にある
何らかのものである。また、(4)本発明によれば、プ
ログラマーは親と子の関係を変化させることができる
が、xtイントリンシクスでは不可能であるという相違
点もある。
【0010】
【発明が解決しようとする課題】従って、本発明の目的
は、一様なユーザーインタフェースを提供することによ
り、Xアプリケーションを書込むために必要とされる努
力を最小限に抑えることである。本発明の別の目的は、
C言語を修正又は拡張せずにXアプリケーションを書込
むために一様なインタフェースを提供することである。
本発明のさらに別の目的は、Xアプリケーションのユー
ザーによるカスタマイズをデータ抽象化によって助成す
ることである。本発明のさらに別の目的は、引継によっ
てユーザーがコードを再利用できるようにすることであ
る。
は、一様なユーザーインタフェースを提供することによ
り、Xアプリケーションを書込むために必要とされる努
力を最小限に抑えることである。本発明の別の目的は、
C言語を修正又は拡張せずにXアプリケーションを書込
むために一様なインタフェースを提供することである。
本発明のさらに別の目的は、Xアプリケーションのユー
ザーによるカスタマイズをデータ抽象化によって助成す
ることである。本発明のさらに別の目的は、引継によっ
てユーザーがコードを再利用できるようにすることであ
る。
【0011】
【課題を解決するための手段】本発明は、無修正C言語
で書込まれたオブジェクト指向ユーザーインタフェース
を説明する。ユーザーインタフェースはCの上にある層
(レイヤー)と、オブジェクトとして知られている1組
のユーザーインタフェースコンポーネントという2つの
部分から構成される。本発明はウインドウライブラリに
対して一様なオブジェクト指向ユーザーインタフェース
を提供する。インタフェース層により、アプリケーショ
ンは、ウインドウライブラリの一部である標準クラスを
作成することができる。インタフェース層は、さらに、
オブジェクトを使用して、ユーザーインタフェースをア
プリケーションの一部としてデータ抽象化を経て迅速且
つ一様に作成する。加えて、本発明は引継ぎによって新
たなクラスの開発を支援する。
で書込まれたオブジェクト指向ユーザーインタフェース
を説明する。ユーザーインタフェースはCの上にある層
(レイヤー)と、オブジェクトとして知られている1組
のユーザーインタフェースコンポーネントという2つの
部分から構成される。本発明はウインドウライブラリに
対して一様なオブジェクト指向ユーザーインタフェース
を提供する。インタフェース層により、アプリケーショ
ンは、ウインドウライブラリの一部である標準クラスを
作成することができる。インタフェース層は、さらに、
オブジェクトを使用して、ユーザーインタフェースをア
プリケーションの一部としてデータ抽象化を経て迅速且
つ一様に作成する。加えて、本発明は引継ぎによって新
たなクラスの開発を支援する。
【0012】〔表記法及び用語〕以下の詳細な説明の大
半は、コンピュータメモリの内部におけるデータビット
の操作をアルゴリズム及び記号表示によって表わしてい
る。そのようなアルゴリズムによる説明や表示は、デー
タ処理技術に熟達した人がその作業の内容を同じ分野の
当業者に最も有効に伝達するために使用する手段であ
る。
半は、コンピュータメモリの内部におけるデータビット
の操作をアルゴリズム及び記号表示によって表わしてい
る。そのようなアルゴリズムによる説明や表示は、デー
タ処理技術に熟達した人がその作業の内容を同じ分野の
当業者に最も有効に伝達するために使用する手段であ
る。
【0013】ここでは、また、一般的にも、アルゴリズ
ムは所望の結果に至る首尾一貫した一連のステップであ
る。それらのステップは、物理的な量の物理的操作を要
求するステップである。通常、物理的な記憶、転送、組
合わせ、比較及びその他の方法による操作が可能である
電気的信号又は磁気信号の形態をとるが、必ずしもそう
である必要はない。場合によっては、主に一般に使用さ
れている用語であるという理由により、それらの信号を
ビット、値、要素、オブジェクト、記号、文字、項、数
などと呼ぶと好都合であることがわかる。ただし、これ
らの用語及びそれに類する用語は全て適切な物理的な量
と関連させるべきものであり、そのような量に便宜上付
されたラベルであるにすぎないということを忘れてはな
らない。
ムは所望の結果に至る首尾一貫した一連のステップであ
る。それらのステップは、物理的な量の物理的操作を要
求するステップである。通常、物理的な記憶、転送、組
合わせ、比較及びその他の方法による操作が可能である
電気的信号又は磁気信号の形態をとるが、必ずしもそう
である必要はない。場合によっては、主に一般に使用さ
れている用語であるという理由により、それらの信号を
ビット、値、要素、オブジェクト、記号、文字、項、数
などと呼ぶと好都合であることがわかる。ただし、これ
らの用語及びそれに類する用語は全て適切な物理的な量
と関連させるべきものであり、そのような量に便宜上付
されたラベルであるにすぎないということを忘れてはな
らない。
【0014】さらに、実行する操作を、一般にはオペレ
ータが実行する知的動作と関連している加算又は比較な
どの用語で表すことが多いが、本発明の一部を成す、こ
こで説明する動作のいずれにおいても、そのようなオペ
レータの能力は不要であり、多くの場合に望ましくな
い。動作は機械の動作である。本発明の動作を実行する
のに有用な機械には、汎用デジタルコンピュータ又は他
の同様の装置がある。いずれの場合にも、コンピュータ
を動作させるに際しての動作の方法と、計算それ自体の
方法との明確な区別に留意すべきである。本発明は、電
気的信号又は他の物理的(たとえば、機械的、化学的)
信号を処理して、他の所望の物理的信号を発生するため
にコンピュータを動作させる方法ステップに関する。
ータが実行する知的動作と関連している加算又は比較な
どの用語で表すことが多いが、本発明の一部を成す、こ
こで説明する動作のいずれにおいても、そのようなオペ
レータの能力は不要であり、多くの場合に望ましくな
い。動作は機械の動作である。本発明の動作を実行する
のに有用な機械には、汎用デジタルコンピュータ又は他
の同様の装置がある。いずれの場合にも、コンピュータ
を動作させるに際しての動作の方法と、計算それ自体の
方法との明確な区別に留意すべきである。本発明は、電
気的信号又は他の物理的(たとえば、機械的、化学的)
信号を処理して、他の所望の物理的信号を発生するため
にコンピュータを動作させる方法ステップに関する。
【0015】また、本発明は、そのような動作を実行す
る装置にも関する。この装置は要求される目的に合わせ
て特別に構成されても良いが、汎用コンピュータをコン
ピュータに記憶させたコンピュータプログラムにより選
択的に動作させるか又は再構成しても良い。ここに提示
するアルゴリズムは、本来、特定のコンピュータ又は他
の装置に関連するものではない。すなわち、以下に示す
教示に従って書かれたプログラムと共に様々な汎用機械
を使用して良い。あるいは、必要な方法ステップを実行
するためにさらに特殊化させた装置を構成する方が好都
合であると判明する場合もあろう。そのような多様な機
械について要求される構造は以下の説明から明白になる
であろう。
る装置にも関する。この装置は要求される目的に合わせ
て特別に構成されても良いが、汎用コンピュータをコン
ピュータに記憶させたコンピュータプログラムにより選
択的に動作させるか又は再構成しても良い。ここに提示
するアルゴリズムは、本来、特定のコンピュータ又は他
の装置に関連するものではない。すなわち、以下に示す
教示に従って書かれたプログラムと共に様々な汎用機械
を使用して良い。あるいは、必要な方法ステップを実行
するためにさらに特殊化させた装置を構成する方が好都
合であると判明する場合もあろう。そのような多様な機
械について要求される構造は以下の説明から明白になる
であろう。
【0016】
【実施例】システム全般の構成 図1は、本発明と共に使用すべき代表的なウインドウベ
ースシステムを示す。図示する通り、コンピュータネッ
トワーク10は4つの主要な構成要素を含む。その第1
のものは、コンピュータネットワーク10の他の部分と
の間で適切に構造化された形態の情報を通信し合うため
に使用される入出力装置12、14及び16である。コ
ンピュータネットワーク10の一部としてさらに示され
ているのは、第2の構成要素のサーバ18であり、これ
はウインドウサーバ20と、装置ライブラリ22とを含
む。サーバ18は多くの汎用コンピュータや、ほぼ全て
の専用コンピュータで通常見られる。サーバ18の役割
を果たすのに適するサーバの特定の例としては、カリフ
ォルニア州マウンテンビューの Sun Microsystems,Inc.
が製造している機械があるう。同じような能力を備えた
他のコンピュータを以下に説明する機能を実行するよう
な形に適合させるのが容易であることは言うまでもない
であろう。コンピュータネットワーク10の中には1つ
のサーバしか示されていないことを理解すべきである。
多くのコンピュータネットワークでは、他のコンピュー
タを制御するためには、複数のサーバがネットワークに
結合していると考えられる。
ースシステムを示す。図示する通り、コンピュータネッ
トワーク10は4つの主要な構成要素を含む。その第1
のものは、コンピュータネットワーク10の他の部分と
の間で適切に構造化された形態の情報を通信し合うため
に使用される入出力装置12、14及び16である。コ
ンピュータネットワーク10の一部としてさらに示され
ているのは、第2の構成要素のサーバ18であり、これ
はウインドウサーバ20と、装置ライブラリ22とを含
む。サーバ18は多くの汎用コンピュータや、ほぼ全て
の専用コンピュータで通常見られる。サーバ18の役割
を果たすのに適するサーバの特定の例としては、カリフ
ォルニア州マウンテンビューの Sun Microsystems,Inc.
が製造している機械があるう。同じような能力を備えた
他のコンピュータを以下に説明する機能を実行するよう
な形に適合させるのが容易であることは言うまでもない
であろう。コンピュータネットワーク10の中には1つ
のサーバしか示されていないことを理解すべきである。
多くのコンピュータネットワークでは、他のコンピュー
タを制御するためには、複数のサーバがネットワークに
結合していると考えられる。
【0017】図1に示すコンピュータネットワーク10
の第3の構成要素はリンク24から構成されている。代
表的なリンクの例としては、ケーブル,専用回線,光フ
ァイバなどがある。コンピュータネットワークの第4の
構成要素はアプリケーションプログラムインタフェース
(API)26である。API26はウインドウライブ
ラリ28と、ウインドウツールキット30と、アプリケ
ーション32とをさらに含んでいる。ウインドウライブ
ラリ28は、コンピュータネットワーク10のクライア
ントサーバプロトコルに対して手順インタフェースを構
成する。アプリケーション32は、ウインドウ管理指令
及びウインドウ描出指令をサーバ18へ送信するため
に、ウインドウライブラリ28の中の手順を呼出す。X
11ウインドウシステムを実現するウインドウライブラ
リの1例はXライブラリである。J.Gettys, R.Newman
及び R.W.Scheifler の「X lib-C Language Interfac
e」(Massachusetts Institute of Technology,198
7年刊)を参照。本発明はウインドウツールキット30
を備えている。ウインドウツールキット30は、オブジ
ェクト指向方式でのプログラミングを可能にする一連の
指針に基づいている。ウインドウツールキット30はオ
ブジェクトと呼ばれる複数の構成要素から構成されてい
る。オブジェクトは、ウインドウツールキット30及び
ウインドウライブラリ28に対する手順呼出しを使用す
ることにより実現されるユーザーインタフェースコンポ
ーネントである。アプリケーション32はウインドウツ
ールキット30を使用して、オブジェクトをひとまとめ
にしてユーザーインタフェースに結合し、このユーザー
インタフェースをアプリケーションにより実現される機
能に連係させる。本発明によれば、アプリケーションプ
ログラマーは作成すべきオブジェクト(ウインドウ,メ
ニュー,スクロールバーなど)を可変長属性値リストを
使用して指定する。「Varargs (3)」Sun OS Referen
ce Manual (Sun Microsystems,Inc.:改訂A版,19
88年5月9日刊)(Part No.:800−1751−1
0)。属性値リストは、オブジェクトごとの通常の行動
が既にあらかじめ規定されており、そのため、ディフォ
ルト行動からの偏差のみを指定すれば良いということを
定めている。従って、本発明に従ってあらかじめ構成さ
れているユーザーインタフェースコンポーネントを使用
すると、ボイラープレートコードは不要になる。
の第3の構成要素はリンク24から構成されている。代
表的なリンクの例としては、ケーブル,専用回線,光フ
ァイバなどがある。コンピュータネットワークの第4の
構成要素はアプリケーションプログラムインタフェース
(API)26である。API26はウインドウライブ
ラリ28と、ウインドウツールキット30と、アプリケ
ーション32とをさらに含んでいる。ウインドウライブ
ラリ28は、コンピュータネットワーク10のクライア
ントサーバプロトコルに対して手順インタフェースを構
成する。アプリケーション32は、ウインドウ管理指令
及びウインドウ描出指令をサーバ18へ送信するため
に、ウインドウライブラリ28の中の手順を呼出す。X
11ウインドウシステムを実現するウインドウライブラ
リの1例はXライブラリである。J.Gettys, R.Newman
及び R.W.Scheifler の「X lib-C Language Interfac
e」(Massachusetts Institute of Technology,198
7年刊)を参照。本発明はウインドウツールキット30
を備えている。ウインドウツールキット30は、オブジ
ェクト指向方式でのプログラミングを可能にする一連の
指針に基づいている。ウインドウツールキット30はオ
ブジェクトと呼ばれる複数の構成要素から構成されてい
る。オブジェクトは、ウインドウツールキット30及び
ウインドウライブラリ28に対する手順呼出しを使用す
ることにより実現されるユーザーインタフェースコンポ
ーネントである。アプリケーション32はウインドウツ
ールキット30を使用して、オブジェクトをひとまとめ
にしてユーザーインタフェースに結合し、このユーザー
インタフェースをアプリケーションにより実現される機
能に連係させる。本発明によれば、アプリケーションプ
ログラマーは作成すべきオブジェクト(ウインドウ,メ
ニュー,スクロールバーなど)を可変長属性値リストを
使用して指定する。「Varargs (3)」Sun OS Referen
ce Manual (Sun Microsystems,Inc.:改訂A版,19
88年5月9日刊)(Part No.:800−1751−1
0)。属性値リストは、オブジェクトごとの通常の行動
が既にあらかじめ規定されており、そのため、ディフォ
ルト行動からの偏差のみを指定すれば良いということを
定めている。従って、本発明に従ってあらかじめ構成さ
れているユーザーインタフェースコンポーネントを使用
すると、ボイラープレートコードは不要になる。
【0018】そこで、アプリケーションプログラマー
は、事象又はユーザー側のアクションのアプリケーショ
ンを通知するためにウインドウツールキットが呼び出す
呼戻し手順を規定する。最後に、アプリケーション特定
コードを登録又は連結すると、ウインドウツールキット
はアプリケーションを管理することができる。
は、事象又はユーザー側のアクションのアプリケーショ
ンを通知するためにウインドウツールキットが呼び出す
呼戻し手順を規定する。最後に、アプリケーション特定
コードを登録又は連結すると、ウインドウツールキット
はアプリケーションを管理することができる。
【0019】プロセスの説明 本発明は、オブジェクト指向、事象駆動方式に従い且つ
OPEN LOOKグラフィカルユーザーインタフェー
スを実現するX11ベースユーザーインタフェースツー
ルキットである。「OPEN LOOK Graphical Us
er InterfaceFunctional Specifications 」(AT&
T,Sun Microsystems,Inc.,1988年刊)を参照。本
発明によれば、アプリケーションプログラマーはオブジ
ェクトを使用して、ユーザーインタフェースをアプリケ
ーションの一部として迅速に作成することができる。
OPEN LOOKグラフィカルユーザーインタフェー
スを実現するX11ベースユーザーインタフェースツー
ルキットである。「OPEN LOOK Graphical Us
er InterfaceFunctional Specifications 」(AT&
T,Sun Microsystems,Inc.,1988年刊)を参照。本
発明によれば、アプリケーションプログラマーはオブジ
ェクトを使用して、ユーザーインタフェースをアプリケ
ーションの一部として迅速に作成することができる。
【0020】本発明は事象駆動ツールキットである。分
散形ウインドウシステムに関連させていうならば、アプ
リケーションはサーバへ要求を送信し、サーバから事象
を受信する。本発明はアプリケーション/サーバプロト
コルの外からシステム事象を処理する。これは、特殊な
呼戻し手順‐事象ハンドラを使用することにより実行さ
れる。図1では、ウインドウライブラリ28はプロトコ
ルに対して手順インタフェースを構成する。アプリケー
ション32は、ウインドウ管理指令及びウインドウ描出
指令をサーバ18へ送信するために、ウインドウツール
キット30にある事象ハンドラを呼出す。サーバ18は
ユーザー側のアクション(マウス14を動かす又はキー
ボード12をたたくなど)に応答して事象通知をアプリ
ケーションへ送信する。図2においては、オブジェクト
に関わる事象ハンドラを初期設定時に中央通知子34に
よって登録する。S.Evans の「The Notifier 」(Proce
edings of Summer USE‐NIX Conference,1986年)
を参照。ウインドウサーバ20〜20′からネットワー
クリンク24を介して事象が到着すると、適切な事象ハ
ンドラが呼出される。事象ハンドラはオブジェクトの状
態に影響を及ぼす。以下に詳細に説明するが、オブジェ
クトの状態を変える方法としては、5つの方法が一般に
使用されている。事象ハンドラは実例ごとに処理され
る。クラスによっては、初期設定時にインストールされ
るディフォルト事象ハンドラを有する。さらに重要であ
るのは、本発明の事象ハンドラが連鎖していることであ
る。これに対し、従来の方法の事象ハンドラは連鎖して
いない。連鎖する事象ハンドラはオブジェクト指向プロ
グラミングの原理を支援する。また、サーバ18から受
信した事象の処理をクラスによって区分することも可能
である。再び図2を参照すると、通知子34は、ステッ
プ36で事象を翻訳し、ステップ38ではその事象をど
のオブジェクトに配分すべきかを判定し、最後にステッ
プ40〜40′において適切な呼戻し手順を呼出す。事
象ハンドラを連鎖させると、オブジェクトはファイル記
述子35、疑似TTYへの入力及びUNIX信号37に
対して通知子34によって呼戻しを登録することもでき
る。
散形ウインドウシステムに関連させていうならば、アプ
リケーションはサーバへ要求を送信し、サーバから事象
を受信する。本発明はアプリケーション/サーバプロト
コルの外からシステム事象を処理する。これは、特殊な
呼戻し手順‐事象ハンドラを使用することにより実行さ
れる。図1では、ウインドウライブラリ28はプロトコ
ルに対して手順インタフェースを構成する。アプリケー
ション32は、ウインドウ管理指令及びウインドウ描出
指令をサーバ18へ送信するために、ウインドウツール
キット30にある事象ハンドラを呼出す。サーバ18は
ユーザー側のアクション(マウス14を動かす又はキー
ボード12をたたくなど)に応答して事象通知をアプリ
ケーションへ送信する。図2においては、オブジェクト
に関わる事象ハンドラを初期設定時に中央通知子34に
よって登録する。S.Evans の「The Notifier 」(Proce
edings of Summer USE‐NIX Conference,1986年)
を参照。ウインドウサーバ20〜20′からネットワー
クリンク24を介して事象が到着すると、適切な事象ハ
ンドラが呼出される。事象ハンドラはオブジェクトの状
態に影響を及ぼす。以下に詳細に説明するが、オブジェ
クトの状態を変える方法としては、5つの方法が一般に
使用されている。事象ハンドラは実例ごとに処理され
る。クラスによっては、初期設定時にインストールされ
るディフォルト事象ハンドラを有する。さらに重要であ
るのは、本発明の事象ハンドラが連鎖していることであ
る。これに対し、従来の方法の事象ハンドラは連鎖して
いない。連鎖する事象ハンドラはオブジェクト指向プロ
グラミングの原理を支援する。また、サーバ18から受
信した事象の処理をクラスによって区分することも可能
である。再び図2を参照すると、通知子34は、ステッ
プ36で事象を翻訳し、ステップ38ではその事象をど
のオブジェクトに配分すべきかを判定し、最後にステッ
プ40〜40′において適切な呼戻し手順を呼出す。事
象ハンドラを連鎖させると、オブジェクトはファイル記
述子35、疑似TTYへの入力及びUNIX信号37に
対して通知子34によって呼戻しを登録することもでき
る。
【0021】本発明は、アプリケーションに対する標準
的な探索と感知を規定する機能仕様であるOPEN L
OOK GRAPHICAL USER INTERF
ACEをさらに実現する。この仕様は、カーソル,メニ
ュー,アイコン及びウインドウ宣言を規定する大規模な
一連の標準画像を記載している。
的な探索と感知を規定する機能仕様であるOPEN L
OOK GRAPHICAL USER INTERF
ACEをさらに実現する。この仕様は、カーソル,メニ
ュー,アイコン及びウインドウ宣言を規定する大規模な
一連の標準画像を記載している。
【0022】本発明は、静的サブクラス分類を伴うオブ
ジェクト指向システムである。このシステムは、ビルデ
ィングブロック、又はウインドウ,テキスト,パネル,
アイコンなどのオブジェクトを使用してアプリケーショ
ンプログラマーがアプリケーションを構成できるという
点でオブジェクト指向といえるのである。本発明におけ
る全てのオブジェクトは共通する1組の機能を共用する
が、属性の可変長引数リストの機能を保持している。
ジェクト指向システムである。このシステムは、ビルデ
ィングブロック、又はウインドウ,テキスト,パネル,
アイコンなどのオブジェクトを使用してアプリケーショ
ンプログラマーがアプリケーションを構成できるという
点でオブジェクト指向といえるのである。本発明におけ
る全てのオブジェクトは共通する1組の機能を共用する
が、属性の可変長引数リストの機能を保持している。
【0023】図3は、本発明に従って引継ぎを実現する
に際して使用するオブジェクトの樹木構造(クラス階
層)を示す。オブジェクト指向システムの観点からいえ
ば、ウインドウシステムで重要である樹木構造は2つあ
る。その第1のものはオブジェクトの型の階層である。
この静的樹木は、ウインドウツールキットを使用してア
プリケーションプログラマーが作成できるオブジェクト
の全ての型のリストである。オブジェクトのそれぞれの
型はクラスとして知られている。この静的樹木は、様々
なクラスがデータと機能をどのように共用するかを表
す。第2の階層は実例樹木である。実例樹木は、クラス
が例示され且つ連係されるときに作成される。実例樹木
は、ウインドウシステムのユーザーが実際にスクリーン
上に見るものを表す。実例樹木は動的構造であり、オブ
ジェクトユーザーにより操作される。アプリケーション
は、主アプリケーションウインドウをルートとする実例
の樹木から構成されるのが普通である。このウインドウ
自体はルートの試行、すなわち、バックグラウンドウイ
ンドウである。
に際して使用するオブジェクトの樹木構造(クラス階
層)を示す。オブジェクト指向システムの観点からいえ
ば、ウインドウシステムで重要である樹木構造は2つあ
る。その第1のものはオブジェクトの型の階層である。
この静的樹木は、ウインドウツールキットを使用してア
プリケーションプログラマーが作成できるオブジェクト
の全ての型のリストである。オブジェクトのそれぞれの
型はクラスとして知られている。この静的樹木は、様々
なクラスがデータと機能をどのように共用するかを表
す。第2の階層は実例樹木である。実例樹木は、クラス
が例示され且つ連係されるときに作成される。実例樹木
は、ウインドウシステムのユーザーが実際にスクリーン
上に見るものを表す。実例樹木は動的構造であり、オブ
ジェクトユーザーにより操作される。アプリケーション
は、主アプリケーションウインドウをルートとする実例
の樹木から構成されるのが普通である。このウインドウ
自体はルートの試行、すなわち、バックグラウンドウイ
ンドウである。
【0024】再び図3に戻ると、図3には、総称オブジ
ェクトの実例樹木と、クラスの関係とが示されている。
たとえば、パネル44は、ウインドウの特定のサブクラ
スであるキャンバスのサブクラスである。このウインド
ウは総称オブジェクトの特定のサブクラスである。図3
に示すクラスは複合クラスと、基本クラスとにさらに細
分される。フレーム41、メニュー42、パネル44及
び項52などのクラスは複合クラスであり、他の全ての
クラスは基本クラスである。複合クラスの実例は実例樹
木における1枚の葉又は内部ノードのいずれかであると
考えられる。内部ノードとして、複合実例はいくつかの
子実例を有していても良い。複合実例はその子実例の幾
何学管理を行うべきものであり、場合によっては、子へ
の描出は親の境界にクリッピングされる。基本クラスの
メニューボタン実例は複合クラスの実例である。
ェクトの実例樹木と、クラスの関係とが示されている。
たとえば、パネル44は、ウインドウの特定のサブクラ
スであるキャンバスのサブクラスである。このウインド
ウは総称オブジェクトの特定のサブクラスである。図3
に示すクラスは複合クラスと、基本クラスとにさらに細
分される。フレーム41、メニュー42、パネル44及
び項52などのクラスは複合クラスであり、他の全ての
クラスは基本クラスである。複合クラスの実例は実例樹
木における1枚の葉又は内部ノードのいずれかであると
考えられる。内部ノードとして、複合実例はいくつかの
子実例を有していても良い。複合実例はその子実例の幾
何学管理を行うべきものであり、場合によっては、子へ
の描出は親の境界にクリッピングされる。基本クラスの
メニューボタン実例は複合クラスの実例である。
【0025】データの抽象化 本発明は静的サブクラス分類モデルを実現する。コンパ
イルの時点で、クラス階層と、クラスの組成とを規定
し、それらをランの時点で変更することはできない。す
なわち、ランの時点で新たなクラスを作成することはで
きず、また、クラスに新たな特性を追加することもでき
ない。クラスから1つのオブジェクトが例示されるたび
に、呼出し側は例示されたオブジェクトに対する不透明
ハンドルを得る。不透明ハンドルはオブジェクト構造に
対するハンドルであるが、ハンドルのユーザーはそれが
表示しているデータの定義を知らされていない。そのた
め、オブジェクトのユーザーはオブジェクトの内部デー
タにアクセスすることができない。オブジェクトは、そ
のオブジェクトがオブジェクトのユーザーに対して示す
行動を規定するいくつかの属性を有している。本発明は
オブジェクトの属性をアクセスするために公用方法を5
つだけ提供する。すなわち、「作成」機能(xv_creat
e)を使用することによりオブジェクトを作成し;「発
見」機能(xv_find)を使用することによりオブジェク
トを位置決めし且つ共用し;共通のオブジェクトが位置
決めされなければ、(xv_find)は(xv_create)に戻
る。(xv_get)を使用することによりオブジェクトの
属性を照会しても良く、また、(xv_set )を使用する
ことによりオブジェクトの属性を変更しても良い。オブ
ジェクトが不要になったときには、(xv_destroy )を
使用することによりオブジェクトを破壊する。アプリケ
ーションプログラマーは、オブジェクトを作成したなら
ば、その属性の状態を判定するためにオブジェクトを照
会することができ、あるいは、属性の値を設定すること
によりオブジェクトの状態を変化させることができる。
オブジェクトのユーザーには、オブジェクトが所要の変
化をいかにして実現するか又はそれにどのように影響を
及ぼすかはわからない。露出されている属性の型はその
実際の実現とは無関係である。すなわち、本発明では、
オブジェクトの操作及び実現の詳細をエンドユーザーか
ら隠蔽するので、そこで、データの抽象化が達成される
のである。データの抽象化は1つの公用見出しファイル
をオブジェクトのユーザーにさらすことにより補強され
る。
イルの時点で、クラス階層と、クラスの組成とを規定
し、それらをランの時点で変更することはできない。す
なわち、ランの時点で新たなクラスを作成することはで
きず、また、クラスに新たな特性を追加することもでき
ない。クラスから1つのオブジェクトが例示されるたび
に、呼出し側は例示されたオブジェクトに対する不透明
ハンドルを得る。不透明ハンドルはオブジェクト構造に
対するハンドルであるが、ハンドルのユーザーはそれが
表示しているデータの定義を知らされていない。そのた
め、オブジェクトのユーザーはオブジェクトの内部デー
タにアクセスすることができない。オブジェクトは、そ
のオブジェクトがオブジェクトのユーザーに対して示す
行動を規定するいくつかの属性を有している。本発明は
オブジェクトの属性をアクセスするために公用方法を5
つだけ提供する。すなわち、「作成」機能(xv_creat
e)を使用することによりオブジェクトを作成し;「発
見」機能(xv_find)を使用することによりオブジェク
トを位置決めし且つ共用し;共通のオブジェクトが位置
決めされなければ、(xv_find)は(xv_create)に戻
る。(xv_get)を使用することによりオブジェクトの
属性を照会しても良く、また、(xv_set )を使用する
ことによりオブジェクトの属性を変更しても良い。オブ
ジェクトが不要になったときには、(xv_destroy )を
使用することによりオブジェクトを破壊する。アプリケ
ーションプログラマーは、オブジェクトを作成したなら
ば、その属性の状態を判定するためにオブジェクトを照
会することができ、あるいは、属性の値を設定すること
によりオブジェクトの状態を変化させることができる。
オブジェクトのユーザーには、オブジェクトが所要の変
化をいかにして実現するか又はそれにどのように影響を
及ぼすかはわからない。露出されている属性の型はその
実際の実現とは無関係である。すなわち、本発明では、
オブジェクトの操作及び実現の詳細をエンドユーザーか
ら隠蔽するので、そこで、データの抽象化が達成される
のである。データの抽象化は1つの公用見出しファイル
をオブジェクトのユーザーにさらすことにより補強され
る。
【0026】本発明によれば、データの抽象化は、図5
に示すように、各オブジェクトの完全な私用定義と、不
完全な公用定義の双方を維持することにより実現され
る。図5には、Windowの例について2つの見出しファイ
ルを示す。ウインドウの私用見出しファイルWindow Pri
vate.hはオブジェクトが内部で使用する現実の定義を示
す。公用見出しファイルのWindow Public.h は、オブジ
ェクトを使用するアプリケーションが要求する定義のみ
を含む。公用見出しファイルの中には、Windowについて
オブジェクト構造を指示するが、それが表示するデータ
の現実の定義に対してはアクセスしない様々な不透明ハ
ンドル―不透明ウインドウ―がある。その結果、オブジ
ェクトを使用するアプリケーションからのオブジェクト
の実現はオブジェクトのユーザーには見えなくなってい
るため、データの抽象化が得られるのである。
に示すように、各オブジェクトの完全な私用定義と、不
完全な公用定義の双方を維持することにより実現され
る。図5には、Windowの例について2つの見出しファイ
ルを示す。ウインドウの私用見出しファイルWindow Pri
vate.hはオブジェクトが内部で使用する現実の定義を示
す。公用見出しファイルのWindow Public.h は、オブジ
ェクトを使用するアプリケーションが要求する定義のみ
を含む。公用見出しファイルの中には、Windowについて
オブジェクト構造を指示するが、それが表示するデータ
の現実の定義に対してはアクセスしない様々な不透明ハ
ンドル―不透明ウインドウ―がある。その結果、オブジ
ェクトを使用するアプリケーションからのオブジェクト
の実現はオブジェクトのユーザーには見えなくなってい
るため、データの抽象化が得られるのである。
【0027】新たなクラスの規定 新たなクラスを規定するには、少なくとも2つの見出
し.h ファイルと、2つの .cファイルとが必要であ
る。たとえば、Windowと呼ばれるクラスを作成するため
には、WindowClass.c, Window.c, WindowPrivate.h 及
びWindowPablic.h の各ファイルが必要である。図6に
示すように、WindowClass.c ファイルはクラス宣言を含
む。図6に示すようなクラス宣言はWindowクラスの全て
の実例と、ウインドウの何れかのサブクラスの全ての実
例とにより共用される。
し.h ファイルと、2つの .cファイルとが必要であ
る。たとえば、Windowと呼ばれるクラスを作成するため
には、WindowClass.c, Window.c, WindowPrivate.h 及
びWindowPablic.h の各ファイルが必要である。図6に
示すように、WindowClass.c ファイルはクラス宣言を含
む。図6に示すようなクラス宣言はWindowクラスの全て
の実例と、ウインドウの何れかのサブクラスの全ての実
例とにより共用される。
【0028】先に規定した5つの公用インタフェース方
法は、どのオブジェクトについても、それだけしかない
公用方法である。これらの方法は各クラスのクラス構造
において適切な複数組の使用内部機能を呼び出す。私用
方法はリスト内で対応するスーパークラス及びサブクラ
ス私用機能と連鎖しているので、公用方法が呼び出され
るときに呼び出される内部機能は2つ以上あっても良
い。この連鎖はクラス規定におけるあらゆる手順につい
て自動的である。これはスーパークラス連鎖とも呼ばれ
る。スーパークラス連鎖には、上向きスーパークラス連
鎖と、下向きスーパークラス連鎖という2つの変形があ
る。上向きスーパークラス連鎖では、全ての私用連鎖方
法を基本クラスに至るまでサブクラスからスーパークラ
スに向かう順序で呼び出す。(たとえば、図3について
いうと、上向き連鎖はパネル‐キャンバス‐Openwin‐D
rawable (描出可能)‐総称という順序になるであろ
う。)下向きスーパークラス連鎖においては、私用方法
はスーパークラスからサブクラスに向かう順序で呼び出
される。(再び図3を参照すると、下向きスーパークラ
ス連鎖は総称−描出可能‐ウインドウ‐オープンウイン
‐キャンバス‐パネルという順序になるであろう。)
法は、どのオブジェクトについても、それだけしかない
公用方法である。これらの方法は各クラスのクラス構造
において適切な複数組の使用内部機能を呼び出す。私用
方法はリスト内で対応するスーパークラス及びサブクラ
ス私用機能と連鎖しているので、公用方法が呼び出され
るときに呼び出される内部機能は2つ以上あっても良
い。この連鎖はクラス規定におけるあらゆる手順につい
て自動的である。これはスーパークラス連鎖とも呼ばれ
る。スーパークラス連鎖には、上向きスーパークラス連
鎖と、下向きスーパークラス連鎖という2つの変形があ
る。上向きスーパークラス連鎖では、全ての私用連鎖方
法を基本クラスに至るまでサブクラスからスーパークラ
スに向かう順序で呼び出す。(たとえば、図3について
いうと、上向き連鎖はパネル‐キャンバス‐Openwin‐D
rawable (描出可能)‐総称という順序になるであろ
う。)下向きスーパークラス連鎖においては、私用方法
はスーパークラスからサブクラスに向かう順序で呼び出
される。(再び図3を参照すると、下向きスーパークラ
ス連鎖は総称−描出可能‐ウインドウ‐オープンウイン
‐キャンバス‐パネルという順序になるであろう。)
【0029】クラスは、クラス宣言構造の適切な場所に
NULLを挿入することにより、そのスーパークラスの
全ての私用機能をそれ独自のものを追加せずに引継ぐこ
とができる。たとえば、図6に示すクラス宣言における
コードの最終行を参照。クラスは、そのクラスが引継ぎ
を望む行動を含む属性を処理しないことにより、そのス
ーパークラスから自動的に行動を引継ぐ。さらに、クラ
スは、ある属性に対して作用し、スーパークラスが属性
リストを検査する前にその属性を属性リストから削除す
ることにより、属性の行動をオーバーライドしても良
い。先に述べた5つの公用インタフェース方法の中で、
(xv_set)と(xv_get)は下向きに連鎖している。
NULLを挿入することにより、そのスーパークラスの
全ての私用機能をそれ独自のものを追加せずに引継ぐこ
とができる。たとえば、図6に示すクラス宣言における
コードの最終行を参照。クラスは、そのクラスが引継ぎ
を望む行動を含む属性を処理しないことにより、そのス
ーパークラスから自動的に行動を引継ぐ。さらに、クラ
スは、ある属性に対して作用し、スーパークラスが属性
リストを検査する前にその属性を属性リストから削除す
ることにより、属性の行動をオーバーライドしても良
い。先に述べた5つの公用インタフェース方法の中で、
(xv_set)と(xv_get)は下向きに連鎖している。
【0030】図7〜図9には、新たなオブジェクトWind
ow,Window.c を作成するための実現ファイルを示す。こ
の実現ファイルは5つの個別ファイルから構成されてい
る。1つのファイルの下に別のアプリケーションを導入
してはならない。5つのインタフェース方法は私用方法
に次のようにしてマッピングされる。
ow,Window.c を作成するための実現ファイルを示す。こ
の実現ファイルは5つの個別ファイルから構成されてい
る。1つのファイルの下に別のアプリケーションを導入
してはならない。5つのインタフェース方法は私用方法
に次のようにしてマッピングされる。
【0031】1.クラスタイプのオブジェクトを、親を
指定し且つその属性を属性値リストに指示される値にセ
ットした状態で作成する。方法の呼出しはXv_object=
xv_create(親,クラス,属性値対)となる。親は、例
示されたオブジェクトをオブジェクト樹木の正しい場所
に挿入するために使用される。全てのinit手順は下
向きスーパークラス連鎖の順序で呼び出され、作成時間
属性はその時点で構文解析される。作成時間属性は、作
成時点でのみ意味をもつ属性である。次に、残る属性を
構文解析するために全てのセットルーチンが上向きスー
パークラス連鎖の順序で呼び出され、最後に、作成後の
処理を可能にするために、唯一の属性XV_END_C
REATEをもって全てのセットルーチンが下向きスー
パークラスの順序で呼び出される。
指定し且つその属性を属性値リストに指示される値にセ
ットした状態で作成する。方法の呼出しはXv_object=
xv_create(親,クラス,属性値対)となる。親は、例
示されたオブジェクトをオブジェクト樹木の正しい場所
に挿入するために使用される。全てのinit手順は下
向きスーパークラス連鎖の順序で呼び出され、作成時間
属性はその時点で構文解析される。作成時間属性は、作
成時点でのみ意味をもつ属性である。次に、残る属性を
構文解析するために全てのセットルーチンが上向きスー
パークラス連鎖の順序で呼び出され、最後に、作成後の
処理を可能にするために、唯一の属性XV_END_C
REATEをもって全てのセットルーチンが下向きスー
パークラスの順序で呼び出される。
【0032】2.class タイプのオブジェクトを、親pa
rent及び指定の属性値リストの整合を伴う状態で発見す
る。方法の呼出しは、Xv_object xv_find(親,クラ
ス,属性値対)となる。
オブジェクトの発見手順は上向きスーパ
ークラス連鎖の手順で呼び出される。発見に失敗すれ
ば、作成に戻る。
rent及び指定の属性値リストの整合を伴う状態で発見す
る。方法の呼出しは、Xv_object xv_find(親,クラ
ス,属性値対)となる。
オブジェクトの発見手順は上向きスーパ
ークラス連鎖の手順で呼び出される。発見に失敗すれ
ば、作成に戻る。
【0033】3.属性の値を求め、データを提供された
構造に導入するか又はポインタを構造に戻す。現在、本
発明は2つのモデルを支援する。方法の呼出しは、Xv_
opaque xv_get (オブジェクト,属性値対)とな
る。オブジェクトのセット手順は上向きスーパークラス
連鎖の順序で呼び出される。
構造に導入するか又はポインタを構造に戻す。現在、本
発明は2つのモデルを支援する。方法の呼出しは、Xv_
opaque xv_get (オブジェクト,属性値対)とな
る。オブジェクトのセット手順は上向きスーパークラス
連鎖の順序で呼び出される。
【0034】4.オブジェクトの属性の値を属性値リス
トに指定されている値にセットする。方法の呼出しは、
Xv_opaque xv_set (オブジェクト,属性値対)とな
る。オブジェクトのセット手順は上向きスーパークラス
連鎖の順序で呼び出される。
トに指定されている値にセットする。方法の呼出しは、
Xv_opaque xv_set (オブジェクト,属性値対)とな
る。オブジェクトのセット手順は上向きスーパークラス
連鎖の順序で呼び出される。
【0035】5.オブジェクトを破壊する。オブジェク
トを破壊するためにの方法の呼出しは、int xv_destr
oy (オブジェクト)となる。戻り値は、オブジェクト
が実際に破壊されたか否かを指示する。クラスの破壊さ
れた手順は上向きスーパークラス連鎖の順序で呼び出さ
れる。
トを破壊するためにの方法の呼出しは、int xv_destr
oy (オブジェクト)となる。戻り値は、オブジェクト
が実際に破壊されたか否かを指示する。クラスの破壊さ
れた手順は上向きスーパークラス連鎖の順序で呼び出さ
れる。
【0036】図5のWindow Public.h ファイルは、オブ
ジェクトのユーザー又はオブジェクトのサブクラスの作
成者が現実に使用しなければならない唯一のファイルで
ある。この方式は同一のファイルを新たなオブジェクト
プログラマーと、オブジェクトユーザーの双方にさらす
ものである。その結果、ウインドウベースシステムに関
する一様なユーザーが得られるのである。
ジェクトのユーザー又はオブジェクトのサブクラスの作
成者が現実に使用しなければならない唯一のファイルで
ある。この方式は同一のファイルを新たなオブジェクト
プログラマーと、オブジェクトユーザーの双方にさらす
ものである。その結果、ウインドウベースシステムに関
する一様なユーザーが得られるのである。
【0037】引継ぎ オブジェクト指向プログラミングにおける引継ぎの原理
によれば、新たなクラスを既存のクラスの変形として規
定することが可能である。新たなクラスは旧クラスを特
殊化したものであっても良く、また、旧クラスの機能を
拡張しても良い。新たなオブジェクトは旧オブジェクト
のサブクラスと呼ばれ、旧オブジェクトは新たなクラス
のスーパークラスと呼ばれる。各クラスは新たな属性を
生成することにより機能を追加する。あるいは、スーパ
ークラスがその属性を処理する前に属性値リストを修正
することにより、スーパークラスの属性をオーバーライ
ドすることもできる。本発明の好ましい一実施例では、
単一クラス引継ぎが実現されている。単一クラスの引継
ぎの下では、単一クラスは1つのスーパークラスを有す
るのみである。これは、1つのクラスが2つ以上のスー
パークラスを有する可能性がある多重クラス引継ぎとは
対照的である。本発明の好ましい実施例における単一ク
ラス階層の構造を図3に示す。引継ぎの原理の下でのコ
ードの再利用から得られる利点は図10に示されてい
る。図10は、20画素×20画素の高さと幅を有する
表示装置にウインドウオブジェクトを作成する目的で設
計された数行分のコードを示す。呼出xv_set ()はオ
ブジェクトに事象ハンドラを追加する。また、ルートウ
インドウが親になることに注意すべきである。「、、、」
の部分は図5に示すような公用見出しファイルWindow P
ublic.h を表す。本発明の定義からいえば、公用ファイ
ルは、オブジェクトを使用するアプリケーションを作成
するために必要な全ての定義と、サブクラス分類をも望
んでいる者に対するあらゆる情報とを含む。従って、新
たなクラス(ここでは、ウインドウオブジェクト)を作
成するときに必要なコードの数は、既存のコード(ここ
では、公用ファイル)を再利用することにより減少する
のである。このように、事象を様々なファイルに区分す
るフレーム構造に固執することにより、何らかのアプリ
ケーションの一部としてユーザーインタフェースを急速
に作成できる。
によれば、新たなクラスを既存のクラスの変形として規
定することが可能である。新たなクラスは旧クラスを特
殊化したものであっても良く、また、旧クラスの機能を
拡張しても良い。新たなオブジェクトは旧オブジェクト
のサブクラスと呼ばれ、旧オブジェクトは新たなクラス
のスーパークラスと呼ばれる。各クラスは新たな属性を
生成することにより機能を追加する。あるいは、スーパ
ークラスがその属性を処理する前に属性値リストを修正
することにより、スーパークラスの属性をオーバーライ
ドすることもできる。本発明の好ましい一実施例では、
単一クラス引継ぎが実現されている。単一クラスの引継
ぎの下では、単一クラスは1つのスーパークラスを有す
るのみである。これは、1つのクラスが2つ以上のスー
パークラスを有する可能性がある多重クラス引継ぎとは
対照的である。本発明の好ましい実施例における単一ク
ラス階層の構造を図3に示す。引継ぎの原理の下でのコ
ードの再利用から得られる利点は図10に示されてい
る。図10は、20画素×20画素の高さと幅を有する
表示装置にウインドウオブジェクトを作成する目的で設
計された数行分のコードを示す。呼出xv_set ()はオ
ブジェクトに事象ハンドラを追加する。また、ルートウ
インドウが親になることに注意すべきである。「、、、」
の部分は図5に示すような公用見出しファイルWindow P
ublic.h を表す。本発明の定義からいえば、公用ファイ
ルは、オブジェクトを使用するアプリケーションを作成
するために必要な全ての定義と、サブクラス分類をも望
んでいる者に対するあらゆる情報とを含む。従って、新
たなクラス(ここでは、ウインドウオブジェクト)を作
成するときに必要なコードの数は、既存のコード(ここ
では、公用ファイル)を再利用することにより減少する
のである。このように、事象を様々なファイルに区分す
るフレーム構造に固執することにより、何らかのアプリ
ケーションの一部としてユーザーインタフェースを急速
に作成できる。
【0038】最も近い従来の技術との比較 最も近い従来の技術は、Cを修正せずにX11ベースウ
インドウシステムでユーザーインタフェースを実現する
ためのツールキットでもあるxtイントリンシクス(xt)
である。本発明は次のいくつかの重要な点でxtとは異な
っている。(1)xtが全てのオブジェクトに対し一様な
インタフェースを有していないのに対し、本発明は一様
なインタフェースを有する。xtの下では、アプリケーシ
ョンプログラマーはオブジェクトユーザーの見出しファ
ルとは異なる組の見出しファイルを使用するが、本発明
では、ユーザーがアプリケーションプログラマーである
か、オブジェクトユーザーであるかにかかわらず、同一
の組の見出しファイルを使用する。(2)xtの場合、オ
ブジェクトユーザーはオブジェクト設計者が公用とした
あらゆる機能をアクセスできるが、本発明によれば、オ
ブジェクトユーザーは先に説明した5つの公用方法に限
定される。(3)xtでは事象ハンドラは連鎖していない
が、本発明では連鎖している。(4)xtにおけるオブジ
ェクトの連関はあらかじめ定められており、変更は不可
能である。すなわち、親を指定してしまえば、その後に
それを変更することはできないのである。これに対し、
本発明によれば、属性は1つのオブジェクトの中の要素
に限られていないので、属性が複数のオブジェクトの間
で連関を変化させることができる。たとえば、本発明の
好ましい実施例においては、オブジェクトの属性は関数
呼出しを表しても良い。次に、ウインドウオブジェクト
についてリサイズ手順を呼出したいときのxtと本発明と
の相違を示すコードフラグメントを記載する。 xt:object‐> code.resize(); 及び 本発明:xv_set (object,WIN_RESIZE_proc,o) 図1〜図10の特定のウインドウの例を参照しながら本
発明を説明したが、多数の様々なウインドウベースシス
テムのいずれかについても本発明を実現しうることは当
業者には明かであろう。同様に、図示してある特性のオ
ブジェクト、クラス階層又はファイルのフォーマット
は、本発明を利用できると考えられる数多くのオブジェ
クト指向構成の中の1つを表しているにすぎない。さら
に、図は単に実例を示すことを目的としているだけであ
り、本発明を限定するものとして解釈されるべきでない
ことは理解されるであろう。先に説明したような本発明
の趣旨から逸脱せずに、本発明の要素の材料と配列につ
いて当業者は多くの変更や改変を実施しうると考えられ
る。
インドウシステムでユーザーインタフェースを実現する
ためのツールキットでもあるxtイントリンシクス(xt)
である。本発明は次のいくつかの重要な点でxtとは異な
っている。(1)xtが全てのオブジェクトに対し一様な
インタフェースを有していないのに対し、本発明は一様
なインタフェースを有する。xtの下では、アプリケーシ
ョンプログラマーはオブジェクトユーザーの見出しファ
ルとは異なる組の見出しファイルを使用するが、本発明
では、ユーザーがアプリケーションプログラマーである
か、オブジェクトユーザーであるかにかかわらず、同一
の組の見出しファイルを使用する。(2)xtの場合、オ
ブジェクトユーザーはオブジェクト設計者が公用とした
あらゆる機能をアクセスできるが、本発明によれば、オ
ブジェクトユーザーは先に説明した5つの公用方法に限
定される。(3)xtでは事象ハンドラは連鎖していない
が、本発明では連鎖している。(4)xtにおけるオブジ
ェクトの連関はあらかじめ定められており、変更は不可
能である。すなわち、親を指定してしまえば、その後に
それを変更することはできないのである。これに対し、
本発明によれば、属性は1つのオブジェクトの中の要素
に限られていないので、属性が複数のオブジェクトの間
で連関を変化させることができる。たとえば、本発明の
好ましい実施例においては、オブジェクトの属性は関数
呼出しを表しても良い。次に、ウインドウオブジェクト
についてリサイズ手順を呼出したいときのxtと本発明と
の相違を示すコードフラグメントを記載する。 xt:object‐> code.resize(); 及び 本発明:xv_set (object,WIN_RESIZE_proc,o) 図1〜図10の特定のウインドウの例を参照しながら本
発明を説明したが、多数の様々なウインドウベースシス
テムのいずれかについても本発明を実現しうることは当
業者には明かであろう。同様に、図示してある特性のオ
ブジェクト、クラス階層又はファイルのフォーマット
は、本発明を利用できると考えられる数多くのオブジェ
クト指向構成の中の1つを表しているにすぎない。さら
に、図は単に実例を示すことを目的としているだけであ
り、本発明を限定するものとして解釈されるべきでない
ことは理解されるであろう。先に説明したような本発明
の趣旨から逸脱せずに、本発明の要素の材料と配列につ
いて当業者は多くの変更や改変を実施しうると考えられ
る。
【図1】本発明を実現するサーバベースウインドウシス
テムのアーキテクチャを示す図。
テムのアーキテクチャを示す図。
【図2】サーバベースウインドウシステムの下でのサー
バ‐クライアントプロセスの一部としての複数のウイン
ドウサーバ及び複数のアプリケーションからのウインド
ウ通知子処理事象のプロセス流れを示す図。
バ‐クライアントプロセスの一部としての複数のウイン
ドウサーバ及び複数のアプリケーションからのウインド
ウ通知子処理事象のプロセス流れを示す図。
【図3】本発明にの従って引継ぎを実現する際に使用さ
れるオブジェクトの構造(クラス階層)を示す図。
れるオブジェクトの構造(クラス階層)を示す図。
【図4】コード再利用を実現するために本発明に従って
オブジェクトの樹木構造を使用する例を示す図。
オブジェクトの樹木構造を使用する例を示す図。
【図5】本発明に従ってデータの抽象化を実現する際に
私用ファイルと、公用ファイルとを使用する例を示す
図。
私用ファイルと、公用ファイルとを使用する例を示す
図。
【図6】一様なユーザーインタフェースを達成する際に
本発明の独特な5つの公用方法を具現化した一様なクラ
ス宣言を示す図。
本発明の独特な5つの公用方法を具現化した一様なクラ
ス宣言を示す図。
【図7】〜
【図9】本発明の不透明ハンドル方式のよってアプリケ
ーションの機能性をアクセスするためのコードを示す
図。
ーションの機能性をアクセスするためのコードを示す
図。
【図10】エンドユーザーにウインドウを表示するため
の本発明の実現を示す図である。
の本発明の実現を示す図である。
10 コンピュータネットワーク 12 キーボード 14 マウス 16 表示装置 18 サーバ 20 ウインドウサーバ 22 装置ライブラリ 24 リンク 26 アプリケーションプログラムインタフェース 28 ウインドウライブラリ 30 ウインドウツールキット 32 アプリケーション 34 通知子
Claims (1)
- 【請求項1】 少なくとも1つのコンピュータネットワ
ークを介して少なくとも1つのサーバプロセスとウイン
ドウプロトコルに従って通信する少なくとも1つのアプ
リケーションプロセスを含み、前記アプリケーションプ
ロセスは、前記サーバプロセスへ要求及び指令を送信す
るウインドウライブラリを具備し、前記ウインドウライ
ブラリは、前記要求及び前記指令をトリガする事象ハン
ドラを具備し、前記サーバプロセスは要求ごとに少なく
とも1つの事象ハンドラを前記ウインドウライブラリに
戻し、前記ウインドウライブラリは、前記事象ハンドラ
を前記アプリケーションプロセスに配分する通知子を含
み、前記ウインドウライブラリは、新たなオブジェクト
を作成する元になりうる複数の標準クラスをさらに具備
するようなウインドウベースシステムにあって、ウイン
ドウライブラリが書かれている言語を変更せずに前記ウ
インドウベースシステムでオブジェクト指向プログラミ
ングを実現する方法において,各要求を、少なくとも1
つの公用見出しファイルと、少なくとも1つの私用見出
しファイルと、少なくとも1つのインプリメンテーショ
ンファイルとを含む複数のファイルに区分するために、
前記事象ハンドラを連鎖させる過程と;前記インプリメ
ンテーションファイルに埋め込まれている複数の私用関
数を呼び出す5つの公用呼出し手順によって前記アプリ
ケーションプロセスを前記ウインドウライブラリと連係
させる過程と;それぞれが少なくとも1つの公用呼出し
手順を有し、それぞれが前記5つの公用呼出し手順を参
照する複数の新たなオブジェクトを規定することによ
り、新たなアプリケーションプロセスを作成する過程と
から成る方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US51542790A | 1990-04-27 | 1990-04-27 | |
| US515,427 | 1990-04-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0628168A true JPH0628168A (ja) | 1994-02-04 |
Family
ID=24051312
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3124589A Pending JPH0628168A (ja) | 1990-04-27 | 1991-04-30 | オブジェクト指向プログラミングを実現する方法 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5446902A (ja) |
| JP (1) | JPH0628168A (ja) |
| FR (1) | FR2661525A1 (ja) |
| GB (1) | GB9105278D0 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100512157B1 (ko) * | 1997-09-04 | 2005-11-01 | 삼성전자주식회사 | 오오피 기반의 마이크로컨트롤러 응용 개발 시스템 |
Families Citing this family (78)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5860010A (en) * | 1992-03-12 | 1999-01-12 | Bull S.A. | Use of language with similar representation for programs and data in distributed data processing |
| US5896532A (en) * | 1992-06-15 | 1999-04-20 | Lucent Technologies Inc. | Objects with run-time classes and methods of making them |
| JP2505974B2 (ja) * | 1992-12-08 | 1996-06-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 複数の適用業務プログラムを統合化グラフィカル・ユ―ザ・インタフェ―ス処理環境へ統合化するための方法 |
| JPH08505721A (ja) * | 1992-12-23 | 1996-06-18 | タリジェント インコーポレイテッド | オブジェクト指向フレームワーク・システム |
| US6259446B1 (en) | 1992-12-23 | 2001-07-10 | Object Technology Licensing Corporation | Menu state system |
| US5649104A (en) * | 1993-03-19 | 1997-07-15 | Ncr Corporation | System for allowing user of any computer to draw image over that generated by the host computer and replicating the drawn image to other computers |
| US5835713A (en) * | 1993-03-19 | 1998-11-10 | Ncr Corporation | Remote collaboration system for selectively locking the display at remote computers to prevent annotation of the display by users of the remote computers |
| US5819283A (en) * | 1993-05-11 | 1998-10-06 | Apple Computer, Inc. | Method and system for the extensibility of objects |
| US6684261B1 (en) * | 1993-07-19 | 2004-01-27 | Object Technology Licensing Corporation | Object-oriented operating system |
| US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
| US5689700A (en) * | 1993-12-29 | 1997-11-18 | Microsoft Corporation | Unification of directory service with file system services |
| AU1323395A (en) * | 1993-12-30 | 1995-07-17 | Raymond Obin | Method for compiling a procedural program to an object class definition |
| US5564048A (en) * | 1994-06-15 | 1996-10-08 | Lucent Technologies Inc. | Object-oriented functionality class library for use in graphics programming |
| US5875331A (en) * | 1994-09-30 | 1999-02-23 | International Business Machines Corp. | System and method for generating target language code utilizing an object oriented code generator |
| US5724532A (en) * | 1994-10-27 | 1998-03-03 | Bay Networks, Inc. | Method and apparatus for exchanging information between application programs according to a drag and drop operation |
| US5911068A (en) * | 1995-03-30 | 1999-06-08 | Microsoft Corporation | Container independent control architecture |
| US6640255B1 (en) * | 1995-03-31 | 2003-10-28 | Sun Microsystems, Inc. | Method and apparatus for generation and installation of distributed objects on a distributed object system |
| US5732263A (en) * | 1995-10-03 | 1998-03-24 | International Business Machines Corporation | Systems, methods and computer program products for generating and validating user defined object classes in an object oriented programming environment after build time |
| US5870587A (en) * | 1996-03-20 | 1999-02-09 | International Business Machines Corporation | Information-handling system, method, and article of manufacture including a mechanism for providing an improved application binary interface |
| US5867175A (en) * | 1996-05-24 | 1999-02-02 | Microsoft Corporation | Method and apparatus for scriping animation |
| US6412017B1 (en) * | 1996-07-01 | 2002-06-25 | Microsoft Corporation | Urgent replication facility |
| US5949998A (en) * | 1996-07-03 | 1999-09-07 | Sun Microsystems, Inc. | Filtering an object interface definition to determine services needed and provided |
| US5920868A (en) * | 1996-07-03 | 1999-07-06 | Sun Microsystems, Inc. | Cataloging apparatus for facilitating the re-use of distributed objects in a distributed object system |
| US5991535A (en) | 1996-07-03 | 1999-11-23 | Sun Microsystems, Inc. | Visual composition tool for constructing application programs using distributed objects on a distributed object network |
| US5860004A (en) * | 1996-07-03 | 1999-01-12 | Sun Microsystems, Inc. | Code generator for applications in distributed object systems |
| US5999728A (en) * | 1996-07-30 | 1999-12-07 | Sun Microsystems, Inc. | Method and apparatus for enhancing the portability of an object oriented interface among multiple platforms |
| CH690973A5 (fr) * | 1996-12-19 | 2001-03-15 | Asulab Sa | Pièce d'horlogerie dont le mécanisme est entraîné par des moyens mécaniques et comprenant un dispositif d'indication de réserve de marche. |
| US6023582A (en) * | 1996-12-23 | 2000-02-08 | Z-World, Inc. | Function code chaining method |
| US6715147B1 (en) * | 1997-03-31 | 2004-03-30 | International Business Machines Corporation | Method and system for interfacing a plurality of applications conforming to a standard |
| US6662210B1 (en) | 1997-03-31 | 2003-12-09 | Ncr Corporation | Method of remote collaboration system |
| US6003038A (en) * | 1997-03-31 | 1999-12-14 | Sun Microsystems, Inc. | Object-oriented processor architecture and operating method |
| US6960133B1 (en) | 2000-08-28 | 2005-11-01 | Igt | Slot machine game having a plurality of ways for a user to obtain payouts based on selection of one or more symbols (power pays) |
| US6049664A (en) * | 1997-11-25 | 2000-04-11 | Alphablox Corporation | Tier-neutral development mechanism for hypertext based applications |
| US6272673B1 (en) | 1997-11-25 | 2001-08-07 | Alphablox Corporation | Mechanism for automatically establishing connections between executable components of a hypertext-based application |
| 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 |
| US6014517A (en) * | 1998-01-06 | 2000-01-11 | Emc Corporation | Automatic creation of C to assembler interface |
| US6003040A (en) * | 1998-01-23 | 1999-12-14 | Mital; Vijay | Apparatus and method for storing, navigating among and adding links between data items in computer databases |
| WO1999050756A1 (en) * | 1998-03-27 | 1999-10-07 | Infoimage Incorporated | Methods and apparatus for network applications using object tools |
| US6385769B1 (en) * | 1999-02-03 | 2002-05-07 | International Business Machines Corporation | Text based object oriented program code with a visual program builder and parser support for predetermined and not predetermined formats |
| US6366921B1 (en) | 1999-02-09 | 2002-04-02 | International Business Machines Corporation | System and method for data manipulation in a dynamic object-based format |
| US6279046B1 (en) * | 1999-05-19 | 2001-08-21 | International Business Machines Corporation | Event-driven communications interface for logically-partitioned computer |
| US6959291B1 (en) | 1999-05-19 | 2005-10-25 | International Business Machines Corporation | Management of a concurrent use license in a logically-partitioned computer |
| US6467007B1 (en) | 1999-05-19 | 2002-10-15 | International Business Machines Corporation | Processor reset generated via memory access interrupt |
| US6691146B1 (en) | 1999-05-19 | 2004-02-10 | International Business Machines Corporation | Logical partition manager and method |
| US6681240B1 (en) | 1999-05-19 | 2004-01-20 | International Business Machines Corporation | Apparatus and method for specifying maximum interactive performance in a logical partition of a computer system independently from the maximum interactive performance in other partitions |
| US6769985B1 (en) * | 2000-05-31 | 2004-08-03 | Igt | Gaming device and method for enhancing the issuance or transfer of an award |
| US7699699B2 (en) | 2000-06-23 | 2010-04-20 | Igt | Gaming device having multiple selectable display interfaces based on player's wagers |
| US6731313B1 (en) | 2000-06-23 | 2004-05-04 | Igt | Gaming device having touch activated alternating or changing symbol |
| US7695363B2 (en) | 2000-06-23 | 2010-04-13 | Igt | Gaming device having multiple display interfaces |
| US6935955B1 (en) | 2000-09-07 | 2005-08-30 | Igt | Gaming device with award and deduction proximity-based sound effect feature |
| US6739973B1 (en) | 2000-10-11 | 2004-05-25 | Igt | Gaming device having changed or generated player stimuli |
| US6749502B2 (en) | 2001-03-21 | 2004-06-15 | Igt | Gaming device having a multi-characteristic matching game |
| US7040983B2 (en) | 2001-03-21 | 2006-05-09 | Igt | Gaming device having a multi-round, multi-characteristic matching game |
| US7901291B2 (en) | 2001-09-28 | 2011-03-08 | Igt | Gaming device operable with platform independent code and method |
| US7708642B2 (en) | 2001-10-15 | 2010-05-04 | Igt | Gaming device having pitch-shifted sound and music |
| US7666098B2 (en) * | 2001-10-15 | 2010-02-23 | Igt | Gaming device having modified reel spin sounds to highlight and enhance positive player outcomes |
| US6848996B2 (en) * | 2001-10-15 | 2005-02-01 | Igt | Gaming device with sound recording changes associated with player inputs |
| GB0212308D0 (en) * | 2002-05-28 | 2002-07-10 | Symbian Ltd | Trusted user interface for a secure mobile wireless device |
| US7789748B2 (en) * | 2003-09-04 | 2010-09-07 | Igt | Gaming device having player-selectable music |
| US7105736B2 (en) | 2003-09-09 | 2006-09-12 | Igt | Gaming device having a system for dynamically aligning background music with play session events |
| US7585219B2 (en) * | 2004-09-30 | 2009-09-08 | Igt | Gaming device having a matching symbol game |
| US8043155B2 (en) | 2004-10-18 | 2011-10-25 | Igt | Gaming device having a plurality of wildcard symbol patterns |
| US8250528B2 (en) * | 2004-12-15 | 2012-08-21 | Microsoft Corporation | Static inheritance systems and methods |
| US7818755B1 (en) * | 2004-12-22 | 2010-10-19 | Apple Inc. | Window server event taps |
| US20080086700A1 (en) * | 2006-10-06 | 2008-04-10 | Rodriguez Robert A | Systems and Methods for Isolating On-Screen Textual Data |
| US8750490B2 (en) * | 2007-08-22 | 2014-06-10 | Citrix Systems, Inc. | Systems and methods for establishing a communication session among end-points |
| US8315362B2 (en) * | 2007-08-22 | 2012-11-20 | Citrix Systems, Inc. | Systems and methods for voicemail avoidance |
| US9137377B2 (en) | 2007-08-22 | 2015-09-15 | Citrix Systems, Inc. | Systems and methods for at least partially releasing an appliance from a private branch exchange |
| WO2009086316A1 (en) * | 2007-12-21 | 2009-07-09 | Citrix Systems, Inc. | Systems and methods for efficient processing of data displayed by a window |
| US20090183160A1 (en) * | 2008-01-16 | 2009-07-16 | Morinville Paul V | Automated Execution of Business Processes Using Dual Element Events |
| US8612614B2 (en) * | 2008-07-17 | 2013-12-17 | Citrix Systems, Inc. | Method and system for establishing a dedicated session for a member of a common frame buffer group |
| US8591308B2 (en) | 2008-09-10 | 2013-11-26 | Igt | Gaming system and method providing indication of notable symbols including audible indication |
| US8533689B2 (en) * | 2008-10-10 | 2013-09-10 | The Boeing Company | Method, apparatus and computer program product for creating inter-language interface |
| US8460090B1 (en) | 2012-01-20 | 2013-06-11 | Igt | Gaming system, gaming device, and method providing an estimated emotional state of a player based on the occurrence of one or more designated events |
| US8740689B2 (en) | 2012-07-06 | 2014-06-03 | Igt | Gaming system and method configured to operate a game associated with a reflector symbol |
| US9245407B2 (en) | 2012-07-06 | 2016-01-26 | Igt | Gaming system and method that determines awards based on quantities of symbols included in one or more strings of related symbols displayed along one or more paylines |
| US9192857B2 (en) | 2013-07-23 | 2015-11-24 | Igt | Beat synchronization in a game |
| US9947170B2 (en) | 2015-09-28 | 2018-04-17 | Igt | Time synchronization of gaming machines |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4791550A (en) * | 1985-02-13 | 1988-12-13 | Rational | Higher order language-directed computer |
| US4766534A (en) * | 1986-10-16 | 1988-08-23 | American Telephone And Telegraph Company, At&T Bell Laboratories | Parallel processing network and method |
| JPS647231A (en) * | 1987-06-30 | 1989-01-11 | Toshiba Corp | Parallel processing device for object directional system |
| US5133070A (en) * | 1988-06-30 | 1992-07-21 | International Business Machines Corporation | Method of nesting and processing mixed data objects within a data stream utilizing selective environment inheritance |
| DE68926422T2 (de) * | 1988-09-23 | 1996-11-07 | Ibm | Datenbankverwaltungssystem |
| US5133075A (en) * | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
| US5057996A (en) * | 1989-06-29 | 1991-10-15 | Digital Equipment Corporation | Waitable object creation system and method in an object based computer operating system |
| US5119475A (en) * | 1991-03-13 | 1992-06-02 | Schlumberger Technology Corporation | Object-oriented framework for menu definition |
-
1991
- 1991-03-13 GB GB919105278A patent/GB9105278D0/en active Pending
- 1991-04-25 FR FR9105113A patent/FR2661525A1/fr active Pending
- 1991-04-30 JP JP3124589A patent/JPH0628168A/ja active Pending
-
1993
- 1993-07-14 US US08/091,536 patent/US5446902A/en not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100512157B1 (ko) * | 1997-09-04 | 2005-11-01 | 삼성전자주식회사 | 오오피 기반의 마이크로컨트롤러 응용 개발 시스템 |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2661525A1 (fr) | 1991-10-31 |
| GB9105278D0 (en) | 1991-04-24 |
| US5446902A (en) | 1995-08-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5446902A (en) | Method for implementing computer applications in an object oriented manner using a traditional non-object oriented programming language | |
| US6496202B1 (en) | Method and apparatus for generating a graphical user interface | |
| US7546602B2 (en) | Application program interface for network software platform | |
| US6330659B1 (en) | Hardware accelerator for an object-oriented programming language | |
| US6064382A (en) | Object oriented apparatus and method for providing a graphical user interface for host-based software applications | |
| US6795089B2 (en) | Dynamic, live surface and model elements for visualization and modeling | |
| AU734115B2 (en) | Hardware accelerator for an object-oriented programming language | |
| US6344855B1 (en) | Encapsulated network entity reference of a network component system for integrating object oriented software components | |
| US5999972A (en) | System, method and article of manufacture for a distributed computer system framework | |
| US6469714B2 (en) | Infocenter user interface for applets and components | |
| US6100885A (en) | Supporting modification of properties via a computer system's user interface | |
| US9098297B2 (en) | Hardware accelerator for an object-oriented programming language | |
| US5621434A (en) | Cursor manipulation system and method | |
| US5896532A (en) | Objects with run-time classes and methods of making them | |
| US20050091664A1 (en) | Method and system for associating parameters of containers and contained objects | |
| US20050188350A1 (en) | Data binding | |
| WO1998021642A1 (en) | Method for displaying multiple visual styles | |
| EP0873548B1 (en) | Extensible selection feedback and graphic interaction | |
| CA2030438C (en) | Method of reducing data storage requirements associated with computer windowing environments | |
| US6581203B1 (en) | Technique for visually creating and adding members to a class | |
| WO1999040512A9 (en) | Method and system for user defined interactions between plurality of active software applications | |
| JP4339376B2 (ja) | オブジェクト指向カーソル・ツール | |
| Muller et al. | The use of multimethods and method combination in a CLOS based window interface | |
| Neelamkavil et al. | X versus Eiffel toolkits for building graphical user interfaces | |
| Sametinger et al. | A documentation scheme for object-oriented software systems |