JPH09204300A - オブジェクト指向アプリケーション用パッケージ化アルゴリズム - Google Patents

オブジェクト指向アプリケーション用パッケージ化アルゴリズム

Info

Publication number
JPH09204300A
JPH09204300A JP8256244A JP25624496A JPH09204300A JP H09204300 A JPH09204300 A JP H09204300A JP 8256244 A JP8256244 A JP 8256244A JP 25624496 A JP25624496 A JP 25624496A JP H09204300 A JPH09204300 A JP H09204300A
Authority
JP
Japan
Prior art keywords
application
class
list
sub
component
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
JP8256244A
Other languages
English (en)
Inventor
Martin Paul Nally
マーチン・ポール・ナリー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH09204300A publication Critical patent/JPH09204300A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 アプリケーションのメモリ必要量を低減する
ために強化されたパッケージ化アルゴリズムを提供す
る。 【解決手段】 アルゴリズムは、アプリケーションを実
行するために必要な開発環境からメソッドとクラスの必
要最小限の組を決定する。その後アプリケーションはこ
れら必要なメソッド及びクラスのみと共にパッケージ化
される。得られるアプリケーションは、サイズが縮小さ
れるので、アプリケーションを記憶するために必要なメ
モリの低減に寄与し、実行時のアプリケーションの性能
を向上せる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理システ
ムにおける改良に関し、特に、無関係なクラス又はメソ
ッドを含むことなくオブジェクト指向アプリケーション
をパッケージ化(packaging)できるオブジェクト指向ア
プリケーション開発ソフトウェアのためのパッケージ化
アルゴリズムに関する。
【0002】ソフトウェア・アプリケーションを書いた
り開発したりするためにオブジェクト指向言語を用いる
ことは、最近では一般的なこととなりつつある。オブジ
ェクト指向技術には、手続き型言語に比べて幾つかの利
点が有しており、比較的使い易いこと、修正が容易であ
ること、アプリケーションからアプリケーションへのコ
ンポーネントの再利用性に優れていること等がある。オ
ブジェクト指向ソフトウェア・アプリケーションは、通
常、オブジェクト指向開発環境を用いるソフトウェア開
発者により開発される。オブジェクト指向開発環境(例
えば、IBM CorporationによるSmalltalkのためのVisual
Age)は、通常、Smalltalk又はC++等のオブジェクト指向
言語、ブラウザ等の様々な開発ツール、バージョン管理
機能、デバッガを含み、さらに、開発者がアプリケーシ
ョンに求める様々な機能を提供する再利用可能なオブジ
ェクト指向のクラス、コンポーネント(components)、パ
ーツ(parts)、及び/又はフレームワークの組を含む。S
malltalk言語は、完成したアプリケーションをコンピュ
ータ上で実行するために必要な基本的機能を含む仮想マ
シンとして知られる基本的なエンジン(通常、アプリケ
ーションと共にパッケージ化される)を含み、そして再
利用可能なオブジェクト指向のクラス、コンポーネン
ト、パーツ、及びフレームワークの豊富な組を含む。開
発者は、所望の機能をもったアプリケーションを作成す
るために、基本的に、利用可能なクラス、コンポーネン
ト、パーツ、及びフレームワークから所望するクラス
(オブジェクト)のインスタンスを一緒に引き出す。
【0003】オブジェクト指向言語の一態様は、各クラ
スが、通常、相互依存しており、継承として知られる特
性をもつことができるものである。さらに、機能につい
ては、通常、オブジェクトのうちメソッドとして知られ
る部分に与えられる。従って、特定のオブジェクトにつ
いてのメソッドは、機能を与える別のオブジェクト又は
クラスの中のメソッドに依存する可能性がある。このよ
うなオブジェクト指向言語の特性は、効率を求められる
パッケージ化方式に対する可能性を与える。
【0004】これまで、完成したアプリケーションのパ
ッケージ化は、厳密な技術ではなかった。無難な方法と
して、アプリケーションは、エンドユーザのコンピュー
タにより実行可能なそのアプリケーションの実行時バー
ジョンを作成する基本的なエンジンと共に最小の判断を
もつ完全標準クラス・ライブラリとパッケージ化され
る。オブジェクト指向言語の欠点の1つは、アプリケー
ションが適切に実行されることを確保するために、従来
技術のパッケージ化アルゴリズムが余り差別化されてお
らず、その中に含まれるクラスはその開発環境内の再利
用可能なクラス・ライブラリからのものだという点であ
る。従って、パッケージ化されたオブジェクト指向アプ
リケーションのサイズが比較的大きくなってしまうた
め、エンド・ユーザのコンピュータ上で大きなメモリが
必要となる。さらに、アプリケーションのサイズが比較
的大きいために、そのアプリケーションが実行されると
き所望するよりも低い性能しか得られない結果となる。
【0005】従って、アプリケーション開発ツールに用
いられるパッケージ化アルゴリズムにおいて、パッケー
ジ化アプリケーションに含めるためのクラスをその開発
環境からさらに精細に選択可能とすることにより、メモ
リの必要性を低減して性能を強化することが必要とされ
ている。
【0006】
【発明が解決しようとする課題】以上により、本発明の
目的は、アプリケーションに必要なメモリを低減するべ
く、強化されたパッケージ化アルゴリズムを提供するこ
とである。
【0007】本発明の別の目的は、パッケージ化アルゴ
リズムを用いてパッケージ化されたアプリケーションの
性能を強化するような、強化されたパッケージ化アルゴ
リズムを提供することである。
【0008】本発明の更に別の目的は、アプリケーショ
ンの実行に必要なメソッド及びクラスのみを含む、アプ
リケーション開発環境のためのパッケージ化アルゴリズ
ムを提供することである。
【0009】本発明の更に別の目的は、以下の説明及び
図面並びに本発明の実施例により明らかする。
【0010】
【課題を解決するための手段】上記の目的を達成するた
めに、本発明は、アプリケーションを実行するために必
要な開発環境から一組のコードを決定するための、コン
ピュータの読取り可能なコードを提供する。このコンピ
ュータの読取り可能なコードは、そのアプリケーション
を実行するために必要な既知のコンポーネントを識別す
る第1のサブプロセスと、そのアプリケーションの実行
のためにその既知のコンポーネントにより必要とされる
コンポーネントを識別する第2のサブプロセスと、第2
のサブプロセスにおいて識別されたコンポーネントによ
り必要とされるコンポーネントを識別しかつ該識別され
たコンポーネントが実行のためのものである第3のサブ
プロセスとを有する。
【0011】第1のサブプロセスによりユーザは、少な
くとも1つの既知のコンポーネントを識別することがで
き、又はアプリケーションのコンポーネントを照会する
ことによりそれ自体を識別することができ、そして識別
されたコンポーネントを既知のコンポーネントとして用
いる。アプリケーションは、開発中のオブジェクト指向
アプリケーションであってもよく、さらに、コンピュー
タの読取り可能なコードは、既知のコンポーネント及び
識別されたコンポーネントのみを含むようにアプリケー
ションをパッケージ化する第4のサブプロセスを有す
る。好適には、識別されたコンポーネントのうち1つの
インスタンスのみがそのパッケージ化されるアプリケー
ションに含まれる。さらに、コンピュータの読取り可能
なコードは、任意のアプリケーションを実行するために
必要な共通コンポーネントを識別する第5のサブプロセ
スを有する。アプリケーションは、メソッド及びクラス
を有するオブジェクト指向アプリケーションとすること
ができ、既知のコンポーネントはメソッドであり、第2
のサブプロセスはさらに、既知のメソッドにより参照さ
れるメソッド及びクラスを識別する。
【0012】加えて、本発明は、作成されるアプリケー
ション用のアプリケーション開発環境から必要な一組の
コンポーネントを決定するための、コンピュータ環境に
おけるシステムを提供する。このコンピュータ環境にお
けるシステムは、アプリケーションを実行するために必
要な第1のコンポーネントを識別する手段と、ネームに
より参照されるか又は第1のコンポーネントにより必要
とされる第1の組のコンポーネントをアプリケーション
に含めるべく識別する手段と、ネームにより参照される
か又は第1の組の個々のコンポーネントにより必要とさ
れる第2の組のコンポーネントを識別しかつ該識別され
た第2の組の個々のコンポーネントはその後アプリケー
ションに含めるためのものである手段と、第1のコンポ
ーネント、第1の組のコンポーネント及び第2の組のコ
ンポーネントから必要なコンポーネントのリストを作成
する手段とを有する。さらに、このシステムは、必要な
コンポーネントの各々をリスト上に1回だけ含める手段
を有してもよい。
【0013】
【発明の実施の形態】本発明は、様々なオブジェクト指
向開発言語により、例えば、Smalltalk、C++、scriptX
等により実行可能である。図1は、本発明を実施可能な
代表的ハードウェア環境のブロック図である。図1の環
境は、汎用単一ユーザのコンピュータ・ワークステーシ
ョンであり、例えば、パーソナル・コンピュータとその
関連の周辺装置等の代表的なものである。この環境は、
マイクロプロセッサ10と、既知の技術によりマイクロ
プロセッサ10とワークステーションの各構成要素との
間を接続し通信を可能とするために使用されるバス12
とを含む。ワークステーションは、通常、バス12を介
してマイクロプロセッサ10を1又は複数のインタフェ
ース装置、例えば、キーボード16、マウス18、及び
/又は他のインタフェース装置20へ接続するユーザ・
インタフェース・アダプタ14を含む。他のインタフェ
ース装置20としては、例えば、接触感知画面やデジタ
イザ・ペン入力パッド等の任意のユーザ・インタフェー
ス装置がある。さらに、バス12は、表示アダプタ24
を介してLCD画面やモニタ等の表示装置22をマイク
ロプロセッサ10へ接続する。バス12は、さらに、R
OM、RAM等を含むメモリ26へマイクロプロセッサ
10を接続する。
【0014】本発明で用いるソフトウェア・プログラミ
ング・コードは、一般的にはスタンドアロン型ワークス
テーション環境のメモリ26に記憶される。クライアン
ト/サーバ環境においては、ソフトウェア・プログラミ
ング・コードを、サーバに関連するメモリに記憶するこ
とができる。ソフトウェア・プログラミング・コード
は、データ処理システムと共に用いるディスケットやC
D−ROM等任意の様々な既知の媒体上で具現化するこ
とができる。ソフトウェア・プログラミング・コード
は、このような媒体上に分散させることができ、あるい
は、所与の形式のネットワークを介して1つのコンピュ
ータ・システムのメモリから他のコンピュータ・システ
ムへ分配され、それを他のシステムのユーザが利用する
ことができる。ソフトウェア・コードを物理的媒体上に
具現化したりネットワークを介してソフトウェア・コー
ドを分配するこのような技術及び方法は、周知であり、
ここでは詳細に説明しない。
【0015】以下、Smalltalk開発環境部分である好適
例において本発明を説明する。Smalltalk開発環境は、
オペレーティング・システム及びハードウェアの任意の
様々な組合せに対して動作可能であるので、特定のオペ
レーティング・システム及びハードウェアと関係なく説
明することとする。Smalltalkは、動的オブジェクト指
向言語であり、かつ純粋なオブジェクト指向言語といわ
れている。なぜなら、Smalltalkは、継承、ポリモルフ
ィズム等のオブジェクト指向言語の基本的定義の全てを
具備するからである。これらの概念については、ここで
説明しない。他の幾つかのオブジェクト指向言語、例え
ば、C++等は、アーキテクチャにおいてやや異なって
いる。しかしながら、他のほとんどのオブジェクト指向
言語においても前述のパッケージ化の問題が同様に存在
しており、本明細書に開示される解決手段は、これらの
他のオブジェクト指向言語に対しても直接的に適用可能
である。
【0016】図2は、IBM社によるVisualAge等のSmallt
alkオブジェクト指向開発環境の基本アーキテクチャを
示す図である。オブジェクト指向開発環境40自体がア
プリケーションであり、基礎的オペレーティング・シス
テム42上で実行される。開発環境40の中で仮想マシ
ンとして知られる部分44が、オペレーティング・シス
テムと相互的に動作する。Smalltalk開発環境は階層的
であり、開発環境40のイメージ部分46には、仮想マ
シン44へ結合された階層的クラスが続き、仮想マシン
44の上で論理的に実行されているものと見ることがで
きる。イメージ46は開発環境40の一部であり、開発
者はオブジェクト指向アプリケーションを開発するため
にイメージ46と相互的に作業を行う。開発環境40の
イメージ部分46は、様々な階層に設けられる多様なク
ラスを含み、これらは多くの異なるレベルにおける機能
を提供する。高レベルにおいては、クラス全体の組を、
開発者の所望する極めて完成された機能を提供するフレ
ームワークから構成することができ、開発者は、それを
開発中のアプリケーションへ引き入れることができる。
一方、その機能は、開発環境によるフレームワークのよ
うな整然としたパッケージの形で設けることはできな
い。そのため開発者は、開発中のアプリケーションのた
めに、比較的低レベルのクラスや個々のクラスを組み合
わせたり、所望の機能を作るために新たなクラスを書い
たりする必要がある。
【0017】イメージ46は、アプリケーション開発ツ
ールも含み、それは、異なる環境においては異なってい
る。これらのツールは、クラス及びメソッドを見るため
のクラス・ブラウザ、累積的開発を可能としかつ開発中
のアプリケーションを保存するバージョン制御システ
ム、開発環境40を用いて作成されたアプリケーション
をデバッグするためのデバッガ等を含む。さらに、開発
環境は、Smalltalkコンパイラを含み、これは、アプリ
ケーションの各部分をリンクしたりコンパイルしたりす
る。Smalltalkはインタプリタ言語であるので、アプリ
ケーションの各部分はバイト・コードの形態のままであ
り、これらのコードは実行中に実行時エンジンにより翻
訳される。
【0018】図3は、オブジェクト50の工業規格表示
である。オブジェクト50のメソッド52は機能を提供
し、一方、データ部分54はオブジェクト50に関する
データを含む。オブジェクトは、多くのクラスからなる
階層から得られる1つのクラスのインスタンス化であ
り、開発者がアプリケーションにおいて用いるために指
定したものである。1つのアプリケーションにおいて、
同じクラスを何回でも用いることができる。
【0019】図4は、多数のクラス62からなる階層6
0を示す図である。オブジェクト指向階層は、スーパー
クラス及びサブクラスの概念を用いる。1つのクラス
は、クラス階層における上層のクラス(スーパークラ
ス)から全ての変数とメソッドを継承する。継承するク
ラスは、そのスーパークラスのサブクラスと称される。
【0020】このアーキテクチャの見地からすると、従
来技術によるパッケージ化アルゴリズムは、非常に保守
的にパッケージ化を処理してきた。従来のアルゴリズム
は、アプリケーションをパッケージ化する際にいずれの
クラスを含んでいるのかに関して、それほど差別化しな
い傾向がある。この手法の場合、必要なクラスを落とす
ことは滅多にないが、この手法が安全性の面に関して誤
って強く働く結果、アプリケーションが扱いにくい大き
さとなって多くのメモリを必要とすることとなる。ま
た、時には、最適な性能が低下してしまうことになる。
【0021】従来技術による場合のように、開発者が、
開発環境においてアプリケーションの開発を終了したと
き、開発者はその開発環境内でパッケージ化機能を具現
化する。パッケージ化アルゴリズムは、実行可能なアプ
リケーション中に、実行時エンジンと共にいずれのクラ
スを含めるべきかを決定する。本発明のパッケージ化ア
ルゴリズムについて、図5乃至図8の流れ図を参照して
説明する。
【0022】本発明のパッケージ化アルゴリズムは、ア
プリケーション及びその関連する再利用可能なコード・
ライブラリ内のコードを解析することにより、そのアプ
リケーションを実行可能とするために必要なコードの最
小のサブセットを決定する。アルゴリズムは、ステップ
のリンク及びパッケージ化に用いられ、そしてアプリケ
ーションを実行するために必要なクラス及び/又はメソ
ッドの最小限定セットを決定する。以下の説明において
は、最小の限定されたクラス及びメソッドを、「必須ク
ラス」及び「必須メソッド」と称する。本発明では、ク
ラス(オブジェクト)のインスタンスが互いにメッセー
ジを送り合うような方法でオブジェクト指向アプリケー
ションが実行されるという事実を利用する。従って、多
くの必須クラス及び必須メソッドが、相互に関連してい
る。パッケージ化されたアプリケーションは、仮想マシ
ン、イメージ及びクラス・ライブラリに亘る開発環境か
らの必須クラス及び必須メソッドを含み、そして実行時
にアプリケーションを実行するために必要な仮想マシン
からのコードを含むことになる。実行に必要な仮想マシ
ンからのコードは、通常、全てのSmalltalkアプリケー
ションについて不変である。
【0023】パッケージ化されるアプリケーションのイ
メージ部分からの最初の「開始メソッド」は、インプリ
メンテーション及び言語に従って開発者が規定する必要
がある。開始メソッドから、アルゴリズムは、そのアプ
リケーションにおけるクラス及び他のメソッド並びに再
利用可能なクラス・ライブラリの全てを参照することに
より、必須メソッド及び必須クラスの組を決定する。
【0024】そして、開発者がアプリケーションの開発
を終了するとき、その開発者は、開発環境に対してパッ
ケージ化を開始するようにコマンドを入力する(ステッ
プ100)。その後、プログラムは、多数の変数を作成
する。これらの変数には、必須メソッド・セット、必須
クラス・セット、既知メソッド・セット、及び検査メソ
ッド辞書が含まれる。これら全ての変数は、初期におい
ては空である(ステップ104)。開発環境からのメソ
ッド及びクラスがそのアプリケーションの実行に必要で
あるとアルゴリズムが判断すると、それらのメソッド及
びクラスが、それぞれ必須メソッド・セット及び必須ク
ラス・セットに追加される。アプリケーションは、後
に、これらのセットに規定されたメソッド及びクラスの
みとパッケージ化されることになる。既知メソッド・セ
ットに入れられたメソッドは、(既に含まれていない場
合は)必須メソッド・セットに追加された上、更に必要
なクラス及び他のメソッドを識別するためにアルゴリズ
ムに従って処理されることになる。かつ/又は、既知メ
ソッド・セット内のメソッドは、他の必要なクラス及び
メソッドを識別するためにそれ自体で処理される。検査
メソッド辞書は、必要なメソッドの識別を支援するため
に用いられる。後述するように、他の変数もまたアルゴ
リズムにより用いられる。
【0025】ユーザにより又は自動的照会においてプロ
グラム自体により識別された1又は複数の開始メソッド
は、既知メソッド・セットに追加される(ステップ10
6)。前述のように、Smalltalkにおいては、仮想マシ
ン及びイメージの既知の部分は、いずれかのアプリケー
ションのアプリケーション・コードを実行するために必
要である。一般的に、実行時アプリケーションを実行す
るために必要なメソッド及びクラスは、既知である。従
って、必須実行時メソッドは、既知メソッド・セットに
追加され(ステップ108)、実行時実行のための必須
クラスは必須クラス・セットに追加される(ステップ1
10)。
【0026】所与の事例においては、アプリケーション
・コードにより必要とされる幾つかのクラスが、アプリ
ケーション開発環境自体に存在しておらず、メソッド・
ネームによっては識別できない。例えば、そのようなク
ラスが、永続的記憶機構内に存在していることがあり、
アプリケーションがその実行中にそのクラスを読取る場
合がある。しかしながら、永続的記憶機構内のメソッド
に対する特定の参照手段がなければ、アルゴリズムはそ
のようなメソッドやクラスを探索しないことになり、よ
ってパッケージ化のためにそれらを識別しないことにな
る。従って、この時点で、このような必要なクラスの全
てが、必須クラス・セットへ追加される(ステップ11
2)。最もよくあることは、これらのクラスの場所が、
アプリケーション開発者により与えられることである。
しかしながら、パッケージ化ステップに自動的照会を組
み込むことができるので、これにより、このようなクラ
スの場所を見出すことができ、よってそれらのクラスが
自動的に必須クラス・セットへ追加される。
【0027】アルゴリズムは、既知メソッド・セットの
内容を用いて、クラス及びメソッドの最小限定セットの
探索を開始する。ステップ114において、最終的に既
知メソッド・セットが空であると判断されると、クラス
及びメソッドの最小限定セットが規定されたことにな
り、必須メソッド・セット及び必須クラス・セットから
のメソッド及びクラスのみを含むようにアプリケーショ
ンをパッケージ化することができる(ステップ11
6)。しかしながら、最初は、ステップ106において
ユーザにより又は自動的に既知メソッド・セットに対し
て開始メソッド与えられているので、既知メソッド・セ
ットは空ではなく、処理はステップ118まで進められ
る。ステップ118において、1つのメソッドが既知メ
ソッド・セット内のメソッドから選択され、既知メソッ
ド・セット内から削除される。このメソッドは、既知メ
ソッド・セット内から無作為に選択してもよく、又は、
既知メソッド・セット内に挙げられた最初のメソッドで
もよい。その後、必須メソッド・セットが、その選択さ
れたメソッドを既に含んでいるか否かを調べるために検
査される(ステップ120)。もし含んでいれば、処理
はステップ114へ戻る。ステップ120において、選
択されたメソッドが必須メソッド・セットに含まれてい
ないと判断されたならば、処理はステップ122へ進
み、選択されたメソッドが必須メソッド・セットへ追加
される。次に、選択されたメソッドにより呼び出し可能
な全てのメソッドのリストが作成される(ステップ12
4)。Smalltalkの特性として、通常のメソッドは、実
行中に処理を行うために1又は複数の他のメソッドへメ
ッセージを送る。ステップ124において作成されたリ
ストは、これらの他のメソッドから構成される。既知メ
ソッド・セットから選択されたメソッドが他のいずれの
メソッドも呼び出さない場合、又はリスト全体のメソッ
ドが処理された後は、ステップ126においてリストが
空であると判断され、処理はステップ140へ跳ぶ。一
方、ステップ126においてリストが実際に空であると
判断されるまでは、リスト内の第1のメソッド又は次の
メソッドが参照メソッド変数に割り当てられ、リストか
ら除去される(ステップ128)。ステップ130にお
いて、必須クラス・セットが、参照メソッド変数に含ま
れるメソッドを具現化するクラスを既に含むか否かが判
断される。もし、含んでいれば、参照されるメソッドが
既知メソッド・セットへ追加され、参照メソッド変数か
ら除かれる(ステップ138)。その後、処理は、リス
ト内の次のメソッドがあれば、ステップ126へ戻る。
【0028】ステップ130において、必須クラス・セ
ットが、参照されるメソッドを具現化するクラスを含ん
でいなければ、検査メソッド辞書の中にその具現化する
クラスに対応するエントリが存在するか否かが判断され
る(ステップ132)。ステップ132において、その
ようなエントリが存在しないと判断されたならば、その
具現化するクラスのために検査メソッド辞書に空のセッ
トが追加される(ステップ134)。ステップ132に
おいて、具現化するクラスに対するエントリが存在する
と判断されたならば、又は、ステップ134においてそ
の具現化するクラスに対応するエントリが作成された後
には、参照されるメソッドが検査メソッド辞書内のその
具現化するクラスに対するエントリに追加される(ステ
ップ136)。参照されるメソッドは変数から除かれ、
そして、リスト内に残っているメソッドがあれば処理は
ステップ126へ戻る。
【0029】ステップ126において、リストが空であ
ると判断されたとき、処理はステップ140へ進み、
(ステップ118において)選択されたメソッドにより
参照される全てのクラスのリストが作成される。Smallt
alkにおいては、他のメソッドへの参照(ステップ12
4〜138で処理される)は別個になっているので、1
つのメソッドが多数のメソッドを参照することができ
る。以下の記述は、必須クラス・セットに未だ追加され
ていない、参照されるクラス及びそれらの親クラスすな
わちスーパークラスを識別する処理である。
【0030】先ず、ステップ142において、選択され
たメソッドがいずれかのクラスを参照するか否か(又
は、リストが処理し尽くされたか否か)が判断される。
もしそうであれば、処理はステップ114へ戻り、既知
メソッド・セット中の次のメソッドを処理する。そのリ
ストが少なくとも1つのクラスに対する参照を含んでい
れば、リスト中のクラスの1つが参照クラス変数へ割り
当てられ、そのリストから削除される(ステップ14
4)。次に、参照クラス変数が、その参照クラス及びそ
の全てのスーパークラスを含むように更新される。所与
のクラスに対するスーパークラスを決定する技術は、周
知であり本明細書での説明を要しない。
【0031】ステップ148〜160では、上記のよう
にして参照クラス変数に挙げられたクラスを処理する。
ステップ150〜160の処理によりそのリストが尽く
された後、ステップ148により処理はステップ142
へ戻る。参照クラス変数内のリストにまだクラスが含ま
れる間は、処理はステップ150へ進み、参照クラス変
数内の最初の若しくは次の要素すなわちクラスが参照ク
ラス変数aへ割り当てられ、参照クラス変数から削除さ
れる(ステップ150)。ステップ152において、参
照クラス変数a内のクラスが既に必須クラス・セットに
含まれているか否かが判断される。既に含まれている場
合、参照クラス変数内に次のクラスがあればその処理の
ためにステップ148へ戻る。ステップ152におい
て、そのクラスが必須クラス・セットにまだ含まれてい
ない場合、そのクラスが必須クラス・セットに追加され
る(ステップ154)。ステップ156において、その
クラスに対するエントリが、検査メソッド辞書中の参照
クラス変数a内に存在するか否かを判断する。このよう
なエントリが存在しなければ、処理はステップ148へ
戻る。ステップ156においてこのようなエントリが検
査メソッド辞書中に存在する場合、処理はステップ15
8へ進み、検査メソッド辞書中の対応するエントリ内の
全てのメソッドが、既知メソッド・セットへ追加され
る。その後、参照クラス変数a内のクラスに対応するエ
ントリ及びそのメソッドが、検査メソッド辞書から除か
れ、そしてそのクラスが、参照クラス変数aから除かれ
る(ステップ160)。その後、処理は、参照クラス変
数内の残りのクラスのためにステップ148へ戻る。
【0032】ステップ148において、参照クラス変数
内にそれ以上クラスが挙げられていないとき、処理は、
選択されたメソッドにより参照されたクラスのリスト内
の残りのクラスのために、ステップ142へ戻る。ステ
ップ142において、リストが空であると判断されたと
き、処理は、既知メソッド・セット内の次のメソッドに
関する処理のためにステップ114へ戻る。処理がステ
ップ114へ戻ったとき、既知メソッド・セット内にそ
れ以上メソッドが存在しなければ、アルゴリズムは、ク
ラス及びメソッドの必要最小限のセットを識別したこと
になる。これらのクラス及びメソッドは、それぞれ、必
須クラス・セット及び必須メソッド・セットにリストさ
れる。その後、ステップ116において、必須クラス・
セット及び必須メソッド・セットに識別されたメソッド
及びクラスのみがパッケージ化アプリケーションに含ま
れるように、既知の技術に従ってアプリケーションのパ
ッケージ化が実行される。アプリケーションのパッケー
ジ化のための特定の処理技術については、周知でありか
つ現在実用化されているので本明細書では説明しない。
【0033】本アルゴリズムは、Smalltalkについて特
別に提示されたものであるが、プロシージャ又はルーチ
ンがネームにより呼び出される他の言語のパッケージ化
ステップに対しても一般的に適用可能である。このアル
ゴリズムは、C++、ScriptX等の他のオブジェクト指向
言語に対しても明らかに適用可能であるが、Cコード・
ライブラリ等のパッケージ化にも適用可能である。
【0034】本発明の好適例を説明したが、当業者によ
れば、本発明の進歩性概念を理解したならばこの好適例
の更なる変形及び修正が行われるであろう。従って、特
許請求の範囲には、好適例と共にそのような変形及び修
正も含まれる。
【0035】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0036】(1)アプリケーションの実行に必要な開
発環境からコードの組を決定するためのコンピュータ読
取り可能なコードであって、前記アプリケーションの実
行に必要な既知の1のコンポーネントを識別する第1の
サブプロセスと、前記アプリケーションの実行のための
前記既知の1のコンポーネントにより必要とされるコン
ポーネントを識別する第2のサブプロセスと、前記第2
のサブプロセスにおいて識別された前記コンポーネント
により必要とされるコンポーネントを識別しかつ該識別
されたコンポーネントが実行のためのものである第3の
サブプロセスとを有するコンピュータ読取り可能なコー
ド。 (2)前記第1のサブプロセスにより、ユーザが少なく
とも1つの既知のコンポーネントを識別することができ
る(1)に記載のコンピュータ読取り可能なコード。 (3)前記第1のサブプロセスが、前記アプリケーショ
ンのコンポーネント自体を識別するために該アプリケー
ションのコンポーネントを照会し、該識別されたコンポ
ーネントを既知のコンポーネントとして用いる(1)に
記載のコンピュータ読取り可能なコード。 (4)前記アプリケーションが、開発中のオブジェクト
指向アプリケーションであり、前記コンピュータ読取り
可能なコードがさらに、前記既知のコンポーネント及び
前記識別されたコンポーネントのみを含むように前記ア
プリケーションをパッケージ化する第4のサブプロセス
を有する(1)に記載のコンピュータ読取り可能なコー
ド。 (5)前記識別されたコンポーネントの1つのインスタ
ンスのみが、前記パッケージ化されたアプリケーション
に含まれる(4)に記載のコンピュータ読取り可能なコ
ード。 (6)任意のアプリケーションを実行するために必要な
共通のコンポーネントを識別する第5のサブプロセスを
有する(4)に記載のコンピュータ読取り可能なコー
ド。 (7)前記アプリケーションがメソッド及びクラスを有
するオブジェクト指向アプリケーションであり、前記既
知のコンポーネントがメソッドであり、そして前記第2
のサブプロセスがさらに、該既知のメソッドにより参照
されるメソッド及びクラスを識別する(1)に記載のコ
ンピュータ読取り可能なコード。 (8)開発中のオブジェクト指向アプリケーションを実
行するために必要な最小限のクラス及びメソッドの組を
決定するコンピュータ読取り可能なコードであって、
既知のメソッドを識別しかつ該既知のメソッドを既知メ
ソッド・リストに追加する第1のサブプロセスと、前記
既知メソッド・リストからメソッドを選択しかつ該既知
メソッド・リストから該選択されたメソッドを削除する
第2のサブプロセスと、前記選択されたメソッドが必須
メソッド・リストに含まれるか否かを判断し、含まれる
場合は、前記第2のサブプロセスを繰り返す第3のサブ
プロセスと、前記選択されたメソッドを前記必須メソッ
ド・リストに追加しかつ該選択されたメソッドにより参
照されるメソッドのリストを作成する第4のサブプロセ
スと、参照されるメソッドの各々に関して、各参照され
るメソッドの実装クラスが必須クラス・リストに含まれ
るか否かを判断する第5のサブプロセスと、前記第5の
サブプロセスにおいて前記必須クラス・リストにその実
装クラスが含まれないと判断された場合、各参照される
メソッドを前記既知メソッド・リストに追加する第6の
サブプロセスと、前記第5のサブプロセスにおいて前記
実装クラスが必須クラスであると判断された場合、前記
実装クラスの各々に対応する検査メソッド・リスト内の
エントリを検査し、エントリがなければ該検査メソッド
・リスト内にエントリを作成し、そして該検査メソッド
・リスト内のその実装クラスについてのエントリに実装
メソッドを追加する第7のサブプロセスと、前記選択さ
れたメソッドにより参照されるクラスの第1のクラス・
リストを作成する第8のサブプロセスと、前記第1のク
ラス・リスト中の参照されるクラスの各々について、該
参照されるクラス及びその全てのスーパークラスを含む
第2のクラス・リストを作成する第9のサブプロセス
と、前記第2のクラス・リスト中の各クラスに関して、
該クラスが前記必須クラス・リストに含まれるか否かを
判断し、含まれない場合は、該クラスを該必須クラス・
リストへ追加し、前記検査メソッド・リスト中の該クラ
スに対応するエントリを検査し、そして、エントリが存
在するならば、該エントリ中の各メソッドを該既知メソ
ッド・リストへ追加し、該エントリを該検査メソッド・
リストから削除する第10のサブプロセスと、前記既知
メソッド・リストが空となるまで、適宜前記第2乃至第
10のサブプロセスを繰り返す第11のサブプロセスと
を有するコンピュータ読取り可能コード。 (9)演算環境において、作成中のアプリケーションの
ためにアプリケーション開発環境から必要なコンポーネ
ントの組を決定するシステムであって、前記アプリケー
ションの実行に必要な第1のコンポーネントを識別する
手段と、前記アプリケーションに含めるために、ネーム
により参照されるか又は前記第1のコンポーネントによ
り必要とされる第1の組のコンポーネントを識別する手
段と、ネームにより参照されるか又は前記第1の組の個
々のコンポーネントにより必要とされる第2の組のコン
ポーネントを識別しかつ該識別された第2の組の個々の
コンポーネントがその後前記アプリケーションに含める
ためのものである手段と、前記第1のコンポーネント、
前記第1の組のコンポーネント、及び前記第2の組のコ
ンポーネントから必要なコンポーネントのリストを作成
する手段とを有するシステム。 (10)前記必要なコンポーネントの各々を、前記リス
ト上に1回だけ含める手段を有する(9)に記載のシス
テム。
【図面の簡単な説明】
【図1】本発明を実施可能な代表的ハードウェア環境の
ブロック図である。
【図2】オブジェクト指向アプリケーション開発環境の
アーキテクチャの図である。
【図3】オブジェクト指向オブジェクトを示す図であ
る。
【図4】オブジェクト指向言語の関連するクラス間にお
ける一般的な階層関係を示す図である。
【図5】本発明のパッケージ化アルゴリズムの論理ステ
ップを示す流れ図である。
【図6】本発明のパッケージ化アルゴリズムの論理ステ
ップを示す流れ図である。
【図7】本発明のパッケージ化アルゴリズムの論理ステ
ップを示す流れ図である。
【図8】本発明のパッケージ化アルゴリズムの論理ステ
ップを示す流れ図である。
【符号の説明】
12 バス 14 ユーザ・インタフェース・アダプタ 16 キーボード 18 マウス 22 インタフェース装置 24 表示アダプタ 26 メモリ 40 アプリケーション開発環境 42 オペレーティング・システム 44 仮想マシン 46 イメージ 50 オブジェクト 52 メソッド 54 データ 60 階層 62 クラス

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】アプリケーションの実行に必要な開発環境
    からコードの組を決定するためのコンピュータ読取り可
    能なコードであって、 前記アプリケーションの実行に必要な既知の1のコンポ
    ーネントを識別する第1のサブプロセスと、 前記アプリケーションの実行のための前記既知の1のコ
    ンポーネントにより必要とされるコンポーネントを識別
    する第2のサブプロセスと、 前記第2のサブプロセスにおいて識別された前記コンポ
    ーネントにより必要とされるコンポーネントを識別しか
    つ該識別されたコンポーネントが実行のためのものであ
    る第3のサブプロセスとを有するコンピュータ読取り可
    能なコード。
  2. 【請求項2】前記第1のサブプロセスにより、ユーザが
    少なくとも1つの既知のコンポーネントを識別すること
    ができる請求項1に記載のコンピュータ読取り可能なコ
    ード。
  3. 【請求項3】前記第1のサブプロセスが、前記アプリケ
    ーションのコンポーネント自体を識別するために該アプ
    リケーションのコンポーネントを照会し、該識別された
    コンポーネントを既知のコンポーネントとして用いる請
    求項1に記載のコンピュータ読取り可能なコード。
  4. 【請求項4】前記アプリケーションが、開発中のオブジ
    ェクト指向アプリケーションであり、前記コンピュータ
    読取り可能なコードがさらに、前記既知のコンポーネン
    ト及び前記識別されたコンポーネントのみを含むように
    前記アプリケーションをパッケージ化する第4のサブプ
    ロセスを有する請求項1に記載のコンピュータ読取り可
    能なコード。
  5. 【請求項5】前記識別されたコンポーネントの1つのイ
    ンスタンスのみが、前記パッケージ化されたアプリケー
    ションに含まれる請求項4に記載のコンピュータ読取り
    可能なコード。
  6. 【請求項6】任意のアプリケーションを実行するために
    必要な共通のコンポーネントを識別する第5のサブプロ
    セスを有する請求項4に記載のコンピュータ読取り可能
    なコード。
  7. 【請求項7】前記アプリケーションがメソッド及びクラ
    スを有するオブジェクト指向アプリケーションであり、
    前記既知のコンポーネントがメソッドであり、そして前
    記第2のサブプロセスがさらに、該既知のメソッドによ
    り参照されるメソッド及びクラスを識別する請求項1に
    記載のコンピュータ読取り可能なコード。
  8. 【請求項8】開発中のオブジェクト指向アプリケーショ
    ンを実行するために必要な最小限のクラス及びメソッド
    の組を決定するコンピュータ読取り可能なコードであっ
    て、 既知のメソッドを識別しかつ該既知のメソッドを既知メ
    ソッド・リストに追加する第1のサブプロセスと、 前記既知メソッド・リストからメソッドを選択しかつ該
    既知メソッド・リストから該選択されたメソッドを削除
    する第2のサブプロセスと、 前記選択されたメソッドが必須メソッド・リストに含ま
    れるか否かを判断し、含まれる場合は、前記第2のサブ
    プロセスを繰り返す第3のサブプロセスと、 前記選択されたメソッドを前記必須メソッド・リストに
    追加しかつ該選択されたメソッドにより参照されるメソ
    ッドのリストを作成する第4のサブプロセスと、 参照されるメソッドの各々に関して、各参照されるメソ
    ッドの実装クラスが必須クラス・リストに含まれるか否
    かを判断する第5のサブプロセスと、 前記第5のサブプロセスにおいて前記必須クラス・リス
    トにその実装クラスが含まれないと判断された場合、各
    参照されるメソッドを前記既知メソッド・リストに追加
    する第6のサブプロセスと、 前記第5のサブプロセスにおいて前記実装クラスが必須
    クラスであると判断された場合、前記実装クラスの各々
    に対応する検査メソッド・リスト内のエントリを検査
    し、エントリがなければ該検査メソッド・リスト内にエ
    ントリを作成し、そして該検査メソッド・リスト内のそ
    の実装クラスについてのエントリに実装メソッドを追加
    する第7のサブプロセスと、 前記選択されたメソッドにより参照されるクラスの第1
    のクラス・リストを作成する第8のサブプロセスと、 前記第1のクラス・リスト中の参照されるクラスの各々
    について、該参照されるクラス及びその全てのスーパー
    クラスを含む第2のクラス・リストを作成する第9のサ
    ブプロセスと、 前記第2のクラス・リスト中の各クラスに関して、該ク
    ラスが前記必須クラス・リストに含まれるか否かを判断
    し、含まれない場合は、該クラスを該必須クラス・リス
    トへ追加し、前記検査メソッド・リスト中の該クラスに
    対応するエントリを検査し、そして、エントリが存在す
    るならば、該エントリ中の各メソッドを該既知メソッド
    ・リストへ追加し、該エントリを該検査メソッド・リス
    トから削除する第10のサブプロセスと、 前記既知メソッド・リストが空となるまで、適宜前記第
    2乃至第10のサブプロセスを繰り返す第11のサブプ
    ロセスとを有するコンピュータ読取り可能コード。
  9. 【請求項9】演算環境において、作成中のアプリケーシ
    ョンのためにアプリケーション開発環境から必要なコン
    ポーネントの組を決定するシステムであって、 前記アプリケーションの実行に必要な第1のコンポーネ
    ントを識別する手段と、 前記アプリケーションに含めるために、ネームにより参
    照されるか又は前記第1のコンポーネントにより必要と
    される第1の組のコンポーネントを識別する手段と、 ネームにより参照されるか又は前記第1の組の個々のコ
    ンポーネントにより必要とされる第2の組のコンポーネ
    ントを識別しかつ該識別された第2の組の個々のコンポ
    ーネントがその後前記アプリケーションに含めるための
    ものである手段と、 前記第1のコンポーネント、前記第1の組のコンポーネ
    ント、及び前記第2の組のコンポーネントから必要なコ
    ンポーネントのリストを作成する手段とを有するシステ
    ム。
  10. 【請求項10】前記必要なコンポーネントの各々を、前
    記リスト上に1回だけ含める手段を有する請求項9に記
    載のシステム。
JP8256244A 1995-12-21 1996-09-27 オブジェクト指向アプリケーション用パッケージ化アルゴリズム Pending JPH09204300A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/576,730 US6526565B1 (en) 1995-12-21 1995-12-21 Packaging algorithm for providing object oriented applications having reduced footprints
US08/576730 1995-12-21

Publications (1)

Publication Number Publication Date
JPH09204300A true JPH09204300A (ja) 1997-08-05

Family

ID=24305742

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8256244A Pending JPH09204300A (ja) 1995-12-21 1996-09-27 オブジェクト指向アプリケーション用パッケージ化アルゴリズム

Country Status (4)

Country Link
US (1) US6526565B1 (ja)
EP (1) EP0784264B1 (ja)
JP (1) JPH09204300A (ja)
DE (1) DE69636141T2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293379A (ja) * 1999-03-16 2000-10-20 Internatl Business Mach Corp <Ibm> 呼び出しを識別する方法、システムおよび記憶媒体
US7162708B2 (en) 2001-12-28 2007-01-09 Electronics And Telecommunications Research Institute Method and apparatus for identifying software components for use in an object-oriented programming system
WO2011055417A1 (ja) * 2009-11-09 2011-05-12 三菱電機株式会社 ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置
JP2016170515A (ja) * 2015-03-11 2016-09-23 日本電気株式会社 ソフトウェア自動構成装置、ソフトウェア自動構成方法およびソフトウェア自動構成プログラム
JP2019518274A (ja) * 2016-05-13 2019-06-27 ティブコ ソフトウェア インク 最小限のメモリ及びディスク資源消費のカスタム構築式プロセスエンジン

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2184066T3 (es) 1996-10-25 2003-04-01 Schlumberger Systems & Service Uso de un lenguaje de programacion de alto nivel con microcontrolador.
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US6493870B1 (en) * 1998-03-20 2002-12-10 Sun Microsystems, Inc. Methods and apparatus for packaging a program for remote execution
US6658492B1 (en) * 1998-03-20 2003-12-02 Sun Microsystems, Inc. System and method for reducing the footprint of preloaded classes
US6199196B1 (en) * 1998-03-20 2001-03-06 Sun Microsystems, Inc. Methods and apparatus for linking a program for remote execution
US7089242B1 (en) * 2000-02-29 2006-08-08 International Business Machines Corporation Method, system, program, and data structure for controlling access to sensitive functions
US7036113B1 (en) * 2000-10-26 2006-04-25 International Business Machines Corporation Detection of resource exceptions
US9378002B2 (en) * 2006-12-22 2016-06-28 Core Wireless Licensing S.A.R.L. System, method, apparatus and computer program product for providing memory footprint reduction
CA2753626C (en) * 2011-09-30 2019-05-07 Ibm Canada Limited - Ibm Canada Limitee Packed data objects
US10073974B2 (en) * 2016-07-21 2018-09-11 International Business Machines Corporation Generating containers for applications utilizing reduced sets of libraries based on risk analysis

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4330822A (en) * 1971-09-02 1982-05-18 Burroughs Corporation Recursive system and method for binding compiled routines
US5062039A (en) * 1988-09-07 1991-10-29 International Business Machines Corp. Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces
US5361351A (en) * 1990-09-21 1994-11-01 Hewlett-Packard Company System and method for supporting run-time data type identification of objects within a computer program
US5404525A (en) * 1992-09-30 1995-04-04 International Business Machines Corporation Efficient method router that supports multiple simultaneous object versions
US5369766A (en) * 1993-03-25 1994-11-29 Taligent, Inc. Object-oriented loader system with support for different load formats
US5414854A (en) * 1993-04-05 1995-05-09 Taligent, Inc. Object-oriental system for managing shared libraries
US5758160A (en) * 1993-06-28 1998-05-26 Object Technology Licensing Corporation Method and apparatus for building a software program using dependencies derived from software component interfaces
US5519866A (en) * 1993-06-28 1996-05-21 Taligent, Inc. Method and apparatus of incrementally linking components of a modeled computer program
US5668992A (en) * 1994-08-01 1997-09-16 International Business Machines Corporation Self-configuring computer system
US5613120A (en) * 1994-10-20 1997-03-18 Silicon Graphics, Inc. System and method for enabling, without recompilation, modification of class definitions and implementations in an object-oriented computer program
US5659735A (en) * 1994-12-09 1997-08-19 Object Technology Licensing Corp. Object-oriented system for program version and history database management system for various program components
US5640558A (en) * 1995-05-31 1997-06-17 International Business Machines Corporation Identifying and analyzing multiple level class relationships in an object oriented system by parsing source code without compilation

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293379A (ja) * 1999-03-16 2000-10-20 Internatl Business Mach Corp <Ibm> 呼び出しを識別する方法、システムおよび記憶媒体
US7162708B2 (en) 2001-12-28 2007-01-09 Electronics And Telecommunications Research Institute Method and apparatus for identifying software components for use in an object-oriented programming system
WO2011055417A1 (ja) * 2009-11-09 2011-05-12 三菱電機株式会社 ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置
JP4964352B2 (ja) * 2009-11-09 2012-06-27 三菱電機株式会社 ソフトウェアライブラリ再構築装置及び方法並びにこれを用いたナビゲーション装置
JP2016170515A (ja) * 2015-03-11 2016-09-23 日本電気株式会社 ソフトウェア自動構成装置、ソフトウェア自動構成方法およびソフトウェア自動構成プログラム
JP2019518274A (ja) * 2016-05-13 2019-06-27 ティブコ ソフトウェア インク 最小限のメモリ及びディスク資源消費のカスタム構築式プロセスエンジン

Also Published As

Publication number Publication date
DE69636141T2 (de) 2006-12-21
EP0784264A3 (en) 2004-06-30
EP0784264B1 (en) 2006-05-17
EP0784264A2 (en) 1997-07-16
US6526565B1 (en) 2003-02-25
DE69636141D1 (de) 2006-06-22

Similar Documents

Publication Publication Date Title
US5956479A (en) Demand based generation of symbolic information
EP0664027B1 (en) Program modeling system
US8352926B2 (en) Method and apparatus for a cross-platform translator from VB.net to java
US6041179A (en) Object oriented dispatch optimization
US7203926B2 (en) Active debugging environment for applications containing compiled and interpreted programming language code
US5519866A (en) Method and apparatus of incrementally linking components of a modeled computer program
US5758160A (en) Method and apparatus for building a software program using dependencies derived from software component interfaces
US6353923B1 (en) Active debugging environment for debugging mixed-language scripting code
US6002867A (en) Development system with methods providing visual form inheritance
US5093914A (en) Method of controlling the execution of object-oriented programs
CA2211478C (en) Systems, methods and apparatus for generating and controlling display of medical images
US5611043A (en) Debugger system and method for controlling child processes
US7398519B2 (en) Inheritance breakpoints for use in debugging object-oriented computer programs
JPH09204300A (ja) オブジェクト指向アプリケーション用パッケージ化アルゴリズム
US20020083415A1 (en) Frame component container
US5960202A (en) Method and apparatus for automatically logging compiler options and/or overriding compiler options
JP2009516239A (ja) コンピュータアプリケーションの追跡及びモニタリングを行う汎用のマルチインスタンスメソッド及びgui検出システム
JPH0334018A (ja) コンピュータプログラムのカプセル化方法及びその装置
US20040264782A1 (en) System and method for object-oriented graphically integrated command shell
Bastide et al. A visual and formal glue between application and interaction
WO2009009138A1 (en) A programming environment with support for handle and non-handle user-created classes
WO2001063410A2 (en) System and method for implementing a project facility
Gwinn Object-oriented programs in realtime
Kempf et al. Experience with CommonLoops
Goldman Smiley-an interactive tool for monitoring inter-module function calls

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20050602

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20050602