JP2802005B2 - 障害検出方法 - Google Patents
障害検出方法Info
- Publication number
- JP2802005B2 JP2802005B2 JP5021118A JP2111893A JP2802005B2 JP 2802005 B2 JP2802005 B2 JP 2802005B2 JP 5021118 A JP5021118 A JP 5021118A JP 2111893 A JP2111893 A JP 2111893A JP 2802005 B2 JP2802005 B2 JP 2802005B2
- Authority
- JP
- Japan
- Prior art keywords
- source code
- list
- code part
- parts
- compilation
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
【0001】
【産業上の利用分野】本発明は、一般にコンピュータ・
プログラムを構成部分から作成するスケジューリングに
関し、特に、複雑なコンピュータ・プログラムを、ソー
ス・コード・パート・ライブラリで動的にアクセスされ
るソース・コード・パートから作成する動的かつ効率的
なスケジューリングに関する。
プログラムを構成部分から作成するスケジューリングに
関し、特に、複雑なコンピュータ・プログラムを、ソー
ス・コード・パート・ライブラリで動的にアクセスされ
るソース・コード・パートから作成する動的かつ効率的
なスケジューリングに関する。
【0002】
【従来の技術】複雑なコンピュータ・プログラムの開発
では、プログラムを作成するのに、大きいプログラムを
1つ書くよりも小さいパートをまとめ上げる方が効率が
よい。プログラムの作成に用いられるソース・コード・
パートは、プログラム・ライブラリの中で個別に作成・
維持でき、必要に応じてアクセスできる。複雑なプログ
ラムを作る場合、構成要素であるソース・コード・パー
トは各々、実行可能プログラムとして統合される前に、
コンパイルのためにアクセスされスケジューリングされ
る。複雑なプログラムを間違いなく完成させるには、必
要な構成要素のソース・コード・パートをいくつか、コ
ンパイルのために正しい順序でスケジューリングしなけ
ればならない。論理的に独立したソース・コード・パー
トをコンパイルのためにスケジューリングしなければ、
その相互に依存的なソース・コード・パートをコンパイ
ルできない。
では、プログラムを作成するのに、大きいプログラムを
1つ書くよりも小さいパートをまとめ上げる方が効率が
よい。プログラムの作成に用いられるソース・コード・
パートは、プログラム・ライブラリの中で個別に作成・
維持でき、必要に応じてアクセスできる。複雑なプログ
ラムを作る場合、構成要素であるソース・コード・パー
トは各々、実行可能プログラムとして統合される前に、
コンパイルのためにアクセスされスケジューリングされ
る。複雑なプログラムを間違いなく完成させるには、必
要な構成要素のソース・コード・パートをいくつか、コ
ンパイルのために正しい順序でスケジューリングしなけ
ればならない。論理的に独立したソース・コード・パー
トをコンパイルのためにスケジューリングしなければ、
その相互に依存的なソース・コード・パートをコンパイ
ルできない。
【0003】依存性のないソース・コード・パートのコ
ンパイルをスケジューリングするのは比較的に簡単であ
る。しかし、コンパイルが進むにつれて、ソース・コー
ド・パート間のコンパイルの依存性や前提条件が生じる
とスケジューリングは複雑になる。その原因として、ソ
ース・コード・パートのライブラリの中では、パートは
常時、互いに独立に維持されることがある。この場合、
あるソース・コード・パートに変更が加えられて、別の
ソース・コード・パートに依存性が生じることがある
が、これはスケジューラがそのパートをコンパイルしよ
うとするまではわからない。その際、スケジューラが、
新たに生じた依存性に動的に対応できなければ、依存性
の問題が解決されず、プログラムの作成が進まない。
ンパイルをスケジューリングするのは比較的に簡単であ
る。しかし、コンパイルが進むにつれて、ソース・コー
ド・パート間のコンパイルの依存性や前提条件が生じる
とスケジューリングは複雑になる。その原因として、ソ
ース・コード・パートのライブラリの中では、パートは
常時、互いに独立に維持されることがある。この場合、
あるソース・コード・パートに変更が加えられて、別の
ソース・コード・パートに依存性が生じることがある
が、これはスケジューラがそのパートをコンパイルしよ
うとするまではわからない。その際、スケジューラが、
新たに生じた依存性に動的に対応できなければ、依存性
の問題が解決されず、プログラムの作成が進まない。
【0004】また、ソース・コード・パートのコンパイ
ルをスケジューリングする時に別の問題が生じることが
ある。パートのコンパイル依存性が循環型で前提条件で
あったり、パートの前提条件が、存在しないソース・コ
ード・パートに対するものであったりする。循環型で前
提条件であるコンパイル依存性が生じるのは、たとえば
パートAが、パートBのコンパイルの後にしかコンパイ
ルできず、パートBがパートAのコンパイルの後にしか
コンパイルできない場合である。こうした循環コンパイ
ル依存性が生じると、スケジューリングが無限ループに
入り、コンピュータ・プログラムが完成しないままにな
る。
ルをスケジューリングする時に別の問題が生じることが
ある。パートのコンパイル依存性が循環型で前提条件で
あったり、パートの前提条件が、存在しないソース・コ
ード・パートに対するものであったりする。循環型で前
提条件であるコンパイル依存性が生じるのは、たとえば
パートAが、パートBのコンパイルの後にしかコンパイ
ルできず、パートBがパートAのコンパイルの後にしか
コンパイルできない場合である。こうした循環コンパイ
ル依存性が生じると、スケジューリングが無限ループに
入り、コンピュータ・プログラムが完成しないままにな
る。
【0005】そこで、ソース・コード・パートからコン
ピュータ・プログラムを効率よく作成するためには、パ
ートを正しくスケジューリングし、コンパイル時にパー
ト間に生じるコンパイル依存性を、スケジューラによっ
て動的に適合させ、さらに、ソース・コード・パートが
循環スケジューリング・ループに入った時に、アプリケ
ーションの作成を適時に停止しなければならない。
ピュータ・プログラムを効率よく作成するためには、パ
ートを正しくスケジューリングし、コンパイル時にパー
ト間に生じるコンパイル依存性を、スケジューラによっ
て動的に適合させ、さらに、ソース・コード・パートが
循環スケジューリング・ループに入った時に、アプリケ
ーションの作成を適時に停止しなければならない。
【0006】従来技術では、コンピュータ・プログラム
を開発する際に、ソース・コード・パートを統合する1
つの方法として、MAKEファシリティが用いられる。
MAKEファシリティでは、あるファイルに、作成に必
要なソース・コード・パートと、ソース・コード・パー
トを作る順序とを指定することによって、MAKEファ
イルが作成される。この方法で複雑なプログラムを作成
する際、ユーザは、このプロセスに間断なくかかわり、
MAKEファイルを最新の状態に、かつ構文的に正しい
状態に保つ必要がある。しかしこの作業は、多くのソー
ス・コード・パートが変更されていたり、大きなソース
・コード・パート・ライブラリに追加あるいは削除され
ていると容易でない。
を開発する際に、ソース・コード・パートを統合する1
つの方法として、MAKEファシリティが用いられる。
MAKEファシリティでは、あるファイルに、作成に必
要なソース・コード・パートと、ソース・コード・パー
トを作る順序とを指定することによって、MAKEファ
イルが作成される。この方法で複雑なプログラムを作成
する際、ユーザは、このプロセスに間断なくかかわり、
MAKEファイルを最新の状態に、かつ構文的に正しい
状態に保つ必要がある。しかしこの作業は、多くのソー
ス・コード・パートが変更されていたり、大きなソース
・コード・パート・ライブラリに追加あるいは削除され
ていると容易でない。
【0007】これに代わる従来技術は、各ソース・コー
ド・パートのソース・コードを、そのコンパイルをスケ
ジューリングする前に解析する機能を持つソース・コー
ド・パート・スケジューラを使用することである。これ
により、ソース・コード・パートの依存性が判定できる
ため、パートのコンパイルをスケジューリングすること
ができる。この種のスケジューラには、それがサポート
する各コンパイラのものと同じパーサ(parser)が必要
である。この方法は、スケジューラが、同じソース言語
で符号化されたソース・コード・パートをサポートする
場合は適切であろうが、パートがいくつかの言語で書か
れていて、同じパート・ライブラリに存在する場合は効
率が悪い。また、スケジューラがパーサを備えている場
合でも、コードを解析することによって得られた情報を
もとに実際にコンパイルが行なわれるまでには、ソース
・コード・パートの保守のために依存性が変わってお
り、したがって、スケジューリングのために得られた情
報が古くなっていることもあり得る。
ド・パートのソース・コードを、そのコンパイルをスケ
ジューリングする前に解析する機能を持つソース・コー
ド・パート・スケジューラを使用することである。これ
により、ソース・コード・パートの依存性が判定できる
ため、パートのコンパイルをスケジューリングすること
ができる。この種のスケジューラには、それがサポート
する各コンパイラのものと同じパーサ(parser)が必要
である。この方法は、スケジューラが、同じソース言語
で符号化されたソース・コード・パートをサポートする
場合は適切であろうが、パートがいくつかの言語で書か
れていて、同じパート・ライブラリに存在する場合は効
率が悪い。また、スケジューラがパーサを備えている場
合でも、コードを解析することによって得られた情報を
もとに実際にコンパイルが行なわれるまでには、ソース
・コード・パートの保守のために依存性が変わってお
り、したがって、スケジューリングのために得られた情
報が古くなっていることもあり得る。
【0008】このように上記2つの方法は満足のいくも
のではない。また、いずれの方法も、各パートがコンパ
イルされてから判明したソース・コード・パート間の依
存性に合わせてスケジュールを動的に調整することはで
きない。
のではない。また、いずれの方法も、各パートがコンパ
イルされてから判明したソース・コード・パート間の依
存性に合わせてスケジュールを動的に調整することはで
きない。
【0009】米国特許第4852001号明細書は、様
々なリソースに対してジョブをスケジューリングする方
法を示している。ジョブの作業負荷は各々、ジョブの単
位とリソースのタイプとして時間軸に沿った各時間単位
に割当てられる。この明細書は、ジョブのタイミングと
時間の割当てに関するもので、アプリケーション・プロ
グラムの開発と依存性のスケジューリングには言及して
いない。
々なリソースに対してジョブをスケジューリングする方
法を示している。ジョブの作業負荷は各々、ジョブの単
位とリソースのタイプとして時間軸に沿った各時間単位
に割当てられる。この明細書は、ジョブのタイミングと
時間の割当てに関するもので、アプリケーション・プロ
グラムの開発と依存性のスケジューリングには言及して
いない。
【0010】米国特許第4791554号明細書は、コ
ンピュータのデータ・ベースで複数のリソースを共有す
ることによって複数のタスクの並列実行を行なうコンピ
ュータ・システムを示している。この明細書は、共通リ
ソースの共有による "デッドロック" について述べ、デ
ッドロックの可能性のあるタスクの開始を遅らせる情報
を与えているが、本発明が言及している問題には触れて
いない。
ンピュータのデータ・ベースで複数のリソースを共有す
ることによって複数のタスクの並列実行を行なうコンピ
ュータ・システムを示している。この明細書は、共通リ
ソースの共有による "デッドロック" について述べ、デ
ッドロックの可能性のあるタスクの開始を遅らせる情報
を与えているが、本発明が言及している問題には触れて
いない。
【0011】米国特許第4658351号明細書は、デ
ータ処理システムに於いて汎用データを処理する複数の
タスクの対話型平行処理タスクを制御する方法及び装置
を示している。タスク・マネジャは複数のタスク・キュ
ーを含み、各キューが、タスクの実行の相対優先度に対
応する。タスクは、タスク・キューの相対優先度と、タ
スク・キュー内のタスク制御ブロックの順列位置による
順序で実行される。この明細書も、本発明が解決してい
る問題に言及していない。
ータ処理システムに於いて汎用データを処理する複数の
タスクの対話型平行処理タスクを制御する方法及び装置
を示している。タスク・マネジャは複数のタスク・キュ
ーを含み、各キューが、タスクの実行の相対優先度に対
応する。タスクは、タスク・キューの相対優先度と、タ
スク・キュー内のタスク制御ブロックの順列位置による
順序で実行される。この明細書も、本発明が解決してい
る問題に言及していない。
【0012】
【発明が解決しようとする課題】パートが複数のコンパ
イル依存性を持ち得、作成開始時にスケジューラがコン
パイル依存性を知らない場合、相互に依存した複数のソ
ース・コード・パートをパート・ライブラリからコンパ
イルすることをスケジューリングすることによって、コ
ンピュータ・プログラムの作成をスケジューリングする
という問題は、従来の技術では適切に対処されていな
い。また、コンパイルが進むにつれてわかってくる、コ
ンパイルするソース・コード・パートの新たな依存性に
動的に対応する手段はまだ知られていない。さらに、ア
プリケーション開発の試みを挫くような、ソース・コー
ド・パート間の循環コンパイル依存性が存在することを
効率よく認識する手段もまだ知られていない。
イル依存性を持ち得、作成開始時にスケジューラがコン
パイル依存性を知らない場合、相互に依存した複数のソ
ース・コード・パートをパート・ライブラリからコンパ
イルすることをスケジューリングすることによって、コ
ンピュータ・プログラムの作成をスケジューリングする
という問題は、従来の技術では適切に対処されていな
い。また、コンパイルが進むにつれてわかってくる、コ
ンパイルするソース・コード・パートの新たな依存性に
動的に対応する手段はまだ知られていない。さらに、ア
プリケーション開発の試みを挫くような、ソース・コー
ド・パート間の循環コンパイル依存性が存在することを
効率よく認識する手段もまだ知られていない。
【0013】
【課題を解決するための手段】本発明は、コンピュータ
のパート・ライブラリでアクセスされる複数のソース・
コード・パートからコンピュータ・プログラムを作成す
ることを動的にスケジューリングするための方法及び手
段を提供する。スケジューリングは、各ソース・コード
・パートがコンパイルされた時にコンパイラからスケジ
ューラに返る情報をもとにして行なわれる。
のパート・ライブラリでアクセスされる複数のソース・
コード・パートからコンピュータ・プログラムを作成す
ることを動的にスケジューリングするための方法及び手
段を提供する。スケジューリングは、各ソース・コード
・パートがコンパイルされた時にコンパイラからスケジ
ューラに返る情報をもとにして行なわれる。
【0014】本発明の目的は、複雑なコンピュータ・プ
ログラムを複数のソース・コード・パートからコンパイ
ルする時に生じる重大な障害を検出することにある。
ログラムを複数のソース・コード・パートからコンパイ
ルする時に生じる重大な障害を検出することにある。
【0015】本発明の目的には、特定のソース・コード
・パートをコンパイルすることができない場合でもコン
パイルが継続する複雑なコンピュータ・プログラムをコ
ンパイルするためのプロセスを提供することも含まれ
る。
・パートをコンパイルすることができない場合でもコン
パイルが継続する複雑なコンピュータ・プログラムをコ
ンパイルするためのプロセスを提供することも含まれ
る。
【0016】本発明は、具体的には、複雑なコンピュー
タ・プログラムを作成する間に重大な障害を検出する方
法と定義され、この方法には、プログラムの作成に必要
なソース・コード・パートをリスト化するステップ、各
パートを作成状態標識(build status indicater)でマ
ーキングするステップ、リストのソース・コード・パー
トを反復走査するステップ、作成状態標識とパートの依
存性に従って走査される際に各パートのコンパイルを試
みるステップ、及び正常に終了した場合には、作成状態
標識をコンパイル正常終了標識と置き換え、リストの全
パートの走査時に変更された標識がない場合にのみ走査
プロセスを止めるステップとが含まれる。
タ・プログラムを作成する間に重大な障害を検出する方
法と定義され、この方法には、プログラムの作成に必要
なソース・コード・パートをリスト化するステップ、各
パートを作成状態標識(build status indicater)でマ
ーキングするステップ、リストのソース・コード・パー
トを反復走査するステップ、作成状態標識とパートの依
存性に従って走査される際に各パートのコンパイルを試
みるステップ、及び正常に終了した場合には、作成状態
標識をコンパイル正常終了標識と置き換え、リストの全
パートの走査時に変更された標識がない場合にのみ走査
プロセスを止めるステップとが含まれる。
【0017】本発明の特徴は、ソース・コード・パート
のコンパイルを試みる間にパートをリストに追加する機
能にもある。
のコンパイルを試みる間にパートをリストに追加する機
能にもある。
【0018】また、ソース・コード・パートの依存性の
リストには、パートがいつ変更できるかについて標識が
得られるように、他のパートに依存性を持つ各ソース・
パートが示される。
リストには、パートがいつ変更できるかについて標識が
得られるように、他のパートに依存性を持つ各ソース・
パートが示される。
【0019】本発明の方法は、具体的には次のステップ
にまとめることができる。 i)アプリケーションの開発に必要な既知のソース・コ
ード・パートの初期リストを設定する。 ii)リストの各ソース・コード・パートを作成状態標
識でマーキングする。 iii)リストの各ソース・コード・パートのコンパイ
ルを、コンパイルが必要な場合は一時に1回スケジュー
リングする。 iv)上記ステップiiiのソース・コード・パートの
コンパイルが正常に終了した場合は、ソース・コード・
パートの作成状態標識を変更してコンパイルの正常終了
を示す。 v)上記ステップiiiにおいて第1のソース・コード
・パートのコンパイルが、その第1のソース・コード・
パートのコンパイルの前提条件である第2のソース・コ
ード・パートの参照によって停止した場合、及び第2の
ソース・コード・パートがリストにない場合には、リス
トに第2のソース・コード・パートを追加し、第2のソ
ース・コード・パートの作成状態標識をセットして第2
のソース・コード・パートがコンパイル対象であること
を示し、第1のソース・コード・パートの作成状態標識
を未変更のまま保持してリストの次のソース・コード・
パートに進む。 vi)上記ステップiv以外の理由によるコンパイル障
害のためにソース・コード・パートのコンパイルが停止
した場合、ソース・コード・パートの作成状態標識をセ
ットしてソース・コード・パートがコンパイルできなか
ったことを示し、リストの次のソース・コード・パート
に進む。 vii)ソース・コード・パートのリスト全体の走査の
間に状態標識が変更されなくなるまでリストの初めから
終わりまで上記ステップiii、iv、vを繰り返す。 viii)上記viiの完了後、コンパイルを止め、作
成状態標識の現状態をレポートする。この時点で、正常
にスケジューリングされたソース・コード・パートと、
そうでなかったものを区別できる。
にまとめることができる。 i)アプリケーションの開発に必要な既知のソース・コ
ード・パートの初期リストを設定する。 ii)リストの各ソース・コード・パートを作成状態標
識でマーキングする。 iii)リストの各ソース・コード・パートのコンパイ
ルを、コンパイルが必要な場合は一時に1回スケジュー
リングする。 iv)上記ステップiiiのソース・コード・パートの
コンパイルが正常に終了した場合は、ソース・コード・
パートの作成状態標識を変更してコンパイルの正常終了
を示す。 v)上記ステップiiiにおいて第1のソース・コード
・パートのコンパイルが、その第1のソース・コード・
パートのコンパイルの前提条件である第2のソース・コ
ード・パートの参照によって停止した場合、及び第2の
ソース・コード・パートがリストにない場合には、リス
トに第2のソース・コード・パートを追加し、第2のソ
ース・コード・パートの作成状態標識をセットして第2
のソース・コード・パートがコンパイル対象であること
を示し、第1のソース・コード・パートの作成状態標識
を未変更のまま保持してリストの次のソース・コード・
パートに進む。 vi)上記ステップiv以外の理由によるコンパイル障
害のためにソース・コード・パートのコンパイルが停止
した場合、ソース・コード・パートの作成状態標識をセ
ットしてソース・コード・パートがコンパイルできなか
ったことを示し、リストの次のソース・コード・パート
に進む。 vii)ソース・コード・パートのリスト全体の走査の
間に状態標識が変更されなくなるまでリストの初めから
終わりまで上記ステップiii、iv、vを繰り返す。 viii)上記viiの完了後、コンパイルを止め、作
成状態標識の現状態をレポートする。この時点で、正常
にスケジューリングされたソース・コード・パートと、
そうでなかったものを区別できる。
【0020】本発明によるスケジューラは、作成が進む
際の新しいパートのスケジューリングを含めて、ソース
・コード・パートのコンパイルを必要に応じてスケジュ
ーリングする。コンパイルの間にソース・コード・パー
ト間に循環コンパイル依存性が生じてスケジューリング
が無限ループに入った場合は、本発明の方法により、コ
ンパイルが効率よく停止する。
際の新しいパートのスケジューリングを含めて、ソース
・コード・パートのコンパイルを必要に応じてスケジュ
ーリングする。コンパイルの間にソース・コード・パー
ト間に循環コンパイル依存性が生じてスケジューリング
が無限ループに入った場合は、本発明の方法により、コ
ンパイルが効率よく停止する。
【0021】
【実施例】図1に示した本発明の実施例は、コンピュー
タ・プログラムのライブラリで作成・維持されるソース
・コード・パートから複雑なコンピュータ・アプリケー
ション・プログラムを作成するために実現されている。
ソース・コード・パートは単に、ソース・コードのフォ
ーマットで維持されるコンピュータ・プログラムであ
り、アクセスされ統合されてより大きなコンピュータ・
プログラムが作成される。
タ・プログラムのライブラリで作成・維持されるソース
・コード・パートから複雑なコンピュータ・アプリケー
ション・プログラムを作成するために実現されている。
ソース・コード・パートは単に、ソース・コードのフォ
ーマットで維持されるコンピュータ・プログラムであ
り、アクセスされ統合されてより大きなコンピュータ・
プログラムが作成される。
【0022】ソース・コード・パートからアプリケーシ
ョン・プログラムを正確に作成するには、正しい順序で
コンパイルされるように様々なパートをスケジューリン
グする必要がある。たとえば、ソース・コード・パート
Aがコンパイルに関してソース・コード・パートBに依
存する場合、パートAに先立ってパートBをコンパイル
しなければならない。
ョン・プログラムを正確に作成するには、正しい順序で
コンパイルされるように様々なパートをスケジューリン
グする必要がある。たとえば、ソース・コード・パート
Aがコンパイルに関してソース・コード・パートBに依
存する場合、パートAに先立ってパートBをコンパイル
しなければならない。
【0023】作成プロセスの開始時、多くのコンパイル
依存性がわかるが、ライブラリではファイルの保守が継
続されるために、スケジューラには未知の新しいコンパ
イル依存性が生じ得る。このような依存性は、ソース・
コード・パートのコンパイルの際に生じる。
依存性がわかるが、ライブラリではファイルの保守が継
続されるために、スケジューラには未知の新しいコンパ
イル依存性が生じ得る。このような依存性は、ソース・
コード・パートのコンパイルの際に生じる。
【0024】効率よい作成のためには、スケジューラ
は、コンパイル時にわかったどのような新しい依存性に
も動的に対応してスケジューリングすることができなけ
ればならない。また、コンパイルの結果、2つ以上のパ
ート間に無限に循環するコンパイル依存性(無限循環コ
ンパイル依存性)が生じた場合、スケジューラは、作成
プロセスを停止できなければならない。
は、コンパイル時にわかったどのような新しい依存性に
も動的に対応してスケジューリングすることができなけ
ればならない。また、コンパイルの結果、2つ以上のパ
ート間に無限に循環するコンパイル依存性(無限循環コ
ンパイル依存性)が生じた場合、スケジューラは、作成
プロセスを停止できなければならない。
【0025】本発明の実施例では、パート・タイプごと
に「パート・リスト」を作成するのに事前スケジューラ
が用いられる。事前スケジューラは、論理ファイルや物
理ファイル等、同種のファイルを同じ「パート・リス
ト」に置く。それらは、互いに循環コンパイル依存性を
生じさせ得るからである。他のパート・タイプは別のリ
ストに置かれる。
に「パート・リスト」を作成するのに事前スケジューラ
が用いられる。事前スケジューラは、論理ファイルや物
理ファイル等、同種のファイルを同じ「パート・リス
ト」に置く。それらは、互いに循環コンパイル依存性を
生じさせ得るからである。他のパート・タイプは別のリ
ストに置かれる。
【0026】「パート・リスト」は、あるアプリケーシ
ョン・プログラムが複数のソース・コードから作成され
る場合において、それらの必要なソース・コード・パー
トを指定したものであり、図1に示すように、アプリケ
ーション・プログラムを作成するためのソース・コード
・パートは、「パート・リスト」1でエントリとして表
わされる。すなわち、必要なソース・コード・パートの
ファイルが「パート・リスト」1に指定される。また、
「パート・リスト」1のあるパートをコンパイルするた
めに事前にコンパイルされていることを要するパート
(即ち、依存性を有するパート)が存在する場合には、
図1に示すように、そのパート(B)に対応する「依存
性リスト」2を作成し、所定のソース・コード・パート
の依存性は、「依存性リスト」2のエントリとして示さ
れる。すなわち、依存するソース・コード・パートのフ
ァイルが「依存性リスト」2に指定される。「パート・
リスト」1と「依存性リスト」2で、各リスト上のソー
ス・コード・パートの順序は問題ではないが、リスト上
の各ソース・コード・パートは、パートのコンパイル状
態をスケジューラに示すスケジューリング状態標識4を
持つ。この状態標識は、以下のいずれにもセットでき
る。
ョン・プログラムが複数のソース・コードから作成され
る場合において、それらの必要なソース・コード・パー
トを指定したものであり、図1に示すように、アプリケ
ーション・プログラムを作成するためのソース・コード
・パートは、「パート・リスト」1でエントリとして表
わされる。すなわち、必要なソース・コード・パートの
ファイルが「パート・リスト」1に指定される。また、
「パート・リスト」1のあるパートをコンパイルするた
めに事前にコンパイルされていることを要するパート
(即ち、依存性を有するパート)が存在する場合には、
図1に示すように、そのパート(B)に対応する「依存
性リスト」2を作成し、所定のソース・コード・パート
の依存性は、「依存性リスト」2のエントリとして示さ
れる。すなわち、依存するソース・コード・パートのフ
ァイルが「依存性リスト」2に指定される。「パート・
リスト」1と「依存性リスト」2で、各リスト上のソー
ス・コード・パートの順序は問題ではないが、リスト上
の各ソース・コード・パートは、パートのコンパイル状
態をスケジューラに示すスケジューリング状態標識4を
持つ。この状態標識は、以下のいずれにもセットでき
る。
【0027】1.TO_BE_BUILT スケジューラは、この状態標識を検出すると、パートが
コンパイルを対象にスケジューリングされているかどう
かを判定する。スケジューラは、現パートがコンパイル
を依存するパートをすべてチェックして、そのコンパイ
ル依存性のすべての状態標識がBUILT(後述)にセ
ットされているかどうかを判定する。すべてBUILT
を示している場合、すなわち先にコンパイルされている
場合、スケジューラは、現パートのコンパイルをスケジ
ューリングする。コンパイル依存性についての状態標識
がTO_BE_BUILTにセットされており、これら
のパートがリストにある場合、スケジューラは、現パー
トのスケジューリングを遅らせ、リストの別のパートに
進む。必要な、依存するソース・コード・パートがすべ
てリストにない場合、スケジューラは新しいパートを、
それらが既知となった時にリストに追加する。
コンパイルを対象にスケジューリングされているかどう
かを判定する。スケジューラは、現パートがコンパイル
を依存するパートをすべてチェックして、そのコンパイ
ル依存性のすべての状態標識がBUILT(後述)にセ
ットされているかどうかを判定する。すべてBUILT
を示している場合、すなわち先にコンパイルされている
場合、スケジューラは、現パートのコンパイルをスケジ
ューリングする。コンパイル依存性についての状態標識
がTO_BE_BUILTにセットされており、これら
のパートがリストにある場合、スケジューラは、現パー
トのスケジューリングを遅らせ、リストの別のパートに
進む。必要な、依存するソース・コード・パートがすべ
てリストにない場合、スケジューラは新しいパートを、
それらが既知となった時にリストに追加する。
【0028】2.BUILT この標識を持つパートはスケジューリングされコンパイ
ルされている。コンパイルを要しないパートもこの標識
を持つ。
ルされている。コンパイルを要しないパートもこの標識
を持つ。
【0029】3.FAILED スケジューラは、この標識を検出すると、パートのスケ
ジューリング/コンパイルを止める。これは、パート自
体か、またはそれが依存するパートが、構文等のエラー
のためにコンパイルを失敗したためである。パートのコ
ンパイルが失敗すると、スケジューラは、そのパートを
FAILEDとし、そのパートに依存していたパートは
コンパイルされず、そのようなパートもスケジューラに
よってFAILEDとマーキングされる。
ジューリング/コンパイルを止める。これは、パート自
体か、またはそれが依存するパートが、構文等のエラー
のためにコンパイルを失敗したためである。パートのコ
ンパイルが失敗すると、スケジューラは、そのパートを
FAILEDとし、そのパートに依存していたパートは
コンパイルされず、そのようなパートもスケジューラに
よってFAILEDとマーキングされる。
【0030】コンパイルのためにパートをスケジューリ
ングする際、スケジューラは「パート・リスト」1と
(存在すれば)「依存性リスト」2とを一時に1パー
ト、図1のループ3で反復走査する。スケジューラは、
リストを走査する際、各ソース・コード・パート状態標
識をチェックする。状態標識がBUILTまたはFAI
LEDを示している時、スケジューラはそのパートにつ
いてそれ以上の処理をしない。状態標識TO_BE_B
UILTを検出したスケジューラは、パートがそこでコ
ンパイルできるかどうかをチェックし、できる場合は、
そのパートがコンパイルを対象にスケジューリングされ
る。
ングする際、スケジューラは「パート・リスト」1と
(存在すれば)「依存性リスト」2とを一時に1パー
ト、図1のループ3で反復走査する。スケジューラは、
リストを走査する際、各ソース・コード・パート状態標
識をチェックする。状態標識がBUILTまたはFAI
LEDを示している時、スケジューラはそのパートにつ
いてそれ以上の処理をしない。状態標識TO_BE_B
UILTを検出したスケジューラは、パートがそこでコ
ンパイルできるかどうかをチェックし、できる場合は、
そのパートがコンパイルを対象にスケジューリングされ
る。
【0031】スケジューラは、リスト全体の走査の間に
処理されるパートがなくなるまで、リストを反復走査す
る。これは、走査の間に状態標識がTO_BE_BUI
LTからBUILTまたはFAILEDに変化しないこ
とで示される。この最終走査ループが完了すれば、パー
トのリストの内容は、コンパイルされたソース・コード
・パート(BUILT)、及びコンパイルされていない
ソース・コード・パート(FAILEDまたはTO_B
E_BUILT)となる。コンパイルが完了されていな
いパート(標識TO_BE_BUILTを有するパー
ト)は、循環コンパイル依存性をもつか、循環依存性を
もつパートに依存するか、または存在しないソース・コ
ード・パートを参照するかのいずれかである。
処理されるパートがなくなるまで、リストを反復走査す
る。これは、走査の間に状態標識がTO_BE_BUI
LTからBUILTまたはFAILEDに変化しないこ
とで示される。この最終走査ループが完了すれば、パー
トのリストの内容は、コンパイルされたソース・コード
・パート(BUILT)、及びコンパイルされていない
ソース・コード・パート(FAILEDまたはTO_B
E_BUILT)となる。コンパイルが完了されていな
いパート(標識TO_BE_BUILTを有するパー
ト)は、循環コンパイル依存性をもつか、循環依存性を
もつパートに依存するか、または存在しないソース・コ
ード・パートを参照するかのいずれかである。
【0032】上記の方法は、図1を参照すると次のよう
にまとめられる。
にまとめられる。
【0033】1.スケジューリング・プロセスの開始時
に、パートAが調べられる。スケジューリング状態フラ
グがTO_BE_BUILTにセットされており、パー
トAが依存性を持たない場合、パートAはコンパイルさ
れ、スケジューリング状態標識はBUILTにセットさ
れる。
に、パートAが調べられる。スケジューリング状態フラ
グがTO_BE_BUILTにセットされており、パー
トAが依存性を持たない場合、パートAはコンパイルさ
れ、スケジューリング状態標識はBUILTにセットさ
れる。
【0034】2.次にパートBが調べられる。スケジュ
ーリング状態フラグがTO_BE_BUILTにセット
されているとする。パートBは、まだ処理されていない
パートCの先のコンパイルに依存するため、パートBは
この走査でコンパイルできない。したがってその状態標
識は変更されない。
ーリング状態フラグがTO_BE_BUILTにセット
されているとする。パートBは、まだ処理されていない
パートCの先のコンパイルに依存するため、パートBは
この走査でコンパイルできない。したがってその状態標
識は変更されない。
【0035】3.次にパートCが調べられる。スケジュ
ーリング状態フラグがTO_BE_BUILTであり、
既知の依存性がないから、パートCはコンパイルされ、
パートCの状態標識はBUILTにセットされる。
ーリング状態フラグがTO_BE_BUILTであり、
既知の依存性がないから、パートCはコンパイルされ、
パートCの状態標識はBUILTにセットされる。
【0036】4.この最初のリスト走査の結果、リスト
の少なくとも1つのパートはそのスケジューリング状態
フラグが変更されている。パートA、パートCのフラグ
はTO_BE_BUILTからBUILTに変わってい
る。スケジューラはリストの先頭に戻り、上記ステップ
1、2、3を繰り返す。
の少なくとも1つのパートはそのスケジューリング状態
フラグが変更されている。パートA、パートCのフラグ
はTO_BE_BUILTからBUILTに変わってい
る。スケジューラはリストの先頭に戻り、上記ステップ
1、2、3を繰り返す。
【0037】5.パートAがここで再び調べられる。ス
ケジューリング状態フラグはここで、前の走査からBU
ILTになっているため、この走査では何も実行されな
い。
ケジューリング状態フラグはここで、前の走査からBU
ILTになっているため、この走査では何も実行されな
い。
【0038】6.パートBが調べられる。この場合、ス
ケジューリング状態フラグはTO_BE_BUILTに
なっているが、依存するA、CはすべてBUILTであ
るため、パートBはここでコンパイルされ、スケジュー
リング状態標識はBUILTにセットされる。
ケジューリング状態フラグはTO_BE_BUILTに
なっているが、依存するA、CはすべてBUILTであ
るため、パートBはここでコンパイルされ、スケジュー
リング状態標識はBUILTにセットされる。
【0039】7.パートCが調べられる。先の走査から
状態標識はBUILTにセットされているため、Cに対
しては何も実行されない。
状態標識はBUILTにセットされているため、Cに対
しては何も実行されない。
【0040】リストの走査は再びパートA乃至パートC
から始まるが、このループの3回目の走査で変更される
パート・スケジューリング状態フラグはないため、プロ
セスは停止する。ただし、コンパイルの間に新しい依存
性が検出されると、パートはリストの終わりのパートC
の後に追加され、スケジューラの走査リストの一部にな
る。このサイクルは、状態標識フラグが変わらなくなる
まで繰り返される。
から始まるが、このループの3回目の走査で変更される
パート・スケジューリング状態フラグはないため、プロ
セスは停止する。ただし、コンパイルの間に新しい依存
性が検出されると、パートはリストの終わりのパートC
の後に追加され、スケジューラの走査リストの一部にな
る。このサイクルは、状態標識フラグが変わらなくなる
まで繰り返される。
【0041】本発明の方法を疑似コード・フォーマット
で示すと表1のようになる。
で示すと表1のようになる。
【表1】 疑似コード DO FOREVER PART_STATUS_CHANGEDフラグをFALSEにセット パート・リストの最初のパートを指す DO WHILE パート・リストの最後のパートに達しない IF 現パートがTO_BE_BUILT THEN IF パートをコンパイルする必要がない THEN スケジューリング状態フラグをBUILTにセット ELSE パートをコンパイル コンパイラからわかった新しい依存性を依存性リスト及びパート・リス ト(必要な場合)に追加し、スケジューリング状態フラグをTO_BE_ BUILTにセット IF TO_BE_BUILTの依存性がない THEN 現パートのスケジューリング状態フラグをBUILTにセット END END /* IF */ END /* IF */ IF 現パートのスケジューリング状態フラグが変更されている THEN PART_STATUS_CHANGEDフラグをTRUEにセット END /* IF */ END /* DO WHILE */ ********************************************************************** |* サイクルがあるかどうか判定 *| ********************************************************************** IF PART_STATUS_CHANGEDフラグがFALSE THEN パート・リストの最初のパートを指す DO WHILE パート・リストの最後のパートに達しない IF 現パートのスケジューリング状態がTO_BE_BUILT THEN このパートが、作成されていないパートに依存するという警告を出す END /* IF */ END /* DO WHILE */ この方法を終了 END /* IF */ END /* DO FOREVER */
【0042】本発明は、従来技術で用いられ、MAKE
ファイル・ファシリティあるいはプログラム・パーサを
スケジューラに組み込んだ事前スケジューリング方式と
は対照的に、パートがコンパイルされる際にコンパイラ
によって与えられる情報をもとにした事後スケジューリ
ング方式である。本発明は、コンピュータのアプリケー
ション・プログラムを作成する際にパートをスケジュー
リングし、循環コンパイル依存性のため、あるいは予め
必要なソース・コード・パートが存在しないために、コ
ンパイルできないソース・コード・パートを識別する効
率のよい方法となる。
ファイル・ファシリティあるいはプログラム・パーサを
スケジューラに組み込んだ事前スケジューリング方式と
は対照的に、パートがコンパイルされる際にコンパイラ
によって与えられる情報をもとにした事後スケジューリ
ング方式である。本発明は、コンピュータのアプリケー
ション・プログラムを作成する際にパートをスケジュー
リングし、循環コンパイル依存性のため、あるいは予め
必要なソース・コード・パートが存在しないために、コ
ンパイルできないソース・コード・パートを識別する効
率のよい方法となる。
【0043】
【発明の効果】複数のソース・コード・パートからアプ
リケーション・プログラムを作成するために本発明をコ
ンピュータ・システムに実現する際、コンピュータのメ
モリは、パート・リスト及び依存パート・リストを維持
するためにのみ必要である。無限循環依存性のパートを
識別するのに余分なメモリあるいはコンピュータの処理
能力は必要なく、コンパイルが進むにつれてわかってく
る新しい依存パートの処理にも余分な処理能力は必要な
い。
リケーション・プログラムを作成するために本発明をコ
ンピュータ・システムに実現する際、コンピュータのメ
モリは、パート・リスト及び依存パート・リストを維持
するためにのみ必要である。無限循環依存性のパートを
識別するのに余分なメモリあるいはコンピュータの処理
能力は必要なく、コンパイルが進むにつれてわかってく
る新しい依存パートの処理にも余分な処理能力は必要な
い。
【図1】本発明によるパート・リストと依存性リストの
スケジューリング方法を示す図である。
スケジューリング方法を示す図である。
3・・・ループ 4・・・状態標識
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭61−94149(JP,A) 特開 平2−40720(JP,A) 特開 平1−240934(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/45 JICSTファイル(JOIS)
Claims (4)
- 【請求項1】複雑なコンピュータ・プログラムをソース
・コード・パートから作成する際に重大な障害を検出す
る方法であって、上記ソース・コード・パートがプログ
ラム・ライブラリから得られたオブジェクトより成り、 i)複雑なコンピュータ・プログラムを作成するのに必
要なソース・コード・パートを第1のリストとしてリス
ト化するステップと、 ii)上記第1のリストの各ソース・コード・パートに
作成状態標識を設けるステップと、 iii)上記第1のリストを走査し、順に上記ソース・
コード・パートのコンパイルを試み、コンパイルが正常
に終了すると、上記ソース・コード・パートの上記作成
状態標識をコンパイル正常終了標識と置き換えるステッ
プと、 iv)上記リストの走査が終了すると再び上記iii)
のステップを繰り返すが、コンパイル正常終了標識を有
するソース・コード・パートについてはコンパイルせず
に次に進むステップと、 v)上記iii)及びiv)のステップにおいて、どの
標識にも変更が生じない時に上記走査を停止するステッ
プとを含む、 障害検出方法。 - 【請求項2】ソース・コード・パートをコンパイルしよ
うとして、上記第1のリストに含まれていないが上記プ
ログラム・ライブラリから使用できるソース・コード・
パートに対する依存性が識別された時に、上記プログラ
ム・ライブラリから上記第1のリストにソース・コード
・パートを追加するステップを含む、請求項1記載の方
法。 - 【請求項3】上記第1のリストの各ソース・コード・パ
ートについて、各ソース・コード・パートが依存するソ
ース・コード・パートを第2のリストとしてリスト化す
るステップであって、上記第2のリストが、上記第2の
リスト内のパートの作成状態を示す標識を有し、これに
よって上記第2のリストが、ソース・コード・パートが
コンパイルし得るかどうかを示すステップを含む、請求
項2記載の方法。 - 【請求項4】ソース・コード・パートのリストから複雑
なソフトウェア・プログラムを作成する際に重大な障害
を検出する方法であって、上記ソース・コード・パート
が、ソース・コード・パート・ライブラリに作成され維
持されるソース・コード・オブジェクトより成り、 i)上記ソース・コード・パートの各々を作成状態標識
でマーキングするステップと、 ii)上記リストの上記ソース・コード・パートの各々
を一時に1パートづつコンパイルするステップと、 iii)上記コンパイル・ステップのソース・コード・
パートのコンパイルが正常に終了した場合、上記ソース
・コード・パートの上記作成状態標識を変更してコンパ
イルの正常終了を示すステップと、 iv)上記コンパイル・ステップの第1のソース・コー
ド・パートのコンパイルが、当該第1のソース・コード
・パートのコンパイルに予め必要な第2のソース・コー
ド・パートへの参照があることによって停止された場
合、または上記第2のソース・コード・パートが上記リ
ストにない場合、上記第2のソース・コード・パートを
上記リストに追加し、上記第2のソース・コード・パー
トの上記作成状態標識をセットして上記第2のソース・
コード・パートがコンパイル対象であることを示し、上
記第1のソース・コード・パートの上記作成状態標識を
未変更のまま保つステップと、 v)上記ソース・コード・パートのコンパイルが、上記
iv)のステップ以外の理由によりコンパイルできずに
停止した場合、上記作成状態標識をセットして上記ソー
ス・コード・オブジェクトがコンパイルできなかったこ
とを示すステップと、 vi)上記ソース・コード・パートのリスト全体を走査
する間に上記状態標識に変更が生じなくなるまで上記i
ii)、iv)、及びv)のステップを上記リストの初
めから終わりまで繰り返すステップと、 vii)上記vi)のステップの終了後に、上記コンパ
イルを停止し、上記ソース・コード・パートの各々につ
いて上記作成状態標識の現状態をレポートするステップ
とを含む、 障害検出方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CA002061298A CA2061298C (en) | 1992-02-17 | 1992-02-17 | Method for detecting critical failures during the building of complex computer programs from source code parts |
| CA2061298 | 1992-02-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0683634A JPH0683634A (ja) | 1994-03-25 |
| JP2802005B2 true JP2802005B2 (ja) | 1998-09-21 |
Family
ID=4149269
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5021118A Expired - Lifetime JP2802005B2 (ja) | 1992-02-17 | 1993-02-09 | 障害検出方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (3) | US5375239A (ja) |
| JP (1) | JP2802005B2 (ja) |
| CA (1) | CA2061298C (ja) |
Families Citing this family (39)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA2061298C (en) * | 1992-02-17 | 1996-12-03 | Douglas J. Mortson | Method for detecting critical failures during the building of complex computer programs from source code parts |
| US5764989A (en) * | 1996-02-29 | 1998-06-09 | Supercede, Inc. | Interactive software development system |
| US5848274A (en) * | 1996-02-29 | 1998-12-08 | Supercede, Inc. | Incremental byte code compilation system |
| CA2178898C (en) * | 1996-06-12 | 2000-02-01 | David Joseph Streeter | Sequencing and error detection of template instantiations during compilation of c++ programs |
| US6067413A (en) * | 1996-06-13 | 2000-05-23 | Instantations, Inc. | Data representation for mixed-language program development |
| US5787439A (en) * | 1996-12-13 | 1998-07-28 | Novell, Inc. | Method and system for maintaining a preferred sequence for accessing a plurality of objects |
| US5973687A (en) * | 1996-12-18 | 1999-10-26 | Sun Microsystems, Inc. | Graphical distributed make tool methods apparatus and computer program products |
| JP4027482B2 (ja) * | 1997-12-24 | 2007-12-26 | 富士通株式会社 | 暗号復元を行う翻訳装置およびその方法 |
| US6757900B1 (en) | 2000-05-18 | 2004-06-29 | Microsoft Corporation | State management of server-side control objects |
| US7013340B1 (en) | 2000-05-18 | 2006-03-14 | Microsoft Corporation | Postback input handling by server-side control objects |
| US7380250B2 (en) | 2001-03-16 | 2008-05-27 | Microsoft Corporation | Method and system for interacting with devices having different capabilities |
| US7493397B1 (en) | 2001-06-06 | 2009-02-17 | Microsoft Corporation | Providing remote processing services over a distributed communications network |
| US6944797B1 (en) | 2001-06-07 | 2005-09-13 | Microsoft Corporation | Method and system for tracing |
| US6915454B1 (en) | 2001-06-12 | 2005-07-05 | Microsoft Corporation | Web controls validation |
| US7162723B2 (en) * | 2001-06-29 | 2007-01-09 | Microsoft Corporation | ASP.NET HTTP runtime |
| US7594001B1 (en) | 2001-07-06 | 2009-09-22 | Microsoft Corporation | Partial page output caching |
| US7216294B2 (en) | 2001-09-04 | 2007-05-08 | Microsoft Corporation | Method and system for predicting optimal HTML structure without look-ahead |
| US7428725B2 (en) * | 2001-11-20 | 2008-09-23 | Microsoft Corporation | Inserting devices specific content |
| US20030233477A1 (en) * | 2002-06-17 | 2003-12-18 | Microsoft Corporation | Extensible infrastructure for manipulating messages communicated over a distributed network |
| US7574653B2 (en) * | 2002-10-11 | 2009-08-11 | Microsoft Corporation | Adaptive image formatting control |
| US7603664B2 (en) * | 2002-10-22 | 2009-10-13 | Sun Microsystems, Inc. | System and method for marking software code |
| JP3925857B2 (ja) * | 2002-11-07 | 2007-06-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | スケジュール作成方法、プログラム及びタスクスケジュール作成装置 |
| US7111287B2 (en) * | 2003-01-10 | 2006-09-19 | International Business Machines Corporation | Global processor resource assignment in an assembler |
| US7827216B1 (en) * | 2003-07-23 | 2010-11-02 | Novell, Inc. | Method for coordinating relationships between multiple physical entities |
| US7596782B2 (en) | 2003-10-24 | 2009-09-29 | Microsoft Corporation | Software build extensibility |
| US7890604B2 (en) * | 2004-05-07 | 2011-02-15 | Microsoft Corproation | Client-side callbacks to server events |
| US20050251380A1 (en) * | 2004-05-10 | 2005-11-10 | Simon Calvert | Designer regions and Interactive control designers |
| US9026578B2 (en) * | 2004-05-14 | 2015-05-05 | Microsoft Corporation | Systems and methods for persisting data between web pages |
| US8065600B2 (en) | 2004-05-14 | 2011-11-22 | Microsoft Corporation | Systems and methods for defining web content navigation |
| US7464386B2 (en) * | 2004-05-17 | 2008-12-09 | Microsoft Corporation | Data controls architecture |
| US7530058B2 (en) * | 2004-05-28 | 2009-05-05 | Microsoft Corporation | Non-compile pages |
| US20060020883A1 (en) * | 2004-05-28 | 2006-01-26 | Microsoft Corporation | Web page personalization |
| US8156448B2 (en) * | 2004-05-28 | 2012-04-10 | Microsoft Corporation | Site navigation and site navigation data source |
| US20070185929A1 (en) * | 2006-02-01 | 2007-08-09 | Sap Portals Isreal Ltd. | Method and apparatus for processing monitoring |
| US8151253B2 (en) * | 2006-03-27 | 2012-04-03 | Oracle International Corporation | Efficient generation of executable file from program files when some of the program files expressly incorporate other program files |
| US20080196024A1 (en) * | 2007-02-08 | 2008-08-14 | Ibm Corporation | Method and Apparatus for Changing Software Components in an Information Handling System |
| US8108360B2 (en) * | 2008-04-17 | 2012-01-31 | Microsoft Corporation | Database object update order determination |
| US20150046903A1 (en) * | 2013-08-06 | 2015-02-12 | International Business Machines Incorporated | Predicting immediate build targets |
| WO2022120159A1 (en) * | 2020-12-03 | 2022-06-09 | Synopsys, Inc. | Automatic sequential retry on hardware design compilation failure |
Family Cites Families (13)
| 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 |
| US4658351A (en) * | 1984-10-09 | 1987-04-14 | Wang Laboratories, Inc. | Task control means for a multi-tasking data processing system |
| JPS6194149A (ja) * | 1984-10-15 | 1986-05-13 | Fujitsu Ltd | 翻訳順序決定方式 |
| JPS61233849A (ja) * | 1985-04-08 | 1986-10-18 | Hitachi Ltd | デ−タベ−ス排他制御方法 |
| JP2533495B2 (ja) * | 1986-07-25 | 1996-09-11 | 株式会社日立製作所 | ワ−クスケジユ−リング方法及び装置 |
| US4951192A (en) * | 1987-06-04 | 1990-08-21 | Apollo Computer, Inc. | Device for managing software configurations in parallel in a network |
| US5182807A (en) * | 1987-12-18 | 1993-01-26 | Nec Corporation | Assembler system for determining when to compile source code modules |
| JPH01240934A (ja) * | 1988-03-23 | 1989-09-26 | Hitachi Ltd | 自動再コンパイル方法 |
| US5051893A (en) * | 1988-07-11 | 1991-09-24 | Digital Equipment Corporation | System for processing data to facilitate the creation of executable images |
| JPH0240720A (ja) * | 1988-07-29 | 1990-02-09 | Nec Corp | 目的プログラム出力指示方式 |
| US4949255A (en) * | 1988-09-07 | 1990-08-14 | International Business Machines Corp. | Message interface and method for recursive calling between interpretive and compiled computer processes |
| US5175856A (en) * | 1990-06-11 | 1992-12-29 | Supercomputer Systems Limited Partnership | Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution |
| CA2061298C (en) * | 1992-02-17 | 1996-12-03 | Douglas J. Mortson | Method for detecting critical failures during the building of complex computer programs from source code parts |
-
1992
- 1992-02-17 CA CA002061298A patent/CA2061298C/en not_active Expired - Fee Related
-
1993
- 1993-02-09 JP JP5021118A patent/JP2802005B2/ja not_active Expired - Lifetime
- 1993-02-12 US US08/016,622 patent/US5375239A/en not_active Expired - Fee Related
-
1994
- 1994-06-08 US US08/257,621 patent/US5513357A/en not_active Expired - Fee Related
-
1995
- 1995-06-06 US US08/466,694 patent/US5604908A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| CA2061298C (en) | 1996-12-03 |
| CA2061298A1 (en) | 1993-08-18 |
| US5604908A (en) | 1997-02-18 |
| US5513357A (en) | 1996-04-30 |
| US5375239A (en) | 1994-12-20 |
| JPH0683634A (ja) | 1994-03-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2802005B2 (ja) | 障害検出方法 | |
| US11579856B2 (en) | Multi-chip compatible compiling method and device | |
| US8434054B2 (en) | System and method for managing cross project dependencies at development time | |
| US8042097B2 (en) | Automated semantic-based updates to modified code base | |
| JP4195479B2 (ja) | インクリメンタル生成システム | |
| EP0752647B1 (en) | Method and apparatus for internal versioning of objects using a map file | |
| US8607208B1 (en) | System and methods for object code hot updates | |
| US5182806A (en) | Incremental compiler for source-code development system | |
| JP4901075B2 (ja) | コンピュータ読取可能な媒体、方法及びコンピューティングデバイス | |
| US7614040B2 (en) | System and method for efficiently analyzing and building interdependent resources in a software project | |
| US7971201B2 (en) | Multiple operating device version software generating system and multiple operating device version software generation support program and method | |
| US5201050A (en) | Line-skip compiler for source-code development system | |
| US6961931B2 (en) | Dependency specification using target patterns | |
| US7765520B2 (en) | System and method for managing cross project dependencies at development time | |
| US5978587A (en) | Method for propagating source code locations into objects in a compiler | |
| US7111288B2 (en) | Method and system for minimizing the cycle time when compiling a program in a processing system | |
| US8713550B2 (en) | Methods, devices and software applications for facilitating a development of a computer program | |
| JP2001022560A (ja) | ライブラリ関数バージョンアップ方法 | |
| JP7851884B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
| US20260064570A1 (en) | Stateful continuous integration and continuous deployment pipelines | |
| JPH10187450A (ja) | オブジェクト指向プログラム自動生成装置,自動生成方法およびそのプログラム記憶媒体 | |
| JPS6310239A (ja) | 高級言語のパツチ生成方式 | |
| EP4508526A1 (en) | Computer-implemented method and system for generating a command pipeline for controlling a technical device | |
| JP3018783B2 (ja) | コンパイル方式 | |
| US20040093537A1 (en) | System for determining computer program memory allocation and deallocation |