JP3728325B2 - 個別サブプログラムをメインプログラムに統合する方法 - Google Patents

個別サブプログラムをメインプログラムに統合する方法 Download PDF

Info

Publication number
JP3728325B2
JP3728325B2 JP34454492A JP34454492A JP3728325B2 JP 3728325 B2 JP3728325 B2 JP 3728325B2 JP 34454492 A JP34454492 A JP 34454492A JP 34454492 A JP34454492 A JP 34454492A JP 3728325 B2 JP3728325 B2 JP 3728325B2
Authority
JP
Japan
Prior art keywords
subprogram
main program
installable
individual
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP34454492A
Other languages
English (en)
Other versions
JPH0644063A (ja
Inventor
レイ リーズ マッキニス ディヴィッド
エル ルーバート ディヴィッド
ロバート バーマン エリック
ダブリュー サクストン トーマス
エイチ パドワ ダニエル
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JPH0644063A publication Critical patent/JPH0644063A/ja
Application granted granted Critical
Publication of JP3728325B2 publication Critical patent/JP3728325B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【産業上の利用分野】
本発明はアプリケーションプログラムに関し、とくに一つまたは複数の個別サブプログラムをメインプログラムに統合する方法に関する。
【0002】
【従来の技術】
パーソナルコンピュータが今日の社会に定着するにつれ、パーソナルコンピュータで使用するアプリケーションソフトウェアの需要は増加し続けている。この需要増加により、ソフトウェア開発業者の数およびアプリケーションソフトウァアプログラムの種類と数が大幅に増大した。更にソフトウェア開発業者達は、よりよい製品を提供し、他社と競合し得る利点を獲得または維持するという努力を通し、停まることなく既存プログラムを改良し続けている。
【0003】
【発明が解決しようとする課題】
しかし、アプリケーションソフトウェアが増え、その結果としての既存プログラムの改良にともない、ユーザは、ソフトウェアがごく短期間で旧式化してしまうという不利益を被る。この旧式化に最も寄与する重大要因の一つは、既存ソフトウェアの改良のための新ルーチン開発である。かかる新ルーチンは全体ソフトウェア製品のほんの一部分を構成しているたけであるのに、その新ルーチンの恩恵を得るためにユーザは新ソフトウェア製品全体を購入しなくてはならない。それ故、新しいメインプログラム全体を購入するのではなく、ユーザ自身が容易に新ルーチンの組み込み修正ができるようなソフトウェアアプリケーションプログラムを提供することが望ましい。
【0004】
現在、ソフトウェア開発業者は、特徴、機能、改良を多くして高価格で供給するか、特徴、機能、改良を少なくして低価格で供給するかを決定する際にジレンマに直面してもいる。アプリケーションプログラムに所望の特徴、機能、改良を組み込む本質的なカストマイズをユーザ自身が出来るようにモジュール形式で販売されるアプリケーションソフトウェアを提供することが望ましい。従って、アプリケーションプログラムをユーザが容易にカストマイズできるようにする方法を提供することが望ましい。
【0005】
また、ソフトウェア開発業者は、アプリケーションソフトウェアの評判をより向上するための努力において、ごく簡単に使えるソフトウェアを提供したいと欲する。しかしながらアプリケーションプログラムをグレードアップするための既存の方法のほとんどは、グレードアップ実行担当者による特殊専門知識を要する。このため、現在、多くのソフトウェア設計者が発表するソフトウェア新バージョンは、最も基本的なグレードアップをユーザに提供するものである。従って、ソフトウェアのグレードアップをユーザ自身が容易にできるようにする方法および装置を提供することが望ましい。
【0006】
【課題を解決するための手段】
本発明は、メインプログラムに個別サブプログラムを統合するための方法と装置を提供することによって先行技術の前述の各欠点を解決しようとするものである。本明細書に記載された好適実施例では、別個サブプログラムにサブプログラム機能を実行するためのアクセスコマンドが含まれ、個別サブプログラムはこのコマンドに対して応答する。同様に、メインプログラムは事象機能を実行する事象に対して応答する。好適方法には、更に、特定事象に応答するメインプログラムが実行する機能を決定する複数の事象エントリを備えた事象参照リストを保持する工程が含まれるが、その際、少なくとも事象エントリの一つに、サブプログラムのアクセスコマンドを識別する情報を有する。好適実施例には、更に、サブプログラム機能を実行されるようにサブプログラムをアクセスすることによって、一つ以上の事象の選択に対応する工程が含まれる。
【0007】
上述した通り、本発明は、個別サブプログラムをメインプログラムに完全に統合する方法を提供することによって、メインプログラムのコマンドと同じ方法でサブプログラムのコマンドを呼び出せるようにするものである。一般に、個別サブプログラムは、メインプログラムで利用可能な機能を実行するためのものである。例えば、メインプログラムが文書処理業務用のものである場合、スペルチェック、シソーラス、印刷、文書検索、ヘルプといった機能を実行するために個別サブプログラムを提供することが考えられる。本発明の重要態様の一つは、ユーザが見たときに個別サブプログラムがメインプログラムの一部であるようにメインプログラムに個別サブプログラムを統合することである。以下に詳述するが、本発明に記載の好適方法によれば、個別サブプログラムをメインプログラムに統合する際、個別サブプログラムの機能を実行するためのコマンドをキーボード上のキーまたはメインプログラムメニュー上のいずれかの位置に割り当てられるよう構成できる。割り当てられたキーを押すか、適当なメニュー位置をアクセスすることによって、ユーザは、メインプログラムによって実行される機能を呼び出すのと同じ方法で個別サブプログラムの機能を呼び出すことができる。
【0008】
【実施例】
図1の決定流れ図は本発明に記載の好適実施例の一般的方法を説明するものである。当該技術で周知の通り、メインプログラムを実行する前にこれをコンピュータ上のディレクトリに格納する。メインプログラムと一緒に利用する個別サブプログラムを同じディレクトリ、またはサブディレクトリに格納する。ユーザがメインプログラムを実行した時点でシステムを初期設定する(ステップ100)。当該技術分野で周知の通り、システムの初期設定には、メインプログラムをコンピュータのメモリスぺースへロードする工程、メインプログラムの初期設定ルーチンが規定する通りにレジスタを所望状態に設定またはリセットする工程、プログラムが使用できる状態になっていることを示すプロンプトをユーザに提供する工程、が含まれる。メインプログラムの初期設定の後、メインプログラムは自身のディレクトリを読み取り、メインプログラムと一緒に利用するために格納されている導入可能サブプログラムを識別する(ステップ102)。各々の導入可能サブプログラムは、所定のファイルに、サブプログラムを記述するための所定の情報を有する。メインプログラムは前記所定ファイルを呼び出し、個別サブプログラムを呼び出すための相互参照配列を作る(ステップ104)。
【0009】
更にくわしく説明すると、メインプログラムは導入可能サブプログラム記述リスト(ISD)を作り(ステップ102)、導入可能コマンド参照リスト(ICR)作り(ステップ104)、個別サブプログラムを記述し、メインプログラムによる個別サブプログラムへのアクセスを許可する。図5(A)と図5(B)を参照すると、図5(A)には導入可能コマンド参照リストのデータ構造、図5(B)には入可能サブプログラム記述リストのデータ構造が示されている。導入可能コマンド参照リスト500は、メインプログラムによって識別された(上述のステップ102)、各サブプログラムの各導入可能コマンドのリストである。但し、各サブプログラムは一つまたは複数のコマンドを含むので、導入可能コマンド参照リスト上のコマンドの数は、通常、識別された個別サブプログラムの数よりも多い、ということに注意する。導入可能コマンド参照リスト上に記載された各コマンドについて、データ構造500を規定する。
【0010】
各導入可能コマンドエントリのデータ構造には、個別サブプログラムコマンドを特定するため導入可能コマンド番号(IC番号)504が付いている。この導入可能コマンド番号は、本発明の範囲に反することなく種々の方法で割り振ることができる。但し、本明細書に記載の本発明好適実施例では、導入可能コマンド番号は、導入可能サブプログラム1個につき127個のコマンドを可能にする、7ビットの数を利用している。導入可能コマンド番号の次に続くのは、導入可能サブプログラム記述リスト502に対する導入可能サブプログラム記述ポインタ(ISDポインタ)506である。ISDポインタは8ビットの数で、ユーザは最大256個の導入可能サブプログラムを呼び出すことができる。ISDポインタの次に続くのは、導入可能サブプログラムのコマンド機能実行部分を識別する導入可能サブプログラムに対する導入可能サブプログラムポインタ(ISポインタ)508である。導入可能サブプログラムポインタ508の次に続くのは、コマンドの特性を特定する情報を格納するために用意されている、メインプログラムコマンド構造フィールド510である。メインプログラムコマンド構造フィールド510に格納されている情報は、メインプログラムのコマンドのために提供される情報と同様である。詳細は後述するが、サブプログラムに伝送されるデータ構造を格納する記憶場所を指示し、それによって個別サブプログラムとメインプログラムをインタフェースするコミュニケーションポインタ512も用意されている。
【0011】
導入可能サブプログラム記述リスト(ISDリスト)502は、メインプログラムによって識別された各導入可能サブプログラムを記述するデータの配列である。図5Bに記載のデータ構造は、識別された各導入可能サブプログラムに関するものである。コンピュータのメモリ上にロードするためのディレクトリにおいてメインプログラムが導入可能サブプログラムを捜し出すことができるようにするために、導入可能サブプログラム記述リストは、導入可能サブプログラムの位置に対するポインタ514を備えている。ディレクトリポインタ514の次に続くのは、当該導入可能サブプログラムに属する導入可能コマンド参照リスト上に記載されている第一導入可能コマンドを識別するIC番号である。IC番号516の次に続いているのは、導入可能サブプログラムの専用呼出し情報を識別するデータ518である。例えば、アイドル時間中に導入可能サブプログラムを呼び出す必要があるかどうか、導入可能サブプログラム自身のヘルプルーチンを入れるかどうか、導入可能サブプログラムが「自動実行」メッセージを受け取る必要があるかどうか、導入可能サブプログラムが遮断メッセージを受け取る必要があるかどうか、などを識別するためにデータが提供される。次回アクセスされたときに導入可能サブプログラムに戻されるロングワードを、導入可能サブプログラムによって格納できるようするために、専用呼出しデータの後ろにロングワード520が続いている。このロングワードの後ろに導入可能サブプログラム番号522が続いている。導入可能コマンド番号のように、導入可能サブプログラム番号により導入可能サブプログラムを識別する。
【0012】
更に図1、特にそのステップ104を参照する。メインプログラムが導入可能コマンド参照リストと導入可能サブプログラム記述リストを作成した後に、メインプログラムの事象参照リストが修正される。当該技術分野で周知の通り、一般的なソフトウェアアプリケーションプログラムは、事象と、事象に応じてプログラムが実行する動作とを関連付ける、表、ファイル、配列、などのデータ構造を備えている。本願実施例でそうであるように、例えば、キーボードのキーを押す、または、メニュー項目を選択する、というような、ユーザーによるプログラムへの入力、を事象に含ませてもよい。また、直前の操作実行中に、ユーザによって埋め込まれたオブジェクトの結果としてのプログラムによって、事象を自己生成させてもよい。メインプログラムによって、事象に応答して導入可能サブプログラムを参照できるので、ステップ102で識別された複数の導入可能サブプログラムから導入可能コマンドに応答して参照事項を包含するように事象参照リストを修正する(ステップ104)。本発明の現好適実施例の場合、導入可能コマンドに応答する参照事項は、導入可能コマンド参照リスト500(図5)に格納されている導入可能コマンド番号(IC番号)である。
【0013】
事象参照リストをアップデート可能にするための方法は、本発明の特殊態様ではない。しかしながら、事象参照リストをアップデート可能にするのに適した方法は、1990年1月8日に出願された、レイモンドD.グラム( Raymond D. Gram )による米国特許願第07/461,775号「コンピュータシステムにおいてユーザインタフェースをカストマイズするための方法とシステム」に説明されており、その開示内容全体が参考として本明細書に含まれる。
【0014】
導入可能コマンド参照リスト、導入可能サブプログラム記述リスト、および、事象参照リストを組み合わせて相互参照アレイを構成する。相互参照アレイにより、メインプログラムは、メインプログラム事象に応じて複数の導入可能サブプログラムを自動的に呼び出すことができる。従って、相互参照アレイにより、複数のサブプログラムがメインプログラムに完全に統合される。また、相互参照アレイが自動的に生成され、メインプログラムのディレクトリに格納されている各サブプログラムを包含するので、メインプログラムへの複数サブプログラム統合にはユーザの介入を全く要しない。
【0015】
相互参照アレイを作成し、システムが使用できる状態になっていることを示すプロンプトをユーザに表示した後、メインプログラムはユーザ入力のような事象を待つ(ステップ106)。上述した通り、事象には、一般的に、キーボード上のキーを押すユーザ、メニューから項目を選択するユーザ、または、別のユーザの入力をシステムに提供するユーザが含まれていてもよい。システムは、事象受信(ステップ106)と同時に事象IDを読み取り、この事象IDを利用して事象参照リスト上の適当なコマンドを参照する(ステップ108)。導入可能サブプログラムの導入可能コマンドへの参照は、メインプログラムのコマンドに従って事象参照リスト上で行われる。従って、導入可能サブプログラムによって実行される機能をユーザが呼び出そうとする場合、例えば、メニュー項目を選択するといった、標準的なユーザ入力だけで呼び出すことができる。
【0016】
事象コマンドが導入可能コマンドである場合(ステップ110)、相互参照アレイを用いて導入可能サブプログラムを参照する(ステップ112)。その後、システムはステップ106に戻り、再び、システム事象の発生を待つ。事象コマンドが導入可能コマンドでない場合(ステップ110)、事象がメインプログラムを出るためのものかどうかをシステムが判断する(ステップ114)。事象がメインプログラムを出るためのものである場合システムは導入可能コマンド参照リストと導入可能サブプログラム記述リストを格納する(ステップ116)ので、次回メインプログラムを初期設定するときにそれらのリストを利用できる。注目に値するのは、図2を参照して下記に詳しく説明するように、導入可能サブプログラム記述リストが導入可能サブプログラム参照リスト(ISRリスト)として格納されることである。
【0017】
事象が導入可能コマンドでなく、また、メインプログラムからの出口でもない場合、その事象がメインプログラムの一つを実行するためのものであり、システムは通常の方法でこのコマンドを実行し(ステップ118)、その後、ステップ116に戻って別のシステム事象の発生を待つ。
本発明の特徴は、導入可能サブプログラムの導入可能コマンドを、メインプログラムのコマンドと同じ方法で、ユーザが呼び出すことである。詳しくは後述するが、導入可能コマンドが、導入可能サブプログラムの導入可能コマンドのためのキー割りつけまたはメニュー位置を識別するデフォルト事象割りつけを備えてもよいので、導入可能サブプログラムはこれらの事象に応答する。また、上記に参照した米国特許願第07/461,775号に記載および説明されている方法により、ユーザは、導入可能コマンドについて事象割りつけを選択することもできる。
【0018】
更にまた、導入可能コマンドは、別のコマンドをプリエンプトまたはポストエンプトしてもよい。詳細には、他のコマンドを選択しているとき他のコマンドが実行される前に導入可能コマンドを呼び出す(即ち、プリエンプト)ことができるか、他のコマンドを選択しているとき他のコマンドが実行された後で導入可能コマンドを呼び出すことができるか、である。つまり、導入可能コマンドはメインプログラムのコマンドの属性ごとに許可される。
【0019】
上述の通り、メインプログラムの連続セッション中に用いる相互参照アレイ部分を格納することが望ましい。従って、メインプログラムを出る前に、システムはコマンド参照リスト(図5(A))と、導入可能サブプログラム記述リスト(図5(B))を保管する。これらのリストを各セッション後に格納することによって、後続セッション中のリスト修正に要する相当時間を短縮できる。また、ユーザによるメニューおよびキー割振りをセッションからセッションへ保管できる。普通のユーザは自分のアプリケーションソフトウェアの構成を滅多に変更しないので同一サブプログラム、キー割当て、メニュー割当てが組み合わせて何回も使用されるため、これらの特徴は特に価値がある。導入可能サブプログラム記述リストは、導入可能サブプログラム参照リストとして格納される。
【0020】
図2を参照すると、メインプログラムの初期設定時に相互参照アレイデータを修正する(図1のステップ104)現好適方法を説明するための決定流れ図が示されている。導入可能サブプログラム記述リストが生成された(図1のステップ102)後、システムは、導入可能サブプログラム参照リストが直前のセッションから保存されていたのかどうか判断する(ステップ200)。導入可能サブプログラム参照リストが存在している場合、(図1のステップ102で作成された)導入可能サブプログラム記述リストと、既存の導入可能サブプログラム参照リストとを比較する(ステップ202)。この比較によって、直前のセッション以来ディレクトリから除去された、または、ディレクトリに追加された導入可能サブプログラムを識別する。導入可能サブプログラムリストにない導入可能サブプログラム参照リスト上のサブプログラムが存在する場合(ステップ204)、導入可能サブプログラムは既にメインプログラムのディレクトリから除去されており、従って、サブプログラムならびにそのコマンドに対する参照事項が除去されるように相互参照アレイを修正しなくてはならない。そのため、事象参照リスト上の事象割りつけから、導入可能サブプログラムのいずれかの導入可能コマンドが削除される(ステップ206)。また、導入可能サブプログラムのコマンドが、導入可能コマンド参照リストから削除される。当業者には、導入可能コマンド参照リスト500の導入可能サブプログラム記述ポインタ506(図5(A))を用いて両リストを容易にアップデートできることが分かるであろう。
同様に、システムは、導入可能サブプログラム参照リスト上にない導入可能サブプログラム記述リスト上に記載されているサブプログラムが存在するかどうか、判定し(ステップ208)、そのようなサブプログラムが存在する場合、導入可能サブプログラムはメインプログラムのディレクトリに既に加えられており、従って、サブプログラムならびにそのコマンドに対する参照事項が追加されるように相互参照アレイを修正しなくてはならない。当業者には、導入可能コマンド参照リストが存在しない場合(ステップ200)、導入可能コマンド参照リストが生成されなくてはならない(ステップ216)ことが分かるであろう。導入可能コマンド参照リストが修正(ステップ200〜210)または作成(ステップ216)された後、追加されたサブプログラムのコマンドを導入可能コマンド参照リスト(ICRリスト)に追加し(ステップ210)、サブプログラムのコマンドのためのデフォルトキーを割振る。導入可能サブプログラム参照リストがアップデートした後に事象参照リストアップデートすると(ステップ214)、システムはステップ106に戻って上述の通り事象の発生を待つ。導入可能コマンドのメインプログラムへの完全統合に加え、メインプログラムのコマンドと同じ方法でユーザがサブプログラムを呼び出せるように、サブプログラムをメインプログラムに完全に統合してメインプログラムと同じデータ、ポインタ、ルーチンへアクセスさせる。これを実行するために、メインプログラムとサブプログラムの間のコミュニケーションを提供する命令セットとメモリとを、メインプログラムに備える。図3の決定流れ図にコミュニケーションの方法を示す。
【0021】
メインプログラムが事象に応答して導入可能コマンドを識別し(図1のステップ110)、導入可能サブプログラムを参照する(ステップ112)場合、図3の方法を実行する。この方法では、メインプログラムは、最初に導入可能サブプログラム記述(ISD)リスト(図5の502)を読み取り、次にサブプログラムのロングワード520および、サブプログラムに対する呼出しをフォーマットするのに必要な他の情報を獲得する(ステップ300)。本願でそうであるように、サブプログラムに対する呼出しには、予め決められた記憶場所へコールワードを格納する工程と、コンピュータのプロセッサの制御をサブプログラムの命令セットに転送する工程が含まれている。コールワードは、サブプログラムがその意図する機能を実行できるようにするための、メインプログラムからの情報を備えている。コールワードは、図6(A)に示されているようにフォーマットされる。
【0022】
図6(A)を参照すると、コールワード600の構造は、サブプログラムがどのように呼出されたかを識別するデータを含むデータフィールド602と、呼び出されてコールになった導入可能コマンドを識別するデータを含むフィールド604から成る。更に、導入可能サブプログラムが状態情報をメインプログラムに戻せるように、復帰状態フィールド606が設けられている。この状態情報には、例えば、エラーが発生したことを示してエラー種別を識別するエラーコード情報、ロックされているサブプログラムの資源ファイルを維持するようにメインプログラムに指示するための情報、特定時刻にサブプログラムを再コールするための情報、などを備えてもよい。また、コールワードは、サブプログラム機能を実行するための追加情報を獲得するためのサブプログラムが利用するメインプログラムへのポインタを含むメインプログラムポインタ608を備える。これらのポインタのうちの1個は、導入可能サブプログラム記述リストに格納されたサブプログラムのロングワード520(図5(B))であってもよい。
【0023】
本発明の特徴は、ロングワードを使用してサブプログラムがデータ中間コールを格納できるようにすることである。ロングワードは、各コールの最後にサブプログラムによってメインプログラムに提供される。メインプログラムは、次にサブプログラムが呼び出されるまで、導入可能サブプログラム記述リスト中のロングワードを格納する。サブプログラムへの各コールと同時に、メインプログラムは、直前に格納されたロングワードを獲得し、サブプログラムが使用するためのサブプログラムに戻す。従って、サブプログラムは、例えば、ヒープ上に動的に割りつけられたメモリへのポインタ、または、ヒープ上の種々の記憶場所を割りつけるポインタセットへのポインタというような、自身のポインタを格納するためにロングワードを利用できる。当業者であれば、本方法で複数のサブプログラムに記憶スぺースを割つけることによって、メモリブロックを割りつける必要がなくなることが、分かるであろう。サブプログラムは、他の所望機能のためにロングワードを使用できる。メインプログラムの特定データに対するポインタのような追加メインプログラムデータポインタがフィールド608に提供され、それによって、サブプログラムは、メインプログラムの全データにアクセスできる。
【0024】
サブプログラムに対するコールワードが一旦フォーマットされると、コールワードは記憶場所に格納され、メインプログラムは導入可能コマンド参照リストを読み取って、導入可能サブプログラムへのポインタ(例えば、図5の導入可能サブプログラムポインタ506)を獲得する(ステップ302)。次に、メインプログラムは、導入可能サブプログラムポインタによって特定されたメモリーに進むようにコンピュータのプロセッサに指示し(ステップ304)、それによって、コンピュータのプロセッサの制御をサブプログラムの命令セットに移す。導入可能サブプログラムは、適当な戻し状態フィールドとデータポインタを設定し、その機能を実施する。
【0025】
最初の呼出しで転送された情報を利用するのに加えて、サブプログラムは、コールバックワード(構造は図6(B)に図示)を用いてメインプログラムに照合できる。また、コールバックワードにより、導入可能サブプログラムがメインプログラムに実行させるオペレーションを要求することができる。第一データフィールドは、導入可能サブプログラムによって実行されるメインプログラムを要求する命令コードを識別する、opコードデータフィールド610である。命令コードデータフィールドの次に続くのは、opコード実行中に発生したエラーをメインプログラムがサブプログラムに対して識別できるようにする、エラーコードデーターフィールドである。エラーデータフィールドの次は、opコードを実行するためにメインプログラムが必要とする情報を格納し、opコードによるデータを格納するためのopコードパラメータフィールド614である。従って、サブプログラムは、opコードを実行するという限られた目的のためにコンピュータのプロセッサの制御をメインプログラムに移すことができる。メインプログラムは、コミュニケーションワードを調べて(ステップ308)、コールバックが必要かどうかを判定し、必要である場合はopコードを実行し(ステップ310)、いずれか必要な情報をコールバックワード616に戻す。当業者であれば、コールバックワードを使用して、メインプログラムが実行する機能をサブプログラムが要求できるようになることによって、メインプログラムへのサブプログラムの統合が更に確実なものになることが分かるであろう。例えば、サブプログラムはメインプログラムに対して、メモリの割りつけ、メッセージの表示、ユーザインプットの獲得、などを要求できる。
【0026】
結局、必要な情報はサブプログラムによって実行され(ステップ304)、追加情報は一切必要なく、サブプログラムは予め定められた記憶場所にコールワードを格納し、メインプログラムはサブプログラムロングワードを保管し(ステップ312)、戻る。
上記に説明した方法によれば、ユーザが容易にサブプログラムを呼び出せるように、複数の個別サブプログラムをメインプログラムに統合することもできる。注目に値するのは、2つのプログラムを統合させるに当たってユーザに必要な作業は、所定の記憶場所、通常はメインプログラムと同じディレクトリであるが、サブプログラムを格納するだけでよい、という点である。その以降、メインプログラムは、サブプログラムを識別でき、また、複数の個別サブプログラムのメインプログラムに統合できるようにする相互参照アレイを生成できる。同様の方法で、メインプログラムからサブプログラムを除去する場合、ユーザは、メインプログラムのディレクトリからサブプログラムを削除するだけでよい。その後、メインプログラムは相互参照アレイを再構成するので、削除されたサブプログラムが統合されることは無い。本発明の特に優れた特徴は、メインプログラムのメニュー上にサブプログラムのコマンドを置き、サブプログラムのコマンドにキーを割り振り、サブプログラムが要求する機能を実行できる、メインプログラムの機能である。
【0027】
以上説明した通り、本発明の現好適実施例の場合、メインプログラムに127個のサブプログラムを統合することができる。当業者あれば、本発明の方法を利用して、メインプログラムにより多くの、または、より少ないサブプログラムを統合する変更を、容易に実行できることであろう。しかしながら、メインプログラムに統合を許されるサブプログラムの数には関係なく、メインプログラム実行中にコンピュータのアドレススペースにロードされるサブプログラムの数を限定する方法を提供することが望ましい。本発明による方法には、終始、図4の決定流れ図のステップが含まれる。
【0028】
導入可能サブプログラムが参照されると(図1のステップ112)、メインプログラムは導入可能サブプログラムリスト(LSIリスト)を読み取る(ステップ400)。LSIリストは、コンピュータのアドレススペースにロードされている導入可能サブプログラムのリストである。導入可能サブプログラムがロードされていない場合(ステップ402)、メインプログラムは、導入可能サブプログラムをロードするためにアドレススペースを割りつける必要があるかどうか決定する。当業者であれば、アドレススペースを割りつける必要があるかどうかの決定を種々の方法で実施可能であることが分かるであろう。例えば、予め定められた大きさのアドレススペースを、複数の導入可能サブプログラムに割りつけることができる。または、予め定められた数のサブプログラムを、プロセッサのアドレススペース中で常時維持することもできる。サブプログラムをロードする前にアドレススペースを割りつける必要があるかどうか決定する方法は、当業者には容易に明らかになるであろう。
【0029】
アドレススペースを割りつける必要がある場合、メインプログラムは必要なアドレススペースを割りつける方法を決定する(ステップ406)。本発明の現好適実施例では、アドレススペースにロードされている各サブプログラムが最後にアクセスされたときを示すエントリを、LSIリストが保持している。ステップ406は、アドレススペースにロードされたサブプログラムがアクセスされずに長時間放置されているかどうかを判断し、サブプログラムが最初に占有していたアドレススペースを割りつけることによって、決定をおこなう。後からのサブプログラムをロードするためにアドレススペースを割りつけるための他の方法は、当業者には容易に明らかになるであろう。必要なアドレススペースを割りつけた後(ステップ406)。または、余分のアドレススペースが必要ない場合(404)、導入可能サブプログラムがロードされる(ステップ408)。その後、導入可能サブプログラムのアクセス情報がアップデートされる(ステップ409)。本発明の現好適実施例では、アクセス情報は、各サブプログラムがアクセスされた日時を示すデータが含まれているので、ステップ406のような決定ができるのである。当業者にとっては明らかである通り、他のアクセス情報もアップデートできる。
【0030】
本明細書では説明のために本発明の特定実施例について説明を行ったが、本発明の趣旨と範囲に反することなく種々なる変更を実施できることは明らかである。従って、本発明は、添付されているクレイムから逸脱しない範囲で限定されるものではない。
【図面の簡単な説明】
【図1】メインプログラムに個別サブプログラムを統合する本発明好適方法を説明する決定流れ図である。
【図2】本明細書に記載の好適実施例によりメインプログラムを個別サブプログラムにインタフェースするための参照データを保持する方法を説明する決定流れ図である。
【図3】本明細書に記載の好適実施例によりメインプログラムとサブプログラムの間の通信を可能にする方法を説明する決定流れ図である。
【図4】本明細書に記載の好適実施例により数多の個別サブプログラムへのアクセスを許可する間、メモリスペースを保存する方法を説明する決定流れ図である。
【図5】本明細書に記載の好適実施例によりメインプログラムから個別サブプログラムを参照するのに利用されるリストのデータ構造を説明する決定流れ図である。
【図6】本明細書に記載の好適実施例によりメインプログラムとサブプログラムの間で交換される情報パケットのデータ構造を説明する決定流れ図である。
【符号の説明】
500 導入可能コマンド参照リスト
502 導入可能サブプログラム記述リスト
504 導入可能コマンド番号
506 導入可能サブプログラム記述ポインタ
508 導入可能サブプログラムボインタ
510 メインプログラムコマンド構造フィールド
512 コミュニケーションポインタ
514 ディレクトリポインタ
516 ICポインタ
518 専用呼出しデータ
520 ロングワード
522 導入可能サブプログラム番号
600 コールワード
616 コールバックワード

Claims (4)

  1. メインプログラムの実行の際に複数の個別サブプログラムを統合するように構成されたコンピュータシステム内の上記メインプログラムに上記複数の個別サブプログラムを統合する方法であって、上記複数の個別サブプログラムの各々が、各々の複数のサブプログラムコマンドを実行するための複数の導入可能コマンドを備え、応答し、且つ、上記コンピュータシステム内の上記メインプログラムが複数の事象コマンドを実行するため複数事象に応答するものにおいて、
    (a) 上記メインプログラムの実行の際に関連して、所定のディレクトリ内の上記複数の個別サブプログラムの各々に対してディレクトリポインタを格納するステップ、上記ディレクトリポインタの各々は上記複数の個別サブプログラムの予め定められた一個を識別し、
    (b) 上記メインプログラムの実行の際に関連して、上記複数の個別サブプログラムの各々を識別するために、上記コンピュータシステム内の上記メインプログラムの初期設定時に上記ディレクトリポインタを経由して上記所定のディレクトリを読み取るステップ、
    (c) 上記メインプログラムの実行の際に関連して、上記識別された複数の個別サブプログラムにアクセスするためのサブプログラム記述リストを生成して維持するステップ、上記サブプログラム記述リストは上記複数の個別サブプログラムの各々に対してサブプログラム記述エントリを有し、各々の上記サブプログラム記述エントリは上記個別サブプログラムの識別と、上記個別サブプログラムを格納する上記コンピュータシステム内の記憶場所とを備えており、
    (d) 上記メインプログラムの実行の際に関連して、上記識別された複数の個別サブプログラムの各々を参照するための導入可能コマンド参照リストを生成して維持するステップ、上記導入可能コマンド参照リストは上記複数の個別サブプログラムの各々に含まれる複数の導入可能コマンドの各々に対して導入可能コマンド参照エントリを含み、各々の上記導入可能コマンド参照エントリは導入可能コマンドと、該導入可能コマンドに応答する上記複数のサブプログラムのうちの特定の1個を有しており、
    (e) 上記メインプログラムの実行の際に関連して、特定の事象に応答して上記コンピュータシステム内の上記メインプログラムにより実行されるコマンドを決定するための事象参照リストを作成して維持するステップ、上記事象参照リストは上記コンピュータシステム内の上記メインプログラムが応答している上記複数事象の各々に対して事象エントリを含んでおり、各々の上記事象エントリは上記コンピュータシステム内の上記メインプログラムにより実行される上記コマンドを決定するためのコマンド識別情報を有し、且つ少なくとも一つの上記事象エントリは上記複数の導入可能コマンドの各々の1個を識別するためのコマンド識別情報を含んでおり、及び
    (f) 一つの事象の選択の後、上記事象参照リストを参照して該事象に対応する上記事象エントリが導入可能コマンドを識別するものである場合、上記導入可能コマンド参照リストを参照することにより1個の上記複数の個別サブプログラムを識別し、そして上記サブプログラム記述リストを参照することにより上記1個の上記複数の個別サブプログラムにアクセスして、上記サブプログラムコマンドを実行するように構成された上記コンピュータシステムにより上記メインプログラムの実行の際に各々の上記サブプログラムコマンドが実行されるステップ、
    を含むことを特徴とする個別サブプログラムをメインプログラムに統合する方法。
  2. 請求項1に記載の方法において、サブプログラム記述リストを生成して維持する上記ステップ(c)がさらに、
    (g) 上記コンピュータシステム内で上記メインプログラムを出る前にサブプログラム参照リストとして上記サブプログラム記述リストを格納し、上記メインプログラムを出る前に上記導入可能コマンド参照リストを格納して、その後上記コンピュータシステム内で上記メインプログラムが初期設定された後に、上記メインプログラムに対して上記サブプログラム参照リストと上記導入可能コマンド参照リストが利用できるようにするサブステップ、及び
    (h) その後に上記コンピュータシステム内で上記メインプログラムが初期設定される時、既に除去された上記複数の個別サブプログラムのいずれかを上記サブプログラム記述リストと上記サブプログラム参照リストと比較することによって識別し、既に除去された個別サブプログラムがある場合、上記除去された個別サブプログラムに含まれていた複数の導入可能コマンドを除去された導入可能コマンドと同定して、該除去された導入可能コマンドを識別するための上記コマンド識別情報を上記事象参照リストから除去するサブステップ、
    を含み、そして上記ステップ(d)を実行することを特徴とする個別サブプログラムをメインプログラムに統合する方法。
  3. 請求項1に記載の方法において、更に、
    上記メインプログラムが上記複数の個別サブプログラムと情報交換できるようにするステップを有し、該ステップにおいて、上記メインプログラムが機能を実行するためのコマンドを提供して上記メインプログラムが該コマンドに応答して、前記機能の実行の結果としてのデータを上記複数の個別サブプログラムに提供する、
    ことを特徴とする個別サブプログラムをメインプログラムに統合する方法。
  4. 請求項に記載の方法において、
    上記メインプログラムと上記個別サブプログラムが、所定の記憶スペースを有する上記コンピュータシステム上で実行されるものであって、上記ステップ(f)が更に、
    上記個別サブプログラムが上記コンピュータシステムの上記記憶スペースのアドレススペースにロードされているかどうかを判定し、ロードされている場合には、上記個別サブプログラムをアクセスするステップ、及び、
    ロードされていない場合には上記個別サブプログラムをロードするための上記記憶スペースを割りつけて、上記個別サブプログラムをアクセスするステップ、
    を備えたことを特徴とする個別サブプログラムをメインプログラムに統合する方法。
JP34454492A 1991-12-23 1992-12-24 個別サブプログラムをメインプログラムに統合する方法 Expired - Lifetime JP3728325B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US81276491A 1991-12-23 1991-12-23
US07/812764 1991-12-23

Publications (2)

Publication Number Publication Date
JPH0644063A JPH0644063A (ja) 1994-02-18
JP3728325B2 true JP3728325B2 (ja) 2005-12-21

Family

ID=25210558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34454492A Expired - Lifetime JP3728325B2 (ja) 1991-12-23 1992-12-24 個別サブプログラムをメインプログラムに統合する方法

Country Status (5)

Country Link
US (1) US5546581A (ja)
EP (1) EP0548869B1 (ja)
JP (1) JP3728325B2 (ja)
CA (1) CA2086056C (ja)
DE (1) DE69231176T2 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19620888A1 (de) * 1996-05-23 1997-11-27 Siemens Ag Verfahren zur Aktualisierung eines Teils eines Programmcodes, wobei der Programmcode in einer Interpreter-Programmiersprache vorliegt, während der Ausführung des Programmcodes, durch einen Rechner
US6272555B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
US5987245A (en) 1996-07-01 1999-11-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework
US6266709B1 (en) 1996-07-01 2001-07-24 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server failure reporting process
US5999972A (en) 1996-07-01 1999-12-07 Sun Microsystems, Inc. System, method and article of manufacture for a distributed computer system framework
US5848246A (en) 1996-07-01 1998-12-08 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system
US6304893B1 (en) 1996-07-01 2001-10-16 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6038590A (en) 1996-07-01 2000-03-14 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6434598B1 (en) 1996-07-01 2002-08-13 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6424991B1 (en) 1996-07-01 2002-07-23 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for a client-server communication framework
US6148294A (en) * 1996-12-20 2000-11-14 Siemens Information And Communication Networks, Inc. System and method for computer directory updating and presentation based on frequency of access
US6463552B1 (en) 1998-12-07 2002-10-08 Lsi Logic Corporation Scripting method and apparatus for testing devices
US6311320B1 (en) 1998-12-07 2001-10-30 Lsi Logic Corporation Alterable scripting tool and method
US7107329B1 (en) * 1999-05-21 2006-09-12 Lucent Technologies Inc. In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption
JP2002202899A (ja) * 2000-12-28 2002-07-19 Toshiba Corp デバッガの機能拡張方法、デバッグシステム及びデバッガプログラムを記録した記録媒体
US7343494B2 (en) * 2001-08-01 2008-03-11 Sas Validy Method to protect software against unwanted use with a “renaming” principle
US8150704B2 (en) * 2004-11-09 2012-04-03 Siemens Aktiengesellschaft Method of preparing a product quote for a customer
GB2456019A (en) * 2007-12-31 2009-07-01 Symbian Software Ltd Loading dynamic link libraries in response to an event
KR101470168B1 (ko) * 2013-06-14 2014-12-05 현대자동차주식회사 제어기 내 cpu의 리프로그래밍 방법
JP6269006B2 (ja) * 2013-12-11 2018-01-31 株式会社リコー 情報処理装置、情報処理方法、及び情報処理プログラム
CN106547578B (zh) * 2015-09-21 2020-09-15 阿里巴巴集团控股有限公司 终端应用app的加载方法及装置
US11483137B2 (en) * 2020-01-22 2022-10-25 Micron Technology, Inc. Dynamic command extension for a memory sub-system
CN111625299B (zh) * 2020-05-29 2023-09-01 广东阳普智慧医疗信息科技有限公司 一种异构系统程序集成方法
KR102360330B1 (ko) * 2020-12-15 2022-02-08 현대오토에버 주식회사 차량의 통합제어유닛 구현 방법 및 그 장치
CN113254244B (zh) * 2021-07-08 2021-10-19 杭州逍邦网络科技有限公司 一种程序融合系统、方法和计算机装置
CN114237769A (zh) * 2021-12-14 2022-03-25 北京人大金仓信息技术股份有限公司 一种程序的执行方法、装置、设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425618A (en) * 1981-11-23 1984-01-10 Bell Telephone Laboratories, Incorporated Method and apparatus for introducing program changes in program-controlled systems
US4791558A (en) * 1987-02-13 1988-12-13 International Business Machines Corporation System and method for generating an object module in a first format and then converting the first format into a format which is loadable into a selected computer
US5146581A (en) * 1988-02-24 1992-09-08 Sanyo Electric Co., Ltd. Subprogram executing data processing system having bank switching control storing in the same address area in each of memory banks
US5175828A (en) * 1989-02-13 1992-12-29 Hewlett-Packard Company Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison
US5247678A (en) * 1989-10-12 1993-09-21 Texas Instruments Incorporated Load time linker for software used with a multiprocessor system
US5202923A (en) * 1989-11-30 1993-04-13 Kabushiki Kaisha Toshiba Portable electronic device capable of registering subprograms
US5136710A (en) * 1990-06-21 1992-08-04 International Business Machines Corporation Dynamic inactivation of program exits of the application program while the system program is running
US5222134A (en) * 1990-11-07 1993-06-22 Tau Systems Corporation Secure system for activating personal computer software at remote locations
US5128878A (en) * 1990-11-28 1992-07-07 Micron Technology, Inc. Remote plotting of integrated circuit layout in a network computer-aided design system

Also Published As

Publication number Publication date
US5546581A (en) 1996-08-13
CA2086056A1 (en) 1993-06-24
DE69231176D1 (de) 2000-07-20
CA2086056C (en) 2002-07-09
DE69231176T2 (de) 2000-11-23
EP0548869A3 (en) 1993-11-10
EP0548869B1 (en) 2000-06-14
EP0548869A2 (en) 1993-06-30
JPH0644063A (ja) 1994-02-18

Similar Documents

Publication Publication Date Title
JP3728325B2 (ja) 個別サブプログラムをメインプログラムに統合する方法
CA2178581C (en) Automatic booting framework
US5375241A (en) Method and system for dynamic-link library
US5835760A (en) Method and arrangement for providing BIOS to a host computer
US6490723B1 (en) Method and system for installing files in a computing system
US5574915A (en) Object-oriented booting framework
US5526523A (en) Interface between operating system and operating system extension
US5428772A (en) Data processing system providing user interaction in multiple natural languages
US7673127B2 (en) Method and apparatus for enabling a computer system by loading and executing an updated hardware specific boot routine to modify the operating system
US5537596A (en) Method and apparatus for overriding resource maps in a computer system
JPH08249191A (ja) ブート方法及び装置
WO1992007319A1 (en) System for multiple access hard disk partitioning
KR100463987B1 (ko) 공통처리알고리즘을이용한다수의큐핸들링방법및장치
WO1999066399A9 (en) Method to reflect bios setup changes into acpi machine language
US5887169A (en) Method and apparatus for providing dynamic entry points into a software layer
WO2008054074A1 (en) Terminal device having function of interfacing compilation libraries in heterogeneous languages, method of calling api, and method of creating compile function
US20070220249A1 (en) Data structure and method for managing modules associated with a kernel
JP2007510211A (ja) コンピュータ装置におけるダイナミック・リンク・ライブラリのマッピング
GB2348989A (en) Determining the drive letter assignment of a media drive during initial system setup of a computer system
US5355485A (en) First processor for dividing long argument data into packets and storing total packet count and packets in shared buffer for subsequent execution by second processor
US7412597B2 (en) Computer system and booting method thereof
US6263421B1 (en) Virtual memory system that is portable between different CPU types
US11520597B2 (en) Operating system architecture for microkernel generations support
JP2002318703A (ja) 制御システム
WO2006059786A1 (ja) アプリケーション競合管理システム及びその方法並びにそれを用いた情報処理端末

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20021209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050530

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050721

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051003

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091007

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101007

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111007

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121007

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20131007

Year of fee payment: 8

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131007

Year of fee payment: 8