JP4195479B2 - インクリメンタル生成システム - Google Patents
インクリメンタル生成システム Download PDFInfo
- Publication number
- JP4195479B2 JP4195479B2 JP2006239370A JP2006239370A JP4195479B2 JP 4195479 B2 JP4195479 B2 JP 4195479B2 JP 2006239370 A JP2006239370 A JP 2006239370A JP 2006239370 A JP2006239370 A JP 2006239370A JP 4195479 B2 JP4195479 B2 JP 4195479B2
- Authority
- JP
- Japan
- Prior art keywords
- component
- components
- list
- implementation
- determined
- 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
- 238000000034 method Methods 0.000 claims description 66
- 230000008569 process Effects 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 40
- 238000004590 computer program Methods 0.000 claims description 16
- 230000001419 dependent effect Effects 0.000 claims description 13
- 230000009471 action Effects 0.000 claims description 6
- 239000000470 constituent Substances 0.000 claims 2
- 230000006870 function Effects 0.000 description 89
- 230000008859 change Effects 0.000 description 34
- 230000007246 mechanism Effects 0.000 description 19
- 238000012360 testing method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 240000005020 Acaciella glauca Species 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/48—Incremental compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Description
本発明による人間指向オブジェクトプログラミング・システム(HOOPS)では、構成要素(Component)は、インクリメンタル・コンパイルのための粒度である。すなわち、構成要素は、クラス(Class)または関数(Function)のような単一のコンパイル可能な言語要素を表している。構成要素は、2つの部分、すなわちインターフェース(Interface)と呼ばれる外部から認識できる部分(すなわち公開(public)部分)およびインプリメンテーション(Implementation)(非公開(private)部分)に分割される特性セットからなる。これは、構成要素(Component)が他の構成要素のインターフェースに従属しているだけのこともあることを意味する。プロジェクト(Project)の全構成要素はツリー構造に組織され、プロジェクト構成要素と呼ばれるルート構成要素であるツリーのベースを有する。
ここで、図面を参照するに、特に第1図を参照とすると、汎用コンピュータ10が示されている。コンピュータ10は、システム・ユニット12、陰極線管(CRT)または液晶ディスプレイ(LCD)のような高解像度ディスプレイ装置14を有する。ディスプレイの種類は、それがグラフィック・ユーザ・インターフェース(GUI)のウィンドウ・システムのために必要とされる高解像が可能なディスプレイであるべきであることを除いて重要ではない。コンピュータへのユーザ入力は、キーボード16およびマウス18のようなカーソル指示装置による。マウス18はキーボード16に接続される。このキーボード16は、次にシステム・ユニット12に接続される。マウス18は、その代りに、システム・ユニット12の専用または直列ポートに接続されてもよい。第1図に示されたタイプの汎用コンピュータの例は、アップル社のマッキントッシュ(アップルコンピュータの登録商標)およびIBM社のPS/Vである。他の例として、IBM社のRISCシステム/6000およびサン・マイクロ・システムズ社のコンピュータのような種々のワークステーションが含まれる。
プログラム
本発明の説明で使用されるように、HOOPSプログラムは、「プロジェクト(Project)」と呼ばれる一つの生成不可能な構成要素(non-buidable component)および“生成可能な構成要素(buildable component)”の集合(Collection)からなる。それはまた、生成不可能な構成要素(non-buidablecomponent)を格納することが可能であるが、この説明では、形容詞がない構成要素について言及されている時はいつでも、意味しているものは“生成可能な構成要素(buildable component)”である。生成不可能な構成要素(non-buidable component)は生成動作中コンパイルされない。
構成要素(Component)は独特な識別を有し、名前を付けられる。異なる構成要素は、IDと呼ばれるいくらかの様式の独特な識別子(Identifer)によって識別される。いかなる構成要素にも属しないNullIDと呼ばれる、他とは異なるIDがある。構成要素が形成されると、このIDが割当てられ、構成要素の存在中決して変更されない。構成要素が削除されると、その構成要素のIDは決して再使用されない。実際には、IDは通常数字である。
構成要素(Component)は名前を付けられた「特性(Property)」の集合からなる。特性は、構成要素に関連付けられたいくつかのデータを表す。構成要素のIDと特性名が与えられたデータを取り出したり、格納したりすることができる。実際には、特性名は、名前を識別する番号(このような番号は、ときにはトークンと呼ばれる)によって通常、内部的に表される。いかなる特性にも属しない「NullProperty(ヌル特性)」と呼ばれる他とは異なる特性名がある。
プロジェクトは、さらに特性「ChangeList(変更リスト)」および「ErrorList(エラー・リスト)」を有する構成要素である。ChangeList(変更リスト)特性はリファレンスのリストである。このリファレンスは、構成要素および最後の生成以来変更された特性を記述する。実際には、ChangeList(変更リスト)は、プログラムを生成する際の効率のために、いくらかの方法で分類された一つ以上のリストによって表されてもよい。ErrorList(エラー・リスト)特性もまた、リファレンスのリストである。これらのリファレンスは、最後のプログラム生成中エラーを有するものとしてリストされた構成要素を記述している。リファレンスは、全てその特性としてエラーを有する。各リファレンスと関連しているのは数値で表されたキーである。このキーは、特定のメッセージおよび構成要素の特定された特性の特定サブレンジの位置を突きとめるために、特定のエラー特性とともに使用される。
生成可能な構成要素はまた、特性である「宣言(Declaration)」、「オブジェクト・コード(Objectcode)」、「クライアント(Clients)」、「ソース・リファレンス(SourceReferences)」、「エラー(Errors)」を有しなければならないし、特性「インターフェース(Interface)」、「インプリメンテーション(Implementation)」および「メンバー(Members)」を有してもよい。
インターフェースおよびインプリメンテーション特性は、構成要素のソース・テキストを表す特性である。ソース・テキストは、テキストよりもむしろトークンとして記憶され、もし必要とされるならば、異なる様式でアクセスすることができる。これらの特性によって表されるテキストは、プログラミング環境においてそれをマニュアルで編集することによって変更することができる。インターフェース・データは、それからソース・テキストが必要に応じて再構成することができる構造化フィールドとして記憶されるようにするが可能である。
構成要素は多数の「属性(attribute)」を有する。属性は「真」または「偽」のいずれかである。実際には、属性は、数値“1”および“0”によって表される値、「真」および「偽」で、メモリの単一ビットによって通常表されている。
各構成要素は種類(kind)を有する。種類は、例えば、同一特性または同一言語特有の動作を共有するグループに、構成要素を分類するために使用されるテキスト・ストリングである。大部分の種類は特定のコンピュータ言語に特有であり、意味的に特定言語要素を指定するように使用される。
第3図は、構成要素セット31から構成されるようなプログラムの概念的表現を提供する。各構成要素は、2つの部分、すなわち、インターフェース(Interface)311と呼ばれる外部から認識できる部分(すなわちpublic:公開)およびインプリメンテーション(Implementation)(private part:非公開部分)312に分割される特性セットからなる。第3図に示されるように、構成要素は、他の構成要素のインターフェースにのみ従属する。プロジェクトにおける全構成要素は、ツリー構造に編成されており、プロジェクト構成要素と呼ばれるルート構成要素32であるツリーのベースを有する。当業者によって理解されるように、構成要素は、必ずしもエンティティを自分自身に含む必要はなく、実コードのための記憶位置を指示するポインタを含んでいてもよい。それにもかかわらず、このツリー構造表現はプログラムの編成を表現するのに有用であり、したがって、同様なツリー構造表現は、後述される複数のユーザ・スクリーンの一つで使用される。
インクリメンタル生成44に関連するエディタによって実行される、機能の論理を表現しているフローチャートを示す第5A図〜第5D図を参照する。生成可能な非合成構成要素(non-synthetic component)に関しては、BuildStates(生成状態)は、生成処理以外では、値Compiled(コンパイル済み)およびNeedToCompile(コンパイルを要する)に制限される。もしInterface(インターフェース)特性が存在しないならば、InterfaceBuildState(インターフェース生成状態)はCompiled(コンパイル済み)である。Implementation(インプリメンテーション)特性が存在しないならば、ImplementationBuildState(インプリメンテーション生成状態)はCompiled(コンパイル済み)である。第5A図では、種々の編集状態変更が示される。ラベル500で、システムが、CreateComponent(構成要素の形成)、RenameComponent(構成要素のリネーム)、PasteComponent(構成要素のペースト)またはEditInterface(インターフェースの編集)のコマンドを識別するとき、制御は、インターフェース変更を処理するために、機能ブロック510に渡される。変更のための詳細な論理は第5B図に詳述されている。
プログラム生成中、プロジェクト構成要素(Project Component)はCompileList(コンパイル・リスト)と呼ばれるリファレンスの非公開リスト(private list)を保持する。InterfaceCompileList(インターフェース・コンパイル・リスト)およびImplementationCompileList(インプリメンテーション・コンパイル・リスト)がある。プロジェクトはまた、InternalErrorList(内部エラー・リスト)と呼ばれるリファレンスの専用リストを保持する。実際には、これらのリストのそれぞれは効率の理由で1つ以上のリストで物理的に表されてもよい。
これはBuild(生成)処理の第2段階である。InterfaceCompileList(インターフェース・コンパイル・リスト)に関する項目に対する可能なBuildStates(生成状態)は、Compiled(コンパイル済み)、BeingCompiled(コンパイル中)、NeedToCompile(コンパイルを要する)、Uncertain(不確定)、CompileError(コンパイル・エラー)またはUncertainError(不確定エラー)である。InterfaceCompileList(インターフェース・コンパイル・リスト)は、それが第7図のフローチャートに示されるように、空になるまで処理される。この処理はブロック701から入り、ここでリファレンスがInterfaceCompileList(インターフェース・コンパイル・リスト)の最前列から選択される。リストにリファレンスがこれ以上存在しないならば、処理はブロック702で終了する。リファレンスに関連した構成要素(Component)のInterface(インターフェース)のBuildState(生成状態)が、ブロック703で示されるように、Compiled(コンパイル済み)、CompileError(コンパイル・エラー)またはUncertainError(不確定エラー)であるならば、リファレンスはリストの最前列から取除かれ、処理はブロック701に継続する。リファレンスに関連された構成要素のInterface(インターフェース)のBuildState(生成状態)が、ブロック704で示されるように、BeingCompiled(コンパイル中)またはNeedToCompile(コンパイルを要する)であるならば、構成要素のBuildState(生成状態)は機能ブロック705でBeingCompiled(コンパイル中)とセットされる。したがって、コンパイル機能(コンパイラ42を呼出す)は構成要素のInterface(インターフェース)に対して呼出される。この機能は、Abort(打切り)、Done(実行)およびError(エラー)の一つの値を返す。ブロック706において返された値がAbort(打切り)であるならば、処理はブロック701で継続される。ブロック707において返された値がDone(実行)であるならば、構成要素のInterface BuildState(インターフェース生成状態)はCompiled(コンパイル済み)とセットされ、かつリファレンスは、処理がブロック701で継続される前に、ブロック708でリストの最前列から取除かれる。ブロック709において返された値がError(エラー)であるならば、構成要素のInterface BuildState(インターフェース生成状態)はCompileError(コンパイル・エラー)とセットされ、このリファレンスはリストの前部から取除かれる。機能PropagateError(エラー伝播)は、処理がブロック701で継続される前に機能ブロック710で構成要素に呼出される。リファレンスに関連する構成要素のInterface BuildState(インターフェース生成状態)が、ブロック711で決定されるように、Uncertain(不確定)であるならば、構成要素のBuildState(生成状態)は機能ブロック712でBeingCompiled(コンパイル中)にセットされる。したがって、ConditionallyCompile(条件付きコンパイル)機能(コンパイラ42を呼出すか、呼出さないか)は構成要素のInterface(インターフェース)に対して呼出される。この機能はまた、Abort(打切り)、Done(実行)およびError(エラー)の一つの値を返す。返された値がAbort(打切り)であるならば、処理はステップ1で継続される。返された値がブロック713でDone(実行)であるならば、リファレンスは機能ブロック708でリストの最前列から取除かれ、処理は701に継続される。返された値がブロック714でError(エラー)であるならば、リファレンスがリストから取除かれ、機能PropagateError(エラー伝播)は、処理がブロック701に継続される前に、機能ブロック715で構成要素に呼出される。
これはBuild(生成)処理の第3段階である。ImplementationCompileList(インプリメンテーション・コンパイル・リスト)の各リファレンスは、第8図のフローチャートに示されるように処理される。この処理はブロック801から入り、リファレンスがImplementationCompileList(インプリメンテーション・コンパイル・リスト)の最前列から選択される。リストにリファレンスがこれ以上ないならば、処理はブロック802で終了する。リファレンスのBuildState(生成状態)が、ブロック803で決定されたようにUncertain(不確定)であるならば、BuildState(生成状態)は、処理がブロック801に継続される前に、機能ブロック804でCompiled(コンパイル済み)とセットされる。リファレンスのBuildState(生成状態)が、ブロック805で決定されたようにNeedToCompile(コンパイルを要する)ならば、構成要素は機能ブロック806でコンパイルされる。コンパイラ42から返される値は、Done(実行)およびErrors(エラー)である。返された値がブロック807でDone(実行)であるならば、リファレンスのBuildState(生成状態)は、処理がブロック801に継続される前に、機能ブロック804でCompiled(コンパイル済み)とセットされる。返された値がブロック808でError(エラー)であるならば、リファレンスのBuildState(生成状態)はCompileError(コンパイル・エラー)とセットされ、機能PropagateError(エラー伝播)は、処理がブロック801に継続される前に、機能ブロック809で構成要素に呼出される。リファレンスのBuildState(生成状態)がCompileError(コンパイル・エラー)またはUncertainError(不確定エラー)であるならば、何も実行されない。Implementation(インプリメンテーション)の処理はこの段階では順序に対して独立であることに留意されたい。これは、従属性がInterface(インターフェース)またはIsInline属性は真であるImplementation(インプリメンテーション)に対してのみあり得、これらは処理が完了しているからである。
コンパイラ42は、Compile(コンパイル)機能を介して呼出され、これらの2つは同義語として使用されてもよい。コンパイラ42は、ソース・テキストを処理し、可能な外部構成要素の名前を識別する。コンパイラ42は、次に、全ての構成要素に対するリファレンスのリストを得る。コンパイラは、構成要素の種類のような言語特有の知識を使用して、リストからリファレンスを除去する。それから、コンパイラは、テキストで識別された各外部構成要素のために、GetDeclaration(宣言の取得)と呼ばれる機能を呼出す。Compile(コンパイル)機能は、コンパイラ42を呼出す前に、構成要素に関する存在する全てのエラーをクリアする。これは、エラー特性から全てのエラー・メッセージをクリアし、プロジェクトのErrorList特性から全てのリファレンスも取除く。
コンパイラが、Interface(インターフェース)またはImplementation(インプリメンテーション)をコンパイルするために呼出される前に、全ての存在するErrors(エラー)はクリアされる。これは、全てのエラー・メッセージを更新していることを保証する。Interface(インターフェース)とImplementation(インプリメンテーション)間の組込み従属性およびエラーが伝播されるという事実のために、同一の生成においてInterface(インターフェース)およびImplementation(インプリメンテーション)の両者のコンパイラ・エラーを得ることは決してできない。
機能ConditionallyCompile(条件付きコンパイル)は、第10A図および第10B図に示されており、これを参照する。構成要素AのSourceReference(ソース・リファレンス)における各構成要素Bが1001で処理される。全ての構成要素Bは、ブロック1002によって示されるように、処理されると、処理は構成要素Bについては完了し、処理は、構成要素Aをコンパイルするために第10B図に進む。構成要素BのBuildState(生成状態)が、ブロック1003に示されるように、BeingCompiled(コンパイル中)またはNeedToCompile(コンパイルを要する)ならば、構成要素のBuildState(生成状態)はBeingCompiled(コンパイル中)とセットされ、構成要素は機能ブロック1004でコンパイルされる。Compile(コンパイル)機能は、Done(実行)、Abort(打切り)またはError(エラー)の一つの値を返すことができる。値Done(実行)がブロック1005で返されると、処理はブロック1001に継続する。
エラーを後処理するための方法はBuild(生成)処理の第4段階である。どのようなエラーでも生成中に発生したならば、PostProcessEroors(エラーの後処理)は生成の終わりで呼出される。InternalErrorList(内部エラー・リスト)の各リファレンスに関しては、リファレンスのBuildState(生成状態)がCompileError(コンパイル・エラー)ならば、このBuildState(生成状態)はNeedToCompileコンパイルを要する)に変更される。リファレンスのBuildState(生成状態)がUncertainError(不確定エラー)ならば、BuildState(生成状態)はCompiled(コンパイル済み)に変更される。
Claims (20)
- 各構成要素がそれらに関連付けられたインターフェース情報とインプリメンテーション情報とを有し、複数の構成要素の集合として記述されたコンピュータ・プログラムを含むデータベース、ユーザインターフェースを使用して各前記構成要素を変更することを可能とする編集手段、前記各構成要素をコンパイルすることが可能なコンパイラ、及び前記コンピュータ・プログラムからコンピュータに実装されるプログラムを生成する生成手段を備えたコンピュータ・システムにおける、前記編集手段によって前記コンピュータ・プログラム内の複数の構成要素が変更された後で、構成要素が変更されたことを示す記録を有する構成要素を前記データベースが含む場合に実施可能な方法であって、前記生成手段によって実行される方法は、
前記コンパイラを使用して構成要素の従属性を計算し、クライアント・リストおよび参照(リファレンス)リストを生成するステップと、
(a)インターフェース・コンパイル・リストとインプリメンテーション・コンパイル・リストとを生成するステップと
(b)前記編集手段によって一つの構成要素の前記インターフェース情報が変更されていた場合に、
(b1)前記一つの構成要素へのリファレンスを、前記インターフェース・コンパイル・リスト上に配置するステップと
(b2)前記一つの構成要素の前記インターフェース情報に従属しているインターフェース情報を他の複数の構成要素が有しているかを、前記生成されたクライアント・リストの従属性を使用して決定し、他の構成要素へのリファレンスを前記インターフェース・コンパイル・リストに追加するステップと、
(b3)ステップ(b2)で決定された各構成要素に対して、ステップ(b2)を再帰的に、決定される他の構成要素がなくなるまで繰り返すステップと、
(c)前記編集手段によって一つの構成要素の前記インプリメンテーション情報が変更されていた場合に、
(c1)前記一つの構成要素のインプリメンテーション情報に他の構成要素が従属していない場合、前記一つの構成要素のリファレンスを前記インプリメンテーション・コンパイルリストに配置し、前記一つの構成要素のインプリメンテーション情報に他の構成要素が従属している場合、インプリメンテーション情報が変更された構成要素へのリファレンスを、前記インターフェース・コンパイル・リストに配置するステップと、
(c2)前記一つの構成要素のインプリメンテーション情報に他の構成要素が従属している場合、前記一つの構成要素のインプリメンテーション情報に従属しているインターフェース情報を有する他の構成要素を、前記生成されたクライアント・リストの従属性を使用して決定し、前記他の構成要素へのリファレンスを、前記インターフェース・コンパイル・リスト上に追加するステップと、
(c3)ステップ(c2)で決定された各構成要素に対して、ステップ(c2)を再帰的に、決定される他の構成要素がなくなるまで繰り返すステップと、
(d)前記インターフェース・コンパイル・リストを参照して、前記コンパイラに、前記データベースに含まれ、前記インターフェース・コンパイル・リスト内のリファレンスを有する全ての構成要素の前記インターフェース情報をコンパイルさせるステップと、
(e)前記インプリメンテーション・コンパイル・リストを参照して、前記コンパイラに、前記データベースに含まれ、前記インプリメンテーション・コンパイル・リスト内のリファレンスを有する全ての構成要素の前記インプリメンテーション情報をコンパイルさせるステップと
を備えることを特徴とする方法。 - 請求項1に記載の方法であって、
前記ステップ(b)は、さらに
(b4)前記一つの構成要素の前記インターフェース情報に従属しているインプリメンテーション情報を有している他の構成要素を、前記生成されたクライアント・リストの従属性を使用して決定し、インプリメンテーション情報を有していると決定された他の構成要素それぞれへのリファレンスをインプリメンテーション・コンパイル・リストに追加するステップと、
(b5)ステップ(b4)で決定された各構成要素に対して、ステップ(b4)を再帰的に、決定される他の構成要素がなくなるまで繰り返すステップと
を備えることを特徴とする方法。 - 請求項1に記載の方法であって、
前記ステップ(c)は、さらに
(c4)他の構成要素が前記一つの構成要素のインプリメンテーション情報に従属している場合に、インプリメンテーション情報が変更された前記一つの構成要素の前記インプリメンテーション情報に従属しているインプリメンテーション情報を有している他の構成要素を、前記生成されたクライアント・リストの従属性を使用して決定し、インプリメンテーション情報を有している他の構成要素それぞれへのリファレンスをインプリメンテーション・コンパイル・リストに追加するステップと、
(c5)ステップ(c4)で決定された各構成要素に対して、ステップ(c4)を再帰的に、決定される他の構成要素がなくなるまで繰り返すステップと
を備えることを特徴とする方法。 - 請求項1に記載の方法であって、前記ステップ(b2)は、前記一つの構成要素のクライアント・リストを調べ、前記他の構成要素を決定することを備えることを特徴とする方法。
- 請求項1に記載の方法であって、前記ステップ(d)は、
(d1)前記インターフェース・コンパイル・リスト上にリファレンスを有する各構成要素に対して、当該各構成要素が従属する他の複数の構成要素を、前記生成されたクライアント・リストの従属性を使用して決定するステップと、
(d2)ステップ(d1)で決定された他の複数の構成要素に対して、当該他の複数の構成要素それぞれがコンパイルされたかを決定し、コンパイルされていない場合に、前記コンパイラに、当該他の複数の構成要素それぞれをコンパイルさせるステップと、
(d3)ステップ(d1)で決定された全ての他の複数の構成要素がコンパイルされた場合に、前記コンパイラに、インターフェース・コンパイル・リスト上にリファレンスを有する各構成要素をコンパイルさせるステップと
を備えることを特徴とする方法。 - 請求項5に記載の方法であって、前記ステップ(d2)で、前記コンパイラに他の複数の構成要素それぞれをコンパイルさせる前記ステップは、
(d2−1)ステップ(d1)で決定された他の複数の構成要素が従属する他の構成要素を決定するステップと、
(d2−2)ステップ(d2−1)で決定された他の構成要素それぞれについて、当該他の複数の構成要素が、今回コンパイルされたかを決定し、コンパイルされていない場合に、前記コンパイラに、ステップ(d2−1)で決定された他の構成要素それぞれをコンパイルさせるステップと、
(d2−3)ステップ(d2−1)で決定された全ての他の複数の構成要素がコンパイルされた場合に、前記コンパイラに、ステップ(d1)で決定された他の複数の構成要素をコンパイルさせるステップと
を備えることを特徴とする方法。 - 請求項5に記載の方法であって、各構成要素は、当該構成要素のコンパイル状態を表すBuildState(生成状態)値を有し、前記ステップ(d2)は、ステップ(d1)で決定された他の複数の構成要素の前記BuildState(生成状態)を調べ、当該他の複数の構成要素が今回コンパイルされたか否かを決定することを備えることを特徴とする方法。
- 請求項7に記載の方法であって、前記ステップ(d2)は、前記コンパイル処理が成功した場合に、その他の構成要素を処理する前に、コンパイルが成功した構成要素がコンパイル済みであることを表す、構成要素についての前記BuildState(生成状態)値を、前記コンパイラが設定することを備えることを特徴とする方法。
- 請求項7に記載の方法であって、前記ステップ(d2)は、前記コンパイラが、
前記コンパイル処理が成功しなかった場合に、
エラーが発生したことを表す、構成要素についての前記BuildState(生成状態)値を設定し、
前記インターフェース・コンパイル・リストからエラーが発生した構成要素が従属している構成要素への前記リファレンスを取り除く
ことを備えることを特徴とする方法。 - 請求項1に記載の方法であって、
各構成要素は、当該構成要素のコンパイル状態を表すBuildState(生成状態)値を有し、前記ステップ(e)は、
(e1)前記インプリメンテーション・コンパイル・リスト内にリファレンスを有する各構成要素であって、当該構成要素の前記BuildState(生成状態)値が、コンパイル状態がUncertain(不確定)であることを表している当該構成要素に対して、前記コンパイラが、前記BuildState(生成状態)値を、コンパイル済みを表す値に、設定すること、
(e2)前記インプリメンテーション・コンパイル・リスト内にリファレンスを有する各構成要素であって、当該構成要素の前記BuildState(生成状態)値が、コンパイル状態がNeedToCompile(コンパイルを要する)であることを表している当該構成要素に対して、前記生成手段が前記コンパイラにコンパイルさせること、および
(e3)前記インプリメンテーション・コンパイル・リスト内にリファレンスを有する各構成要素であって、当該各構成要素のBuildState(生成状態)値が、エラーが発生したことを表している当該各構成要素を、前記生成手段がスキップすること
を備えることを特徴とする方法。 - 各構成要素がそれらに関連付けられたインターフェース情報とインプリメンテーション情報とを有し、複数の構成要素の集合として記述されたコンピュータ・プログラムを含むデータベース、各前記構成要素を編集することを可能とする編集手段、前記各構成要素をコンパイルすることが可能なコンパイラ、及び、前記コンピュータ・プログラムからコンピュータに実装されるプログラムを生成する生成手段を備えたコンピュータ・システムであって、前記編集手段によって前記コンピュータ・プログラム内の複数の構成要素が変更された後で、構成要素が変更されたことを示す記録を有する構成要素を前記データベースが含む場合に、前記生成手段は、
前記コンパイラを使用して構成要素の従属性を計算し、クライアント・リストおよび参照(リファレンス)リストを生成する動作と、
インターフェース・コンパイル・リストとインプリメンテーション・コンパイル・リストとを生成する動作と、
前記編集手段によって一つの構成要素のインターフェース情報が変更されていた場合に、
(a1)前記一つの構成要素へのリファレンスを、前記インターフェース・コンパイル・リスト上に配置する動作と、
(a2)前記生成されたクライアント・リストの従属性を使用して、前記一つの構成要素の前記インターフェース情報に従属しているインターフェース情報を有する他の複数の構成要素を決定し、前記他の構成要素へのリファレンスを、前記インターフェース・コンパイル・リスト上に追加する動作と、
(a3)手段(a2)で決定された各構成要素に対して動作(a2)を再帰的に、決定される他の構成要素がなくなるまで繰り返す動作と
を実行する動作と、
構成要素の前記インプリメンテーション情報が変更されていた場合に、
(b1)前記一つの構成要素のインプリメンテーション情報に他の構成要素が従属していない場合、インプリメンテーション情報が変更された構成要素へのリファレンスを、前記インプリメンテーション・コンパイル・リストに配置し、前記一つの構成要素のインプリメンテーション情報に他の構成要素が従属している場合、インプリメンテーション情報が変更された構成要素へのリファレンスを、前記インターフェース・コンパイル・リストに配置する動作と、
(b2)インプリメンテーション情報が変更された構成要素の前記インプリメンテーション情報に従属している他の複数の構成要素がある場合、インプリメンテーション情報が変更された構成要素の前記インプリメンテーション情報に従属しているインターフェース情報を有する他の構成要素を、前記生成されたクライアント・リストの従属性を使用して決定し、決定された他の構成要素それぞれへのリファレンスをインターフェース・コンパイル・リストに追加する動作と、
(b3)動作(b2)で決定された各構成要素に対して、動作(b2)を再帰的に、決定される他の構成要素がなくなるまで繰り返す動作と
を実行する動作と、
(c)前記インターフェース・コンパイル・リストを参照して、前記コンパイラに、前記データベースに含まれ、前記インターフェース・コンパイル・リスト内にリファレンスを有する全ての構成要素の前記インターフェース情報をコンパイルさせる動作と、
(d)前記インプリメンテーション・コンパイル・リストを参照して、前記コンパイラに、前記データベースに含まれ、前記インプリメンテーション・コンパイル・リスト内にリファレンスを有する全ての構成要素の前記インプリメンテーション情報をコンパイルさせる動作と
を実行することを特徴とするコンピュータ・システム。 - 請求項11に記載のコンピュータ・システムであって、
前記生成手段は、さらに
(a4)他の複数の構成要素が、前記一つの構成要素の前記インターフェース情報に従属しているインプリメンテーション情報を有しているかを、前記生成されたクライアント・リストの従属性を使用して決定し、インプリメンテーション情報を有していると決定された他の構成要素それぞれへのリファレンスをインプリメンテーション・コンパイル・リストに追加する動作と、
(a5)動作(a4)で決定された各構成要素に対して、動作(a4)を再帰的に、決定される他の構成要素がなくなるまで繰り返す動作と
を実行することを特徴とするコンピュータ・システム。 - 請求項11に記載のコンピュータ・システムであって、
前記生成手段は、さらに、
(c4)インプリメンテーション情報が変更された構成要素の前記インプリメンテーション情報に従属しているインプリメンテーション情報を有している他の複数の構成要素を、前記生成されたクライアント・リストの従属性を使用して決定し、インプリメンテーション情報を有している他の構成要素それぞれへのリファレンスをインプリメンテーション・コンパイル・リストに追加する動作と、
(c5)手段(c4)で決定された各構成要素に対して、動作(b4)を再帰的に、決定される他の構成要素がなくなるまで繰り返す動作と
を実行することを特徴とするコンピュータ・システム。 - 請求項11に記載のコンピュータ・システムであって、前記一つの構成要素の前記インターフェース情報に従属しているインターフェース情報を有する他の複数の構成要素を決定させる動作(a2)は、前記一つの構成要素内のクライアント・リストを調べ、前記他の構成要素を決定することを特徴とする装置。
- 請求項11に記載のコンピュータ・システムであって、前記コンパイラに前記インターフェース情報をコンパイルさせる前記動作(c)は、
(c1)前記インターフェース・コンパイル・リスト上にリファレンスを有する各構成要素に対して実施可能な、当該構成要素が従属する他の複数の構成要素を、前記生成されたクライアント・リストの従属性を使用して決定する動作と、
(c2)前記動作(c1)で決定された他の複数の構成要素に対して実施可能な、当該他の複数の構成要素それぞれがコンパイルされたかを決定し、コンパイルされていない場合に、前記コンパイラに、当該他の複数の構成要素それぞれをコンパイルさせる動作と、
(c3)前記動作(c1)で決定された全ての他の複数の構成要素がコンパイルされた場合に実施可能な、インターフェース・コンパイル・リスト上にリファレンスを有する各構成要素を前記コンパイラにコンパイルさせる動作と
を備えることを特徴とするコンピュータ・システム。 - 請求項15に記載のコンピュータ・システムであって、
前記コンパイラに当該構成要素が従属する他の複数の構成要素それぞれをコンパイルさせる動作(c2)は、
(c2−1)前記他の複数の構成要素が従属する他の構成要素を決定する動作と、
(c2−2)前記動作(c2−1)で決定された他の構成要素それぞれについて、当該他の複数の構成要素が、今回コンパイルされたかを決定し、コンパイルされていない場合に実施可能な、前記コンパイラに、前記決定された他の構成要素それぞれをコンパイルさせる動作と、
(c2−3)前記動作(c2−1)で決定された全ての他の複数の構成要素がコンパイルされた場合に実施可能な、前記コンパイラに前記動作(c1)で決定された他の複数の構成要素をコンパイルさせる動作と
を備えることを特徴とするコンピュータ・システム。 - 請求項15に記載のコンピュータ・システムであって、各構成要素は、当該構成要素のコンパイル状態を表すBuildState(生成状態)値を有し、他の複数の構成要素それぞれが今回コンパイルされたかを決定する前記動作(c2)は、前記動作(c1)で決定された他の複数の構成要素の前記BuildState(生成状態)を調べ、当該他の複数の構成要素が今回コンパイルされたか否かを決定する動作を備えることを特徴とするコンピュータ・システム。
- 請求項17に記載のコンピュータ・システムであって、他の複数の構成要素が今回コンパイルされたかを決定する前記動作は、
前記コンパイル処理が成功した場合に、その他の構成要素を処理する前に、構成要素の前記BuildState(生成状態)値を、コンパイルが成功した構成要素がコンパイル済みであることを表すように設定する前記コンパイラの動作を備えることを特徴とするコンピュータ・システム。 - 請求項17に記載のコンピュータ・システムであって、他の複数の構成要素が今回コンパイルされたかを決定する動作は、前記コンパイル処理が成功しなかった場合に、構成要素の前記BuildState(生成状態)値をエラーが発生したことを表すように設定し、前記インターフェース・コンパイル・リストからエラーが発生した構成要素への前記リファレンスを取り除く、前記コンパイラの動作を備えることを特徴とするコンピュータ・システム。
- 請求項11に記載のコンピュータ・システムであって、
各構成要素は、当該構成要素のコンパイル状態を表すBuildState(生成状態)値を有し、前記コンパイラに前記インプリメンテーション情報をコンパイルさせる動作は、
前記インプリメンテーション・コンパイル・リスト内にリファレンスを有する各構成要素であって、当該構成要素の前記BuildState(生成状態)値が、コンパイル状態がUncertain(不確定)であることを表している当該構成要素に対して実施可能な、前記BuildState(生成状態)値を、コンパイル済みを表す値に設定する前記コンパイラの動作と、
前記インプリメンテーション・コンパイル・リスト内にリファレンスを有する各構成要素であって、当該構成要素の前記BuildState(生成状態)値が、コンパイル状態がNeedToCompile(コンパイルを要する)であることを表している当該構成要素に対して、前記コンパイラにコンパイルさせる前記生成手段の動作と、
前記インプリメンテーション・コンパイル・リスト内にリファレンスを有する各構成要素であって、当該各構成要素のBuildState(生成状態)値が、エラーが発生したことを表している当該各構成要素をスキップする前記生成手段の動作と
を備えることを特徴とするコンピュータ・システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/085,487 US5758160A (en) | 1993-06-28 | 1993-06-28 | Method and apparatus for building a software program using dependencies derived from software component interfaces |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8502762A Division JPH10502063A (ja) | 1994-06-27 | 1995-06-16 | 1,2−ブチレンオキシドの製法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007012088A JP2007012088A (ja) | 2007-01-18 |
JP4195479B2 true JP4195479B2 (ja) | 2008-12-10 |
Family
ID=22191926
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7502762A Pending JPH08512152A (ja) | 1993-06-28 | 1994-01-03 | インクリメンタル生成システム |
JP2006239370A Expired - Lifetime JP4195479B2 (ja) | 1993-06-28 | 2006-09-04 | インクリメンタル生成システム |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7502762A Pending JPH08512152A (ja) | 1993-06-28 | 1994-01-03 | インクリメンタル生成システム |
Country Status (8)
Country | Link |
---|---|
US (1) | US5758160A (ja) |
EP (1) | EP0688448B1 (ja) |
JP (2) | JPH08512152A (ja) |
CN (1) | CN1105802A (ja) |
AU (1) | AU6018794A (ja) |
CA (1) | CA2144874C (ja) |
DE (1) | DE69406113D1 (ja) |
WO (1) | WO1995000901A1 (ja) |
Families Citing this family (94)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6070006A (en) * | 1993-04-14 | 2000-05-30 | Kabushiki Kaisha Toshiba | Object oriented software development tool for creation of new class(es) |
US5854932A (en) * | 1995-08-17 | 1998-12-29 | Microsoft Corporation | Compiler and method for avoiding unnecessary recompilation |
JPH09134282A (ja) * | 1995-11-08 | 1997-05-20 | Hitachi Ltd | プログラム作成方法 |
US6282561B1 (en) * | 1995-12-07 | 2001-08-28 | Microsoft Corporation | Method and system for resource management with independent real-time applications on a common set of machines |
US6526565B1 (en) * | 1995-12-21 | 2003-02-25 | International Business Machines Corporation | Packaging algorithm for providing object oriented applications having reduced footprints |
US5848274A (en) * | 1996-02-29 | 1998-12-08 | Supercede, Inc. | Incremental byte code compilation system |
US5764989A (en) * | 1996-02-29 | 1998-06-09 | Supercede, Inc. | Interactive software development system |
DE19615683A1 (de) * | 1996-04-22 | 1997-10-23 | Sel Alcatel Ag | Verfahren und Steuereinrichtung für eine graphische Steuerung von Abläufen in einem Netzwerkmanagementsystem |
US6434739B1 (en) | 1996-04-22 | 2002-08-13 | International Business Machines Corporation | Object oriented framework mechanism for multi-target source code processing |
US6067413A (en) * | 1996-06-13 | 2000-05-23 | Instantations, Inc. | Data representation for mixed-language program development |
JP3763937B2 (ja) * | 1996-06-28 | 2006-04-05 | 富士通株式会社 | オブジェクト指向プログラミング装置、およびオブジェクト結合プログラム記憶媒体 |
JP3427918B2 (ja) * | 1996-07-02 | 2003-07-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム開発支援システム及び支援方法 |
US6094528A (en) * | 1996-10-24 | 2000-07-25 | Sun Microsystems, Inc. | Method and apparatus for system building with a transactional interpreter |
US6901579B1 (en) * | 1996-11-07 | 2005-05-31 | Fujitsu Limited | Generation of source code from classes and maintaining the comment that indicates the role of the class in the generated source code |
US6473768B1 (en) * | 1996-11-12 | 2002-10-29 | Computer Associates Think, Inc. | System and method for modifying an executing application |
US5950000A (en) * | 1996-12-06 | 1999-09-07 | Sun Microsystems, Inc. | Integrated of a third party software tool |
CA2224466C (en) * | 1997-01-09 | 2003-12-23 | Mitel Corporation | Transfer of basic knowledge to agents |
US5907707A (en) * | 1997-01-14 | 1999-05-25 | International Business Machines Corporation | Object model for Java |
US6212673B1 (en) * | 1997-03-31 | 2001-04-03 | International Business Machines Corporation | Component-neutral builder interface |
US6023578A (en) * | 1997-05-09 | 2000-02-08 | International Business Macines Corporation | Systems, methods and computer program products for generating an object oriented application for an object oriented environment |
US5987247A (en) * | 1997-05-09 | 1999-11-16 | International Business Machines Corporation | Systems, methods and computer program products for building frameworks in an object oriented environment |
CA2296061C (en) * | 1997-07-25 | 2004-08-24 | British Telecommunications Public Limited Company | Software system generation |
EP0945812A1 (en) | 1998-03-23 | 1999-09-29 | Application Building Blocks Limited | Data processing systems |
US6735757B1 (en) * | 1998-06-04 | 2004-05-11 | Gateway, Inc. | Apparatus and method for checking component compatibility in a build to order computer system |
KR100311231B1 (ko) | 1998-08-11 | 2001-11-30 | 오길록 | 객체지향분석정보를이용한프레임워크모델링장치및그방법 |
US6167563A (en) * | 1998-09-17 | 2000-12-26 | Unisys Corporation | Method and system for building components in a framework useful in developing integrated business-centric applications |
US6449050B1 (en) | 1998-10-05 | 2002-09-10 | Canon Kabushiki Kaisha | Code generator for printer driver |
US6173441B1 (en) * | 1998-10-16 | 2001-01-09 | Peter A. Klein | Method and system for compiling source code containing natural language instructions |
US6272674B1 (en) * | 1998-12-14 | 2001-08-07 | Nortel Networks Limited | Method and apparatus for loading a Java application program |
US7526468B2 (en) * | 1999-01-08 | 2009-04-28 | Computer Associates Think, Inc. | System and method for recursive path analysis of DBMS procedures |
US7065717B1 (en) | 1999-01-19 | 2006-06-20 | International Business Machines Corporation | Tree-based interface apparatus for display of call dependencies and method therefor |
US6370683B1 (en) * | 1999-05-07 | 2002-04-09 | Arnold Sobers | Computer software for generating flowchart images of a source program |
WO2000073893A2 (en) * | 1999-05-26 | 2000-12-07 | Sobrio International Incorporated | Apparatus and method for re-using and tracking digital assets |
US6487713B1 (en) | 1999-09-24 | 2002-11-26 | Phoenix Technologies Ltd. | Software development system that presents a logical view of project components, facilitates their selection, and signals missing links prior to compilation |
US6591413B1 (en) | 1999-10-07 | 2003-07-08 | International Business Machines Corporation | Method and apparatus in a data processing system for faster notification of errors in a software build |
US6757893B1 (en) | 1999-12-17 | 2004-06-29 | Canon Kabushiki Kaisha | Version control system for software code |
EP1266284A4 (en) * | 2000-03-20 | 2003-08-06 | Phoenix Tech Ltd | DEVELOPMENT SOFTWARE SYSTEM PRESENTING A LOGIC VIEW OF PROJECT COMPONENTS, FACILITATING THEIR SELECTION, AND MISSING SIGNAL LINKS BEFORE COMPILATION |
US7334216B2 (en) * | 2000-04-04 | 2008-02-19 | Sosy, Inc. | Method and apparatus for automatic generation of information system user interfaces |
US6681383B1 (en) | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
US6658642B1 (en) * | 2000-06-21 | 2003-12-02 | International Business Machines Corporation | System, method and program product for software development |
US7853922B1 (en) * | 2001-05-15 | 2010-12-14 | The Mathworks, Inc. | Data objects for model-based design |
JP2002082922A (ja) * | 2001-06-14 | 2002-03-22 | Digital Vision Laboratories Corp | 並列分散処理方法 |
US7080352B2 (en) * | 2002-01-30 | 2006-07-18 | Dloo, Incorporated | Method and system for creating programs using code having coupled syntactic and semantic relationships |
US7133894B2 (en) * | 2002-03-12 | 2006-11-07 | International Business Machines Corporation | Method, apparatus, and program for synchronous remote builds |
US7703077B2 (en) * | 2002-04-30 | 2010-04-20 | Microsoft Corporation | Programming model to detect deadlocks in concurrent programs |
US7203924B2 (en) * | 2002-04-30 | 2007-04-10 | Microsoft Corporation | Behavioral analysis for message-passing application programs |
US7360201B2 (en) * | 2002-12-09 | 2008-04-15 | International Business Machines Corporation | Automated analysis and identification of options in project management |
EP1465069B1 (en) | 2003-04-01 | 2017-01-25 | Sap Se | Method and computer system for activation of source files |
US20050144615A1 (en) * | 2003-12-29 | 2005-06-30 | Shu-Chuan Chen | Modularized custom-developed software package producing method and system |
US7337428B2 (en) * | 2004-02-05 | 2008-02-26 | Microsoft Corporation | Automatic batching of tasks in a build process |
US7797669B1 (en) | 2004-02-13 | 2010-09-14 | Microsoft Corporation | Analysis of distributed software systems via specification substitution |
US7765520B2 (en) * | 2004-05-21 | 2010-07-27 | Bea Systems, Inc. | System and method for managing cross project dependencies at development time |
US7757212B2 (en) * | 2004-05-21 | 2010-07-13 | Bea Systems, Inc. | System and method for managing cross project dependencies at development time |
US7640533B1 (en) * | 2005-03-30 | 2009-12-29 | Emc Corporation | System and methods for defining a software build |
US20070006166A1 (en) * | 2005-06-20 | 2007-01-04 | Seagate Technology Llc | Code coverage for an embedded processor system |
US7895572B2 (en) * | 2005-08-15 | 2011-02-22 | Sap Aktiengesellschaft | Systems and methods for enterprise software management |
US7949995B2 (en) * | 2005-09-14 | 2011-05-24 | Sadlek James M | Visual programming method |
US7721272B2 (en) * | 2005-12-12 | 2010-05-18 | Microsoft Corporation | Tracking file access patterns during a software build |
US7797689B2 (en) * | 2005-12-12 | 2010-09-14 | Microsoft Corporation | Using file access patterns in providing an incremental software build |
US20070234278A1 (en) * | 2006-03-02 | 2007-10-04 | Microsoft Corporation | Managing source code in a model-based development environment |
US9361137B2 (en) | 2006-03-10 | 2016-06-07 | International Business Machines Corporation | Managing application parameters based on parameter types |
US7739267B2 (en) * | 2006-03-10 | 2010-06-15 | International Business Machines Corporation | Classification and sequencing of mixed data flows |
WO2007123958A2 (en) * | 2006-04-18 | 2007-11-01 | Collabnet, Inc. | Systems and methods for on- demand deployment of software build and test environments |
KR100834676B1 (ko) * | 2006-08-08 | 2008-06-02 | 삼성전자주식회사 | 소프트웨어 프로젝트 빌드 방법 |
US8381180B2 (en) * | 2006-09-08 | 2013-02-19 | Sap Ag | Visually exposing data services to analysts |
US8332827B2 (en) | 2006-12-01 | 2012-12-11 | Murex S.A.S. | Produce graph oriented programming framework with scenario support |
US8307337B2 (en) | 2006-12-01 | 2012-11-06 | Murex S.A.S. | Parallelization and instrumentation in a producer graph oriented programming framework |
US8191052B2 (en) | 2006-12-01 | 2012-05-29 | Murex S.A.S. | Producer graph oriented programming and execution |
US8160999B2 (en) * | 2006-12-13 | 2012-04-17 | International Business Machines Corporation | Method and apparatus for using set based structured query language (SQL) to implement extract, transform, and load (ETL) splitter operation |
US8219518B2 (en) | 2007-01-09 | 2012-07-10 | International Business Machines Corporation | Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process |
KR100871563B1 (ko) * | 2007-02-14 | 2008-12-02 | 삼성전자주식회사 | 컴포넌트 기반의 소프트웨어 개발을 위한 장치 및 방법 |
US8122428B2 (en) * | 2007-06-26 | 2012-02-21 | Analog Devices, Inc. | Methods and apparatus for automation and facilitating design of register maps |
US8122440B1 (en) * | 2007-09-26 | 2012-02-21 | Netapp, Inc. | Method and apparatus for enumerating external program code dependencies |
US8856752B2 (en) * | 2007-10-26 | 2014-10-07 | Microsoft Corporation | Monitoring asset state to enable partial build |
CN101546260B (zh) * | 2008-03-28 | 2012-07-11 | 国际商业机器公司 | 用于重构面向服务的应用的方法及其设备 |
US20100050156A1 (en) * | 2008-08-20 | 2010-02-25 | International Business Machines Corporation | Using build history information to optimize a software build process |
US20110239195A1 (en) * | 2010-03-25 | 2011-09-29 | Microsoft Corporation | Dependence-based software builds |
US9250866B2 (en) | 2011-06-20 | 2016-02-02 | Ebay Inc. | Systems and methods for incremental software deployment |
US8856724B2 (en) | 2011-06-20 | 2014-10-07 | Ebay Inc. | Systems and methods for incremental software development |
US9003383B2 (en) * | 2011-09-15 | 2015-04-07 | You Know Solutions, LLC | Analytic engine to parallelize serial code |
GB2506596A (en) * | 2012-10-02 | 2014-04-09 | Ibm | Managing a set of software modules in a runtime environment |
US10649424B2 (en) | 2013-03-04 | 2020-05-12 | Fisher-Rosemount Systems, Inc. | Distributed industrial performance monitoring and analytics |
US9558220B2 (en) | 2013-03-04 | 2017-01-31 | Fisher-Rosemount Systems, Inc. | Big data in process control systems |
US10386827B2 (en) * | 2013-03-04 | 2019-08-20 | Fisher-Rosemount Systems, Inc. | Distributed industrial performance monitoring and analytics platform |
US10551799B2 (en) | 2013-03-15 | 2020-02-04 | Fisher-Rosemount Systems, Inc. | Method and apparatus for determining the position of a mobile control device in a process plant |
CN103294478A (zh) * | 2013-06-17 | 2013-09-11 | 宁夏新航信息科技有限公司 | 一种计算机软件的智能化编程方法 |
US20150082298A1 (en) * | 2013-09-19 | 2015-03-19 | Qiu Shi WANG | Packaging and deploying hybrid applications |
US10261889B2 (en) | 2014-06-25 | 2019-04-16 | Microsoft Technology Licensing, Llc | Techniques for edit-and-continue and enhanced optimized debugging on optimized code |
US9442707B2 (en) | 2014-06-25 | 2016-09-13 | Microsoft Technology Licensing, Llc | Incremental whole program compilation of code |
US10817552B2 (en) | 2017-03-27 | 2020-10-27 | Microsoft Technology Licensing, Llc | Input-output example encoding |
US10795645B2 (en) | 2017-03-27 | 2020-10-06 | Microsoft Technology Licensing, Llc | Neural network for program synthesis |
CN108920217B (zh) * | 2018-03-30 | 2021-12-03 | 惠州市德赛西威汽车电子股份有限公司 | 一种减少不可重入函数的重构方法 |
US11656860B2 (en) * | 2021-03-26 | 2023-05-23 | Microsoft Technology Licensing, Llc | Bundling data packages based on usage patterns for download control |
KR102649150B1 (ko) * | 2021-04-23 | 2024-03-18 | 연세대학교 산학협력단 | 다중 오류 프로그램 소스 코드 자동 수정 장치 및 방법 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4589068A (en) * | 1983-10-03 | 1986-05-13 | Digital Equipment Corporation | Segmented debugger |
US4943932A (en) * | 1986-11-25 | 1990-07-24 | Cimflex Teknowledge Corporation | Architecture for composing computational modules uniformly across diverse developmental frameworks |
US4809170A (en) * | 1987-04-22 | 1989-02-28 | Apollo Computer, Inc. | Computer device for aiding in the development of software system |
US4910663A (en) * | 1987-07-10 | 1990-03-20 | Tandem Computers Incorporated | System for measuring program execution by replacing an executable instruction with interrupt causing instruction |
US4953084A (en) * | 1987-11-16 | 1990-08-28 | Hewlett-Packard Company | Method and apparatus using variable ranges to support symbolic debugging of optimized code |
US5129086A (en) * | 1988-11-29 | 1992-07-07 | International Business Machines Corporation | System and method for intercommunicating between applications and a database manager |
US5193190A (en) * | 1989-06-26 | 1993-03-09 | International Business Machines Corporation | Partitioning optimizations in an optimizing compiler |
US5193191A (en) * | 1989-06-30 | 1993-03-09 | Digital Equipment Corporation | Incremental linking in source-code development system |
US5201050A (en) * | 1989-06-30 | 1993-04-06 | Digital Equipment Corporation | Line-skip compiler for source-code development system |
US5182806A (en) * | 1989-06-30 | 1993-01-26 | Digital Equipment Corporation | Incremental compiler for source-code development system |
US5325531A (en) * | 1989-06-30 | 1994-06-28 | Digital Equipment Corporation | Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines |
US5170465A (en) * | 1989-06-30 | 1992-12-08 | Digital Equipment Corporation | Incremental-scanning compiler for source-code development system |
US5124989A (en) * | 1990-01-08 | 1992-06-23 | Microsoft Corporation | Method of debugging a computer program |
US5204960A (en) * | 1990-01-08 | 1993-04-20 | Microsoft Corporation | Incremental compiler |
US5140671A (en) * | 1990-01-26 | 1992-08-18 | International Business Machines Corporation | Expert system debugger |
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 |
US5187789A (en) * | 1990-06-11 | 1993-02-16 | Supercomputer Systems Limited Partnership | Graphical display of compiler-generated intermediate database representation |
US5325533A (en) * | 1993-06-28 | 1994-06-28 | Taligent, Inc. | Engineering system for modeling computer programs |
US5519866A (en) * | 1993-06-28 | 1996-05-21 | Taligent, Inc. | Method and apparatus of incrementally linking components of a modeled computer program |
-
1993
- 1993-06-28 US US08/085,487 patent/US5758160A/en not_active Expired - Lifetime
-
1994
- 1994-01-03 DE DE69406113T patent/DE69406113D1/de not_active Expired - Lifetime
- 1994-01-03 JP JP7502762A patent/JPH08512152A/ja active Pending
- 1994-01-03 WO PCT/US1994/000041 patent/WO1995000901A1/en active IP Right Grant
- 1994-01-03 AU AU60187/94A patent/AU6018794A/en not_active Abandoned
- 1994-01-03 CA CA002144874A patent/CA2144874C/en not_active Expired - Lifetime
- 1994-01-03 EP EP94906498A patent/EP0688448B1/en not_active Expired - Lifetime
- 1994-01-03 CN CN94190017.7A patent/CN1105802A/zh active Pending
-
2006
- 2006-09-04 JP JP2006239370A patent/JP4195479B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH08512152A (ja) | 1996-12-17 |
WO1995000901A1 (en) | 1995-01-05 |
CN1105802A (zh) | 1995-07-26 |
CA2144874A1 (en) | 1995-01-05 |
AU6018794A (en) | 1995-01-17 |
DE69406113D1 (de) | 1997-11-13 |
JP2007012088A (ja) | 2007-01-18 |
EP0688448B1 (en) | 1997-10-08 |
CA2144874C (en) | 2000-07-18 |
EP0688448A1 (en) | 1995-12-27 |
US5758160A (en) | 1998-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4195479B2 (ja) | インクリメンタル生成システム | |
EP0664027B1 (en) | Program modeling system | |
US5956479A (en) | Demand based generation of symbolic information | |
US5519866A (en) | Method and apparatus of incrementally linking components of a modeled computer program | |
US7171646B2 (en) | Generating source code for object oriented elements with language neutral transient meta model and correlating display of names, symbols and code | |
US7055130B2 (en) | Methods and systems for identifying dependencies between object-oriented elements | |
US7055131B2 (en) | Methods and systems for animating the interaction of objects in an object oriented program | |
US6993759B2 (en) | Diagrammatic control of software in a version control system | |
US8042097B2 (en) | Automated semantic-based updates to modified code base | |
US7114149B2 (en) | Navigation links in generated documentation | |
US20050204344A1 (en) | Program analysis device, analysis method and program of same | |
US6976243B2 (en) | Method and system for developing source code and displaying linked elements found within the source code | |
JP2007511834A (ja) | リバーシブルなデザイン・ツリーの変換のための方法とシステム | |
KR20090042242A (ko) | 플라즈마 프로세싱 시스템 컴포넌트 분석 소프트웨어 및 이를 생성하기 위한 방법 및 시스템 | |
Mafi et al. | Regression test selection in test-driven development | |
Mirian-Hosseinabadi | Regression Test Selection in Test-Driven Development | |
II | User's Manual | |
Kolb et al. | Programming environments | |
Bendisposto | A framework for semantic-aware editors in eclipse | |
Navia | A quick introduction to the C language | |
Borrione et al. | EDISYN: A Language-Based Editor for High-level |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061215 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070710 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070817 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071106 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20071121 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20071121 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20071221 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080807 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080925 |
|
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: 20111003 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
RD15 | Notification of revocation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D15 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111003 Year of fee payment: 3 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D02 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121003 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131003 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |