JPH0695312B2 - コンピュータプログラムを処理する方法およびシステム - Google Patents

コンピュータプログラムを処理する方法およびシステム

Info

Publication number
JPH0695312B2
JPH0695312B2 JP4268524A JP26852492A JPH0695312B2 JP H0695312 B2 JPH0695312 B2 JP H0695312B2 JP 4268524 A JP4268524 A JP 4268524A JP 26852492 A JP26852492 A JP 26852492A JP H0695312 B2 JPH0695312 B2 JP H0695312B2
Authority
JP
Japan
Prior art keywords
code
program
object code
dcb
language
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
JP4268524A
Other languages
English (en)
Other versions
JPH05224948A (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.)
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 JPH05224948A publication Critical patent/JPH05224948A/ja
Publication of JPH0695312B2 publication Critical patent/JPH0695312B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/44594Unloading

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
のプログラム実行管理の分野における方法とシステムに
関する。
【0002】
【従来の技術】コンピュータプログラミングに広く使用
されている高級言語には、C、COBOL、FORTR
AN、PL/I、PASCALなどさまざまな言語があ
る。コンピュータプログラムは、2つ以上のこうした言
語で書かれる場合がある。こうした言語で書かれたプロ
グラムの実行に通常必要なのは、各コンパイラで作成さ
れたコードが正確に動作するよう言語に固有の実行時間
支援コードが供給されて初期化されることである。言語
に固有の実行時間支援コードは複数の言語で書かれるの
が望ましいが、特殊な問題がでてくる。終了順序づけで
も同様の問題が発生する。
【0003】複数言語のアプリケーションプログラムの
初期化と終了中に、言語に固有の初期化および終了ルー
チンが、そのアプリケーションの各言語に対して呼び出
される。特定の言語の言語に固有のルーチンが第2言語
による支援を必要とする場合、この第2言語の支援は、
第1言語の支援が初期化される前に初期化され、第1言
語の支援が終了するまで終了できない。
【0004】依存関係に基づく順序づけは周知である。
たとえば、Knuth は、コンピュータプログラミングの技
術(The Art of Computer Programming )Vol. 1, Addi
son-Wesley, 1975, 258-265 頁にその問題点を記載して
いる。Knuth が記載したのは、半順序が定義されている
集合のトポロジカル整列の問題である。その目標は、半
順序において列の任意の項目が他の項目に先立つよう定
義されている場合、前者が後者に先立つような集合の構
成要素の線形列を見つけることである。Knuthはトポロ
ジカル整列用のアルゴリズムを記載している。
【0005】初期化の順序づけの問題は、トポロジカル
整列に関連している。ある言語の他の言語の初期化への
依存性は、言語間の半順序を定義する。その問題は、任
意のアプリケーションにおける任意の言語で、その言語
が初期化されなければならない時までにその言語が依存
しているすべての言語が初期化されるよう複数言語アプ
リケーションにおける複数の言語を初期化する順序を見
つけることである。終了は逆の順序で実行可能である。
プログラムが、こうした言語支援に未関連の支援プログ
ラムに依存することも可能である。デバッギングプログ
ラムへの依存性は、この一例となる。
【0006】非実行可能コードを含む制御ブロック(し
ばしばヘッダと呼ばれる)を使用してプログラムを実行
するのに必要な情報を伝達するのはコンピュータ科学の
分野において慣例的である。あるプログラムに関する初
期情報を付与する制御ブロックはしばしばプログラムヘ
ッダと呼ばれる。用語「アプリケーションプログラム
(または単に「アプリケーション」)は、末端ユーザ開
発コンピュータプログラムおよびコンパイラなどのコン
ピュータプログラム(システムプログラムとしばしば呼
ばれる)の両方を含むように使用される。便宜上、用語
「プログラム」は、他の文脈ではプログラムとは考えら
れないルーチンまたはモジュールを含むよう使用され
る。すなわち、言語に固有の実行時間支援ルーチンは、
それらの独立実行が本来不可能であるとしてもプログラ
ムと呼ばれる。
【0007】
【発明が解決しようとする課題】本発明は、あるアプリ
ケーションプログラムに関して、どの支援プログラムが
実行時間支援環境においてあるアプリケーションプログ
ラムの初期化の前に初期化されなければならないか、そ
してその終了の後で終了されなければならないかを示す
制御ブロックを含むよう生成される方法およびシステム
を提供することである。
【0008】
【課題を解決するための手段】依存性を満足させる単一
または多重言語アプリケーションに対して、言語に固有
の支援ルーチンを含む、あらかじめ必要なプログラムを
初期化し終了する方法が記載されている。アプリケーシ
ョンプログラムに関連する制御ブロックの集合が定義さ
れている。これらの制御ブロックには、そのアプリケー
ションが依存する前提条件を共通実行時間初期化ルーチ
ンが確認することが可能な情報が含まれている。アプリ
ケーションプログラムの目的コードは、コンパイラまた
はアセンブラが作成した実行可能目的コードと共に1つ
または複数の依存性制御ブロック(DCB)を形成する
目的コードを含むよう生成される。各DCBには、関連
する実行可能コードを生成したコンパイラ、アセンブラ
または他のプログラムに特定の情報が含まれる。DCB
は、実行可能目的コードが依存する前提条件プログラム
のリストを備えている。DCBの目的コードには、その
後に参照される記号名をリンケージエディターにより付
与されるのが望ましい。複数のDCBsはどれも言語ま
たは他の支援言語に暗黙的に関連されているので、その
依存性リストに関連言語を明示的に宣言する必要はな
い。そのDCBsをもつ実行可能目的コードは、複数の
関連DCBsを用いて他のプログラムにより作成された
目的コードと連係されるのが好ましい。アプリケーショ
ンプログラムを初期するには、すべての必要な言語支援
とそのアプリケーションが必要とする他のルーチンを判
定するためにアプリケーションプログラムに含まれたD
CBsのすべてを読み取る必要がある。前提条件ルーチ
ンの初期化の順序は、すべての前提条件が初期化される
までにどのルーチンも初期化されないような初期化の実
行順序を確保するように依存相互性を使用してトポロジ
カル整列を実行することで決定される。初期化順序がセ
ーブされるので、アプリケーションプログラムの実行
後、終了を反対方向に実行できる。実行時間環境初期化
プログラムは、アプリケーションプログラムに含まれて
いる複数のDCBのすべてを発見可能でなければならな
い。この情報を初期化プログラムに伝えるために任意の
便宜上の手段が使用可能である。これを実行するために
詳細に記載された方法と手段は、DCBsのすべてのア
ドレスを含む言語リストのアドレスをプログラムヘッダ
に含めることである。
【0009】
【実施例】本発明は、より大きな共通実行時間環境の一
部として実施されるのが好ましい。この部分は、複数高
級言語(HLL)で書くことが可能なシステムプログラ
ムとアプリケーションプログラムの共通実行環境(CE
E)と呼ばれる。本発明は、大型コンピュータからパー
ソナルコンピュータにいたる任意の大きさのコンピュー
タでの使用に適している。CEEは、すべてのプログラ
ムが書かれている言語とは無関係に、それらすべての言
語により共有可能な共通サービスから成る。ユーザに利
用可能なシステムライブラリーは、複数の言語に固有の
支援ルーチン(LSR)および集合的に支援プログラム
と呼ばれる他の支援プログラムも含む。本発明は、オペ
レーティングシステムとプログラミング言語から独立し
ており、任意の複数言語実行時間環境に適用可能であ
る。
【0010】アプリケーションが実行を開始すると、最
初に、CEEが初期化され、その後にCEE提供サービ
スの任意のものが使用可能になる。これは、プログラム
制御を移送する標準手段により実行可能である。本実施
例では、CEEが使用するために予約された任意の外部
記号ラベルを呼び出してCEEがプログラムヘッダを発
見可能にするレジスタ中の情報を送ることにより実行さ
れる。アプリケーションが完了すると、同様は方式でC
EEの終了サービスを呼び出す。CEEが始まると、最
初に共通サービスが初期化されて、アプリケーションの
各言語で、その言語のLSRが決定される。そのアプリ
ケーションにより要求されたLSRsだけが初期化され
る。同様に、終了中に、最初に、CEEはLSRsを終
了して次に共通サービスを終了する。
【0011】LSRはいくつかの制限内で任意の言語で
記述可能である。どのLSRも共通CEEサービスを利
用することができるが、それは、LSRsが言語に固有
の構成要素より先に初期化されるからである。しかし、
一般に、LSRは、その言語がまだ初期化されない場合
LSRが書かれている言語の特性を利用できない。たと
えば、COBOLのための言語に固有の支援ルーチンが
言語Cで書かれている場合、COBOLルーチンを含む
アプリケーション用の初期化は、最初に言語Cに固有の
支援ルーチンの初期化を含むことになる。従来技術は、
この種の依存性を共通初期化プログラムに伝える方法を
教示してない。同様に、デバッギング支援を要求すれ
ば、lSR(s)はデバッガーのコードを支援するよう
初期化される必要がある。
【0012】この問題を解決するために、1つのアプリ
ケーションで使用された言語それぞれのコンパイラに、
他のLSRsと支援ルーチンのどれがその初期化の前に
初期化されなければならないかを指示する手段が備えて
ある。1つのアプリケーションが必要とする支援ルーチ
ンの全リストは、各ルーチンの依存性に沿って判定さ
れ、トポロジカル整列方法は、各制御ブロックに示され
ている依存性を満たす初期化順序を判定するのに使用さ
れる。
【0013】複数言語アプリケーションが必要とする言
語のそれぞれでは、言語に固有の制御ブロックが静的に
アプリケーションと連係している。これらは、CEE初
期化ルーチンに渡されたパラメータにより初期化中にC
EEによりアクセス可能である。CEEの各言語に固有
の構成要素は、固有の構成要素識別子に識別される。言
語に固有の制御ブロックのそれぞれに、構成要素が初期
化可能になる前にどの支援プログラムが初期化されなけ
ればならないかを示す構成要素識別子の表がある。すな
わち、初期化中に、CEEは、アプリケーションのすべ
ての言語間の依存性を判定できる。
【0014】図1は、実行可能目的コードが依存してい
るプログラムをリストする制御ブロックを含む目的コー
ドを準備する過程を示す。この制御ブロックは、依存性
制御ブロック(DCB)とよばれる。支援コードライブ
ラリ115は、言語に固有の支援ルーチンまたは他のプ
ログラムの実行可能目的コードから構成される。これら
のルーチンまたはプログラムは、その後継続して使用す
るために、ディスクドライブなどの通常非揮発性記憶機
構に記憶されている。表4に詳細に示してある言語リス
ト116は、最終プログラム118に含まれているDC
Bsすべてのアドレス表を作成するのに使用される。1
つのDCBしか図示されておらず、DCB−x117と
ラベルが付いている。しかし、実際には、複数のDCB
sがある。支援コード、言語リストおよびDCBsは、
標準コンパイラおよび/またはアセンブラ111を使用
して作成される。ユーザは、コンパイラおよび/または
アセンブラを使用して、関連するプログラムヘッダ11
2を備えたカスタム目的コードを作成する。汎用プログ
ラムヘッダを使用することもできるし、コンパイラ特有
のプログラムヘッダを使用することもできるが、どちら
の場合も、通常、事前にコンパイルされてライブラリに
含まれている。ユーザコードは、標準リンケージエディ
ター114を使用して言語リストと適切なDCBsと共
にライブラリからの実行可能なコードと連係され、連係
された実行可能目的コード、プログラムヘッダの非実行
可能コード、言語リスト、および複数のDCBsから構
成されるユーザのプログラム118が作成される。プロ
グラムヘッダには、DCBへのポインタを備える言語リ
ストへのポインタが含まれる。
【0015】図2は、実行可能目的コードと関連DCB
を準備するステップを記述する。実行可能目的コードの
コンパイル(121)は、従来の技術に応じて実行され
る。DCBの形成(122)は、表2に示してあるよう
に、原始コードをコンパイルまたはアセンブルすること
により達成され、外部記号名を備え、実行可能目的コー
ドが依存する前提プログラムを表すデータを含む目的モ
ジュールが作成される。実行可能コードとDCBは通常
は、長期間に渡って繰り返して使用されるプログラムの
集合の一部であるので、それらは、ディスクドライブな
どの非揮発性記憶機構に一緒に記憶される(123)。
実行可能目的コードの依存性に関する情報がコンパイル
の前に知られている場合には、DCBを最初に作成して
もよい。
【0016】言語リストは、DCBのすべてのリストを
作成して、最終的に単一プログラムに組み込まれる。任
意の機構が動作して、CEEがDCBのすべてを発見可
能になる。本明細書に記載された出願人の詳細な実施例
では、個別オブジェクトモジュールの言語リストが使用
される。他の実施例では、言語リストの機能がプログラ
ムヘッドに組み込まれている。図3は、言語リストを作
成する過程を示す。表4に示してあるような言語リスト
の原始コードが準備されて(126)、コンパイルまた
はアセンブル(127)され、その後繰り返して使用す
るために記憶される。
【0017】CEEが共通サービス構成要素を初期化す
ると、表1の擬似コードに記載された方法によりアプリ
ケーションのすべての言語に固有の構成要素が初期化さ
れる。ライン10−14のループにより、アプリケーシ
ョンのすべての必要な支援プログラムが初期化される。
最初のwhen節17により、構成要素支援プログラムは、
それが依存しているすべての構成要素が初期化されるま
で初期化されることはない。次のwhen節25により、自
身に直接または間接的な依存性を備えた構成要素(循環
依存性)がある場合、その要素が検出される。
【0018】終了依存性を満たすのも同種類の問題であ
る。支援プログラムは、それが依存する支援プログラム
より先に終了する。この問題を解決するために、初期化
順序は、終了時点でメモリにセーブされる。支援プログ
ラムは、初期化とは反対の順序で終了する。
【0019】 表 1 10すべての構成要素を非初期化とmark 11 for アプリケーションが要求した各構成要素、M、 12 初期化構成要素(M)をcall 13 end for 14 exit /******************************************** /*初期化構成要素論理*/ 15構成要素を初期化(M) 16 select 17 when M が非初期化、 18 初期化しているM をmark 19 for M が従属する各構成要素M' 20 初期化構成要素(M') をcall 21 end for 22 M を初期化する 23 M が初期化されたとmark 24 M が初期化された順序を記録 25 when M が初期化、 26 エラーの処理:循環依存性 27 when M が初期化された 28 nop 29 end select 30 return 31 end
【0020】依存性をリストする制御ブロックの形は重
要ではない。同じ依存性情報を提供するどんな形でも代
替できる。本明細書に記載された詳細な実施例では、制
御ブロックは静的にアプリケーションに連係されるが、
他の実施例では、制御ブロックは動的に連係され実行時
に読み取られる。
【0021】構成要素初期化の順序を決定するのに使用
された特定のアルゴリズムは厳格ではなく、依存要素が
すべて初期化される前にどのプログラムも初期化されな
いという要件を満たしていればよい。トロポジカル整列
を実行するどんなアルゴリズムも動作する。各構成要素
が最終的な整列順序に位置づけられるときに言語が初期
化されるか、または構成要素が最初に整列されて整列順
に初期化される。重要なことは、構成要素がトポロジカ
ル整列順に初期化されることである。
【0022】詳細な実施例では、初期化される構成要素
は、非実行可能コードを含む制御ブロックを介して初期
化ルーチンに伝えられる。表2は、3つの依存要素をリ
ストするDCBの標準IBMアセンブラ言語における例
を示す。ライン105では、固有の4つの文字列が、D
CBが依存している特定のコンパイラまたは他のプログ
ラムを識別するのに使用されている。この関連は、その
コンパイラの特定の支援ルーチンを暗黙に識別する。た
とえば、CEESG004DCBがREXXコンパイラ
に指定された場合、CEEは、REXXのLSRが、も
しあれば、このDCBを含むアプリケーションが実行さ
れる前に初期化されなければならないことを自動的に知
ることになる。依存構成要素の総数は、ライン108で
は3つである。依存要素はライン113ないし115と
してコード化整数1,2,5としてリストされる。これ
らの数は、いくつかのプログラムまたは言語特定構成要
素に対応して任意的に割当てられる。したがって、
「1」は、Cに固有の支援、「2」はFORTRANに
固有の支援、「5」はCOBOLに固有の支援に対応す
る。記載された実施例の動作に必要不可欠なことは、こ
れらのコードの所定のリストは、DCBを作成する各プ
ログラマーが依存要素を正確に指定するにはどの数値コ
ードをDCBに入力するかが分かるように利用可能であ
る。他の実施例では、初期化プログラムがロードする必
要のあるプログラムを外部からの情報なしに識別できる
ように、プログラムの全名称を示すリストに文字列を入
力して自己認識するコードが使用できる。自己認識コー
ドは、それらが動的に構築され更新される利点も備えて
いる。
【0023】 表 2 101 CEESG004 CSECT 102 CEESG004 AMODE ANY 103 CEESG004 RMODE ANY 104****************************************************************** 105 DC CL4'S004' 106 DC H'23' このcsect の長さ 107 DC H'1' バージョン 108 DC H'3' 依存要素IDの数 109 DC Y(DEPIDS-CEESG004) 第1の依存要素IDへのオフセット 110 DC XL4'0' 要素用に予約 111 DC XL4'0' 要素用に予約 112 DEPIDS EQU * IDの依存先のリスト 113 DC FL1'1' プログラム指定コード「1」 114 DC FL1'2' プログラム指定コード「2」 115 DC FL1'5' プログラム指定コード「5」 116 END
【0024】初期化を要求する各プログラムは、表3に
示すもののようなプログラムヘッダを備えてなければな
らない。ヘッダは任意の形式でよい。本発明で使用され
たこのヘッダの情報は、言語リストであるx+40にお
けるCEELLISTのアドレスである。
【0025】 表 3 START CSECT START AMODE ANY START RMODE ANY 000000 NOP 0 000004 NOP y 000008 STM 14,12,12(13) 呼出しプログラムをセーブ 00000C BALR 3,0 USING *,3 00000E B AROUND サイン分岐 000012 - 17 … 非関連データ 000018 DC A(PLIST) PLIST ポイント 00001C DC CL8'START' アイキャッチャー 000020 DC H'0' 予約 AROUND EQU * … 要素コード … X PLIST DS 0F X+00 … 非関連データ X+10 CXD X+14 DC H'-1' X+16 DC AL2(PLIST LEN) X+18 - 3C … 非関連データ X+40 DC A(CEELLIST) ロードモジュールの言語を示す * 弱い外部参照リスト 0+44 … PLIST LEN EQU *-PLIST パームリストの長さ
【0026】CEELLIST言語リストの形式は表4
に示されている。詳細な実施例における言語リストの入
力の順序は、DCB(s)で使用のために指定されたコ
ードに対応するが、その順序は重要ではない。CEEL
LISTは、言語に固有の支援ルーチン以外のプログラ
ムの入力を含むことが可能である。表4に示すサンプル
リストには、そのリストの第6番目の入力がデバッギン
グプログラムに対応する。入力は、指定される必要はな
い。すなわち、入力1は未指定としてリストされてい
る。表2に示すDCBはCEESG004とラベルが付
けてあり、そのリストの第5番目の入力に対応する。適
切なラベルを備えたDCBがCEEBLLSTを備えた
モジュールに連係すると、こうしたDCBのアドレスが
従来の連係ソフトウェアによりリストに入力される。C
EEが、モジュールにはないすべてのDCBのリストに
ゼロを見いだす。DCBのアドレスを使用すると、CE
Eは依存性コードのリストを容易に見つけだして、表1
のトポロジカル整列ルーチンに入力するために初期化を
要求するコードをマークする。「WXTRN」キーワー
ドは、従来では、IBMのSystem/370族のコ
ンピュータのアセブラとリンケージエディターにより支
援されており、弱い外部参照を指示するのに使用され
る。リンケージエディターは、こうした外部参照を連係
するよう意図するが、それらが発見されない場合警告を
発するだけである。
【0027】 表 4 CEEBLLST CSECT CEE言語リストヘッダ CEEBLLST RMODE ANY CEEBLLST AMODE ANY … * 実際の言語リストの開始 ENTRY CEELLIST CEELLIST DS 0D CEE言語リスト WXTRN CEESG000 DC A(CEESG000) 00 未指定 WXTRN CEESG001 DC A(CEESG001) 01 共通サービス WXTRN CEESG002 DC A(CEESG002) 02 コンパイラ -x WXTRN CEESG003 DC A(CEESG003) 03 コンパイラ -y WXTRN CEESG004 DC A(CEESG004) 04 プログラム -x WXTRN CEESG005 DC A(CEESG005) 05 コンパイラ -z WXTRN CEESG006 DC A(CEESG006) 06 コンパイラ -j WXTRN CEESG007 DC A(CEESG007) 07 コンパイラ -k WXTRN CEESG008 DC A(CEESG008) 08 コンパイラ -l WXTRN CEESG009 DC A(CEESG009) 09 コンパイラ -m WXTRN CEESG010 DC A(CEESG010) 10 コンパイラ -n WXTRN CEESG011 DC A(CEESG011) 11 デバッガ WXTRN CEESG012 DC A(CEESG012) 12 コンパイラ -o WXTRN CEESG013 DC A(CEESG013) 13 コンパイラ -p WXTRN CEESG014 DC A(CEESG014) 14 コンパイラ -q WXTRN CEESG015 DC A(CEESG015) 15 アセンブラ WXTRN CEESG016 DC A(CEESG016) 16 コンパイラ -r DC A(0) ダミ入力はX'00' を含んでなければならない DC 0D この境界要件は必須 * CEEが初期化されているときに処理時間を * セーブする必要がある LLISTEND DC A(0) リストの終りをマークする END
【0028】図4は、複数のDCBsを含むアプリケー
ションプログラムを初期化する際にCEEにより実行さ
れるステップを示す。最初に、DCBsすべてを見つけ
だし、すべての前提条件のリストが作成される(13
1)。本実施例において、このステップは最初にプログ
ラムヘッダを読み取り、言語リストのアドレスを見つけ
だし、言語リストを使用してそのプログラムにあるDC
Bsの数と各DCBの位置を判定する必要がある。トポ
ロジカル整列が実行されて(132)、任意の依存関係
を破ることなく初期化が行なわれる順序を見つけだす。
支援プログラムは位相分類により判定された順序で初期
化されて、その順序は後に使用されるためにセーブされ
る(133)。制御はアプリケーションプログラム13
4に戻される。その実行が完了すると、上記アプリケー
ションは制御をCEEに戻し、支援プログラムを終了す
る。各支援プログラムには、CEEがそのプログラムを
初期化し終了可能にする機構が定義されてなければなら
ない。これは、標準呼出しと戻し機構により実行される
のが好ましい。CEEは初期化順序とは逆の順序で支援
プログラムを終了する(135)。
【0029】図5は、複数のDCBsを使用するプログ
ラムを初期化するのに必要な機能ユニットの全体構造と
相互関係を示す構成図である。位置指定および読取り手
段151は支援プログラムの未序列リストをトポロジカ
ル整列手段152に渡す。生成された整列リストは、R
AMまたはディスクなどのメモリ153に記憶される。
初期化手段154は整列リストを使用して、どの支援プ
ログラムがライブラリ115から初期化されるかを判定
する。このライブラリは、通常はディスクに記憶される
支援プログラムの集合のことである。制御は、順序を能
動化するためCEEを呼び出す必要のあるアプリケーシ
ョンプログラムで始まる。初期化の後、アプリケーショ
ンプログラムが、終了を要求するまでは、制御を再獲得
する(155)。終了手段156は、以前記憶された分
類リストにアクセスしなければならない。
【0030】図6はDCBの生成に必要な機能ユニット
の構成図である。支援プログラム161のコードのリス
トは、実行可能目的コード164に関連してDCB生成
プログラム162により使用されて、依存性をコード化
するDCB163を生成する。DCBは、その後の使用
のため、実行可能目的コードと共に非揮発性記憶機構に
記憶される(165)。
【0031】
【発明の効果】従来技術と比べて本発明は以下の利点を
有する。言語実行時間環境の構成要素は高級言語または
複数言語でそれら自体で書き込める。アプリケーション
の実行に必要な実行時間環境の言語に固有の構成要素だ
けが初期化されればよく、それによって実行時間を節約
できる。ルーチンがアプリケーションで呼び出される
と、最初に、その言語に固有の支援が初期化されるかど
うかを検査する必要はないので実行時間を節約できる。
制御ブロックを使用しても、コンパイラをほとんどまた
は全く変える必要はない。
【0032】上記の仕様を用いて、本発明は標準プログ
ラミング技術により実施可能である。その結果作成され
たプログラムは、ディスク、ディスケット、メモリカー
ド、ROMまたは多の任意のメモリデバイスに記憶でき
る。実行のため、プログラムはコンピュータのRAMに
コピーできる。コンピュータ科学に習熟した者なら容易
に上記に記載されたように作成されたソフトウェアを適
切な汎用または特殊目的コンピュータハードウェアを組
み合わせてシステムを作成できる。本発明の実施例が詳
述されてきたが、当然のことながら、当分野の技術者は
請求の範囲に示された本発明の範囲を逸脱しないかぎり
上記の実施例の修正や翻案をすることができる。
【図面の簡単な説明】
【図1】依存性制御ブロック(DCB)を含むアプリケ
ーションプログラム目的コードを準備する過程を示す
図。
【図2】DCBを形成する過程を示す図。
【図3】すべての可能なDCB(s)を参照する言語リ
ストを形成する過程を示す図。
【図4】DCB(s)を含むあるプログラムの複数の支
援プログラムを初期化する過程を示す図。
【図5】DCB(s)を含むあるプログラムの複数の支
援プログラムを初期化するシステムの構造を示す図。
【図6】DCB(s)を作成しそれらを実行可能目的コ
ードを組み合わせるシステムの構造を示す図。
【符号の説明】
112 プログラムヘッダ 114 標準リンケージエディター 115 支援コードライブラリ 116 言語リスト

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】実行可能目的コードを備えているコンピュ
    ータプログラムに含まれるよう目的コードを生成する方
    法において、 (a)選択された記号名を備えた依存性制御ブロック
    (DCB)目的コードを形成するステップと、 (b)実行可能目的コードが依存する前提条件プログラ
    ムを表すデータを前記DCB目的コードに書き込むステ
    ップと、 (c)実行可能目的コードと共に前記DCB目的コード
    を記憶して、それにより最初の目的コードを作成するス
    テップと、 を備えていることを特徴とする方法。
  2. 【請求項2】選択された記号名を含む記号名への複数の
    外部参照を有する言語リスト目的コードに前記第1目的
    コードを連係し、前記DCB目的コードのアドレスを前
    記言語リスト目的コードに入力して、それにより、第2
    目的コードを形成するステップをさらに含む請求項1記
    載の方法。
  3. 【請求項3】(a)複数の前提条件支援プログラムを指
    定する複数の依存性制御ブロック(DCBs)を読み取
    るステップと、 (b)前記前提条件支援プログラムがすべて初期化され
    るまでどの支援プログラムも初期化されないような順序
    で前記支援プログラムを初期化するステップと、を備え
    ていることを特徴とするコンピュータプログラムを処理
    する方法。
  4. 【請求項4】前記初期化するステップは、 (a)前提条件支援プログラムMを選択するステップ
    と、 (b)Mが未初期化の場合、Mを初期化するようにマー
    クするステップと、 (c)Mが依存する各前提条件支援プログラムM’に関
    して、M’をMとして使用してステップ(b)から始ま
    るステップを再帰的に実行するステップと、 (d)Mを初期化するステップと、 (e)Mを初期化されたとしてマークするステップと、 (f)再帰であれば、再帰の時点でステップ(c)に戻
    るステップとを備えている請求項3記載の方法。
  5. 【請求項5】実行可能目的コードを備えているコンピュ
    ータプログラムの目的コードを生成するシステムにおい
    て、 (a)選択された記号名をもつ依存性制御ブロック(D
    CB)目的コードを形成する手段と、 (b)前記実行可能目的コードが依存する前提条件プロ
    グラムを表すデータを前記DCB目的コードに書き込む
    手段と、 (c)前記実行可能目的コードと共に前記DCB目的コ
    ードを記憶する手段とを備え、第1目的コードが作成さ
    れることを特徴とするシステム。
  6. 【請求項6】選択された記号名を含む記号名への複数の
    外部参照を有する言語リスト目的コードに前記第1目的
    コードに連係し、1つのDCBを含む第2目的コードと
    そのDCBのアドレスを含む言語リスト目的コードとを
    形成する手段をさらに備えた請求項5記載のシステム。
  7. 【請求項7】(a)複数の前提条件支援プログラムを指
    定する複数の依存性制御ブロック(DCBs)を読み取
    る手段と、(b)関連するすべての前提条件支援プログ
    ラムが初期化されるまでどの支援プログラムも初期化さ
    れないような順序で前記複数の支援プログラムを初期化
    する手段と,を備えていることを特徴とするコンピュー
    タプログラムを処理するシステム。
  8. 【請求項8】前記読取り手段は、前記前提条件プログラ
    ムを個別に識別する数値または文字コードを読み取る手
    段をさらに含む請求項7記載のシステム。
  9. 【請求項9】終了期間中に使用のため前記前提条件プロ
    グラムの初期化順序を記録する手段をさらに含む請求項
    7記載のシステム。
  10. 【請求項10】前記DCBを探し出すためにプログラム
    ヘッダを読み取る手段をさらに含む請求項7記載のシス
    テム。
  11. 【請求項11】(a)プログラムヘッダ目的コードから
    言語リスト目的コードのアドレスを読み取る手段と、 (b)言語リスト目的コードから複数のDCBのアドレ
    スを読み取る手段と、をさらに含む請求項7記載のシス
    テム。
JP4268524A 1991-11-21 1992-10-07 コンピュータプログラムを処理する方法およびシステム Expired - Lifetime JPH0695312B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US79609891A 1991-11-21 1991-11-21
US796098 1991-11-21

Publications (2)

Publication Number Publication Date
JPH05224948A JPH05224948A (ja) 1993-09-03
JPH0695312B2 true JPH0695312B2 (ja) 1994-11-24

Family

ID=25167290

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4268524A Expired - Lifetime JPH0695312B2 (ja) 1991-11-21 1992-10-07 コンピュータプログラムを処理する方法およびシステム

Country Status (3)

Country Link
US (2) US5428780A (ja)
EP (1) EP0543588A3 (ja)
JP (1) JPH0695312B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07230380A (ja) * 1994-02-15 1995-08-29 Internatl Business Mach Corp <Ibm> 適用業務プログラムの利用管理方法およびシステム
US6138140A (en) * 1995-07-14 2000-10-24 Sony Corporation Data processing method and device
US5727147A (en) * 1995-12-08 1998-03-10 Sun Microsystems, Inc. System and method for resolving symbolic references to externally located program files
US5682528A (en) * 1995-12-22 1997-10-28 Tandem Computers Incorporated Spoon-feed initialization in a multiprocessor system
US5667902A (en) * 1996-04-30 1997-09-16 Mobil Oil Corporation High moisture barrier polypropylene-based film
JP3910701B2 (ja) * 1997-10-30 2007-04-25 富士通株式会社 コンパイル処理装置及びコンピュータ読み取り可能なプログラム記録媒体
US6421827B1 (en) * 1997-12-17 2002-07-16 International Business Machines Corporation System and method for detecting and reordering loading patterns
US6385764B1 (en) * 1999-01-29 2002-05-07 International Business Machines Corporation Method and apparatus for improving invocation speed of Java methods
JP3979009B2 (ja) * 2000-07-07 2007-09-19 株式会社デンソー 制御情報出力装置及び情報システム
US7000227B1 (en) * 2000-09-29 2006-02-14 Intel Corporation Iterative optimizing compiler
GB2377283B (en) * 2001-04-10 2004-12-01 Discreet Logic Inc Initialising modules
US7181737B2 (en) 2002-03-18 2007-02-20 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using static procedure return addresses
US6996802B2 (en) 2002-03-18 2006-02-07 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using initialization order and calling order constraints
US7010783B2 (en) 2002-03-18 2006-03-07 Sun Microsystems, Inc. Method and apparatus for deployment of high integrity software using reduced dynamic memory allocation
GB0313619D0 (en) * 2003-06-12 2003-07-16 Symbian Ltd A method of automatically analysing the structure of a software system
US7496890B2 (en) * 2003-06-30 2009-02-24 Microsoft Corporation Generation of configuration instructions using an abstraction technique
JP2006065462A (ja) * 2004-08-25 2006-03-09 Canon Inc ソフトウェア・システム、ソフトウェア停止方法、プログラム、及び、記憶媒体
US7115561B2 (en) * 2004-09-22 2006-10-03 Patterson James A Medicament composition and method of administration
DE102004047369A1 (de) * 2004-09-29 2006-03-30 Siemens Ag Datenverarbeitungsvorrichtung und entsprechendes Verfahren zum Booten
US20060288336A1 (en) * 2005-06-21 2006-12-21 Microsoft Corporation Module initialization
DE102005032542A1 (de) * 2005-07-12 2007-01-18 Giesecke & Devrient Gmbh Verwaltung von Applikationen in einem tragbaren Datenträger
US7389410B1 (en) * 2005-07-13 2008-06-17 Symantec Corporation Automatically deriving order of initialization for computing services across multiple computing systems
US7827152B1 (en) * 2005-10-26 2010-11-02 Oracle America, Inc. Asynchronous on-demand service startup
US20070237578A1 (en) * 2006-03-31 2007-10-11 3M Innovative Properties Company Flexible sleeve
US9235458B2 (en) 2011-01-06 2016-01-12 International Business Machines Corporation Methods and systems for delegating work objects across a mixed computer environment
US9052968B2 (en) * 2011-01-17 2015-06-09 International Business Machines Corporation Methods and systems for linking objects across a mixed computer environment
EP2914166B1 (en) * 2012-10-31 2022-05-25 Philips Image Guided Therapy Corporation Dependency-based startup in a multi-modality medical system
US8978010B1 (en) 2013-12-18 2015-03-10 Sap Ag Pruning compilation dependency graphs

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636948A (en) * 1985-01-30 1987-01-13 International Business Machines Corporation Method for controlling execution of application programs written in high level program language
US4833594A (en) * 1986-12-22 1989-05-23 International Business Machines Method of tailoring an operating system
JPS63278145A (ja) * 1987-05-11 1988-11-15 Nec Corp パラメ−タ対応検査方式
US4885684A (en) * 1987-12-07 1989-12-05 International Business Machines Corporation Method for compiling a master task definition data set for defining the logical data flow of a distributed processing network
US5182807A (en) * 1987-12-18 1993-01-26 Nec Corporation Assembler system for determining when to compile source code modules
US4943913A (en) * 1988-02-10 1990-07-24 International Business Machines Corporation Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations
US4970639A (en) * 1988-05-20 1990-11-13 International Business Machines Corporation Virtual machine architecture independent program loader
US4916610A (en) * 1988-10-05 1990-04-10 Racal Data Communications Inc. Multilanguage software integration through preprocessing

Also Published As

Publication number Publication date
EP0543588A3 (en) 1993-10-20
US5428780A (en) 1995-06-27
EP0543588A2 (en) 1993-05-26
US5555411A (en) 1996-09-10
JPH05224948A (ja) 1993-09-03

Similar Documents

Publication Publication Date Title
JPH0695312B2 (ja) コンピュータプログラムを処理する方法およびシステム
US5339238A (en) Register usage tracking in translating code for different machine architectures by forward and reverse tracing through the program flow graph
US5301325A (en) Use of stack depth to identify architechture and calling standard dependencies in machine code
US5598560A (en) Tracking condition codes in translation code for different machine architectures
US6298479B1 (en) Method and system for compiling and linking source files
US8141035B2 (en) Method for accessing internal states of objects in object oriented programming
US6961931B2 (en) Dependency specification using target patterns
US7299462B2 (en) Relocation format for linking
US5367683A (en) Smart recompilation of performing matchup/difference after code generation
JPH01201729A (ja) デコード方法
US10346310B2 (en) Cache block apparatus and methods
US5625822A (en) Using sorting to do matchup in smart recompilation
US6351848B1 (en) Unitary data structure systems, methods, and computer program products, for global conflict determination
EP1085411B1 (en) A relocation format for linking
US7269828B2 (en) Method for safely instrumenting large binary code
US5581769A (en) Multipurpose program object linkage protocol for upward compatibility among different compilers
US5446899A (en) Hint generation in smart recompilation
NO329240B1 (no) System og fremgangsmate for forklarende definering og bruk av undergrupper innenfor dokumentkoding
EP0528019B1 (en) Method and apparatus for computer code processing in a code translator
US6026242A (en) Methods, computer program products, and apparatus for initializing global registers
US11886839B2 (en) Non-transitory computer-readable recording medium, function generation method, and information processing device
JPH06309193A (ja) 機械語プログラムの動作検証方法および装置
Bringmann A template for code generator development using the IMPACT-I C compiler
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
US6941549B1 (en) Communicating between programs having different machine context organizations