JPH09218789A - 分割コンパイル方式 - Google Patents
分割コンパイル方式Info
- Publication number
- JPH09218789A JPH09218789A JP8022222A JP2222296A JPH09218789A JP H09218789 A JPH09218789 A JP H09218789A JP 8022222 A JP8022222 A JP 8022222A JP 2222296 A JP2222296 A JP 2222296A JP H09218789 A JPH09218789 A JP H09218789A
- Authority
- JP
- Japan
- Prior art keywords
- function
- compilation
- code
- changed
- information file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 17
- 230000006870 function Effects 0.000 claims description 103
- 238000010586 diagram Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 コンパイル時に無駄なコード生成を削減す
る。 【解決手段】 コンパイルした関数毎にオブジェクト情
報ファイル8を持たせ、前回以前のコンパイル時にソー
スコードを変換して得た中間語をこのオブジェクト情報
ファイル8に記録しておき、この中間語と今回のコンパ
イルでソースコードを変換して得た中間語を比較して変
更のあった関数を判別フェーズ5で判別し、変更された
関数のみコード生成フェーズ6でオブジェクトコードを
再生成し、変更の無い関数は前回以前のコンパイル時に
得たオブジェクトコードをコード生成フェーズ6でコピ
ーする。
る。 【解決手段】 コンパイルした関数毎にオブジェクト情
報ファイル8を持たせ、前回以前のコンパイル時にソー
スコードを変換して得た中間語をこのオブジェクト情報
ファイル8に記録しておき、この中間語と今回のコンパ
イルでソースコードを変換して得た中間語を比較して変
更のあった関数を判別フェーズ5で判別し、変更された
関数のみコード生成フェーズ6でオブジェクトコードを
再生成し、変更の無い関数は前回以前のコンパイル時に
得たオブジェクトコードをコード生成フェーズ6でコピ
ーする。
Description
【0001】
【発明の属する技術分野】本発明は、プログラムのコン
パイル方式に関するもので、特に、分割コンパイル方式
に関するものである。
パイル方式に関するもので、特に、分割コンパイル方式
に関するものである。
【0002】
【従来の技術】コンピュータプログラムのコンパイル
は、原始プログラムの解析を行い、それを基本的な要素
に分解し、中間語に変換する。さらに、この中間語に最
適化処理等を施してコード生成し、原始プログラムと等
価な目的プログラムを作り上げる。この作業を行うた
め、コンパイラは解析フェーズの間にいくつかの表を作
成する。これらの表は、解析フェーズ、コード生成フェ
ーズの中で使用される。
は、原始プログラムの解析を行い、それを基本的な要素
に分解し、中間語に変換する。さらに、この中間語に最
適化処理等を施してコード生成し、原始プログラムと等
価な目的プログラムを作り上げる。この作業を行うた
め、コンパイラは解析フェーズの間にいくつかの表を作
成する。これらの表は、解析フェーズ、コード生成フェ
ーズの中で使用される。
【0003】従来のコンパイル方式は、ソースファイル
単位で行っていた。例えば、ソースファイルにf,g,
hと複数の関数が含まれている場合、関数fに変更を加
えて、この変更が関数g,hに影響しなかったとして
も、関数fだけでなく関数g,hも無条件にコンパイル
し直してコードの生成を行い、オブジェクトファイルを
生成していた。
単位で行っていた。例えば、ソースファイルにf,g,
hと複数の関数が含まれている場合、関数fに変更を加
えて、この変更が関数g,hに影響しなかったとして
も、関数fだけでなく関数g,hも無条件にコンパイル
し直してコードの生成を行い、オブジェクトファイルを
生成していた。
【0004】
【発明が解決しようとする課題】上述したように、従来
のコンパイル方式では、ソースファイル単位でコンパイ
ルするため、複数の関数が含まれるソースファイルの中
のある関数に変更がある場合、変更していない関数も含
めて再コンパイルするので、変更していない関数に関し
ては、同じコードを2度作成するという手間が生じてい
たという問題がある。
のコンパイル方式では、ソースファイル単位でコンパイ
ルするため、複数の関数が含まれるソースファイルの中
のある関数に変更がある場合、変更していない関数も含
めて再コンパイルするので、変更していない関数に関し
ては、同じコードを2度作成するという手間が生じてい
たという問題がある。
【0005】また、従来はソースファイル単位でコンパ
イルを行っているため、複数の関数を含むソースファイ
ル内で関数毎に異なったコンパイルオプションの指定を
する場合、ソースコードにオプション指定のpragm
aを埋め込むことによって実現していた。しかし、pr
agma指定はコンパイラ依存なため、同じソースファ
イルを他のコンパイラでコンパイルしようとしても、コ
ンパイルできない。このように、ソースファイルは移植
性の無いものとなってしまうという問題がある。
イルを行っているため、複数の関数を含むソースファイ
ル内で関数毎に異なったコンパイルオプションの指定を
する場合、ソースコードにオプション指定のpragm
aを埋め込むことによって実現していた。しかし、pr
agma指定はコンパイラ依存なため、同じソースファ
イルを他のコンパイラでコンパイルしようとしても、コ
ンパイルできない。このように、ソースファイルは移植
性の無いものとなってしまうという問題がある。
【0006】さらに、コメントの変更、可換な演算子の
交換、あるいは単なるタブや空白文字の追加といった最
終のオブジェクトコードには影響しない変更でも再コン
パイルする必要があった。このため、同じコードを2度
生成するという手間が生じていたという問題がある。ま
た、複数の関数が含まれるソースファイルの中のある関
数に変更がある場合、変更していない関数も含めて再コ
ンパイルするので、オブジェクトファイルをリンクして
いる場合、その変更した関数を使用しなくても、再リン
クする必要があるという問題がある。
交換、あるいは単なるタブや空白文字の追加といった最
終のオブジェクトコードには影響しない変更でも再コン
パイルする必要があった。このため、同じコードを2度
生成するという手間が生じていたという問題がある。ま
た、複数の関数が含まれるソースファイルの中のある関
数に変更がある場合、変更していない関数も含めて再コ
ンパイルするので、オブジェクトファイルをリンクして
いる場合、その変更した関数を使用しなくても、再リン
クする必要があるという問題がある。
【0007】
【課題を解決するための手段】上述した課題を解決する
ため、本発明は、原始プログラムを複数に分けてコンパ
イルする分割コンパイル方式において、関数毎にコンパ
イルオプションを指定して、関数毎にコンパイルを行う
こととしたものであり、コンパイルした関数毎にオブジ
ェクト情報ファイルを持たせ、前回以前のコンパイル時
にソースコードを変換して得た中間語をこのオブジェク
ト情報ファイルに記録しておき、この中間語と今回のコ
ンパイルでソースコードを変換して得た中間語を比較し
て変更のあった関数を判別し、変更された関数のみオブ
ジェクトコードを再生成し、変更の無い関数は前回以前
のコンパイル時に得たオブジェクトコードをコピーする
ものである。
ため、本発明は、原始プログラムを複数に分けてコンパ
イルする分割コンパイル方式において、関数毎にコンパ
イルオプションを指定して、関数毎にコンパイルを行う
こととしたものであり、コンパイルした関数毎にオブジ
ェクト情報ファイルを持たせ、前回以前のコンパイル時
にソースコードを変換して得た中間語をこのオブジェク
ト情報ファイルに記録しておき、この中間語と今回のコ
ンパイルでソースコードを変換して得た中間語を比較し
て変更のあった関数を判別し、変更された関数のみオブ
ジェクトコードを再生成し、変更の無い関数は前回以前
のコンパイル時に得たオブジェクトコードをコピーする
ものである。
【0008】
【発明の実施の形態】図1は本発明の分割コンパイル方
式の実施の形態の一例を示すブロック図である。なお、
図1において実線の矢印はプログラムの流れ、破線の矢
印は情報の流れを示す。図において、1はコンパイル対
象の原始プログラムであり、ある決まりに基づいて記述
された文字の系列である。
式の実施の形態の一例を示すブロック図である。なお、
図1において実線の矢印はプログラムの流れ、破線の矢
印は情報の流れを示す。図において、1はコンパイル対
象の原始プログラムであり、ある決まりに基づいて記述
された文字の系列である。
【0009】2は原始プログラム1から目的プログラム
3を作り上げるコンパイラで、以下に、このコンパイラ
の構成を説明する。4は解析フェーズで、原始プログラ
ム1の解析を行い、原始プログラム1を基本的な要素に
分解し、中間語に変換する機能より構成される。5は判
別フェーズで、原始プログラム1中の関数がコンパイル
すべきものかどうかを判別する機能より構成される。こ
の機能の詳細については後述する。
3を作り上げるコンパイラで、以下に、このコンパイラ
の構成を説明する。4は解析フェーズで、原始プログラ
ム1の解析を行い、原始プログラム1を基本的な要素に
分解し、中間語に変換する機能より構成される。5は判
別フェーズで、原始プログラム1中の関数がコンパイル
すべきものかどうかを判別する機能より構成される。こ
の機能の詳細については後述する。
【0010】6はコード生成フェーズで、前記判別フェ
ーズ5での判別結果に基づき、コンパイルすべき関数の
場合はコード生成を行う機能6a、コンパイルの必要の
無い関数の場合は前回以前のコンパイル時に得たコード
をコピーする機能6bから構成される。また、コンパイ
ラ2には、各種情報の表7が設けられ、解析フェーズ
4、判別フェーズ5、コード生成フェーズ6は、この表
7を使用して解析、判別、コード生成を行う。
ーズ5での判別結果に基づき、コンパイルすべき関数の
場合はコード生成を行う機能6a、コンパイルの必要の
無い関数の場合は前回以前のコンパイル時に得たコード
をコピーする機能6bから構成される。また、コンパイ
ラ2には、各種情報の表7が設けられ、解析フェーズ
4、判別フェーズ5、コード生成フェーズ6は、この表
7を使用して解析、判別、コード生成を行う。
【0011】ここで、関数毎のコンパイルを可能とする
ため、関数毎にコンパイルオプションを指定ができるよ
うにする。また、コンパイルした関数毎にオブジェクト
情報ファイル8を生成して、各関数毎に持たせる。この
オブジェクト情報ファイルの内容は、その関数をコンパ
イルした日付、コンパイルした時に指定していたオプシ
ョン、そして、ソースファイルに含まれる全関数の中間
語等である。
ため、関数毎にコンパイルオプションを指定ができるよ
うにする。また、コンパイルした関数毎にオブジェクト
情報ファイル8を生成して、各関数毎に持たせる。この
オブジェクト情報ファイルの内容は、その関数をコンパ
イルした日付、コンパイルした時に指定していたオプシ
ョン、そして、ソースファイルに含まれる全関数の中間
語等である。
【0012】図2は本実施の形態の分割コンパイル方式
の動作の一例を示す説明図であり、図1で説明したコン
パイラの動作の詳細を説明する。例えば、ソースファイ
ルa.cにf,g,hという関数が含まれているとする
と、図1で説明した解析フェーズ4で解析を行い、原始
プログラムを中間語に変換する。次に、判別フェーズ5
で各関数毎に関数名およびオプション名が指定されてい
るかどうか判別する。このとき、関数fはデバッグオプ
ション、関数gは最適化オプション、関数hはオプショ
ン指定無しというように、個々の関数毎にオプション指
定をする。
の動作の一例を示す説明図であり、図1で説明したコン
パイラの動作の詳細を説明する。例えば、ソースファイ
ルa.cにf,g,hという関数が含まれているとする
と、図1で説明した解析フェーズ4で解析を行い、原始
プログラムを中間語に変換する。次に、判別フェーズ5
で各関数毎に関数名およびオプション名が指定されてい
るかどうか判別する。このとき、関数fはデバッグオプ
ション、関数gは最適化オプション、関数hはオプショ
ン指定無しというように、個々の関数毎にオプション指
定をする。
【0013】ここでは、関数fと関数gはオプション名
が指定されており、関数hは関数名が指定されているも
のと判別フェーズ5で判別されると、コード生成フェー
ズ6で関数fのコード、関数gのコードおよび関数hの
コードを生成して、オブジェクトファイルa.oを得
る。このとき、オブジェクト情報ファイルa.infも
生成して、各関数に持たせる。このオブジェクト情報フ
ァイル a.infには、関数単位のコンパイルした時
間、コンパイルした時に指定されていたオプション、ソ
ースファイルa.cに含まれる全関数の中間語が記録さ
れる。
が指定されており、関数hは関数名が指定されているも
のと判別フェーズ5で判別されると、コード生成フェー
ズ6で関数fのコード、関数gのコードおよび関数hの
コードを生成して、オブジェクトファイルa.oを得
る。このとき、オブジェクト情報ファイルa.infも
生成して、各関数に持たせる。このオブジェクト情報フ
ァイル a.infには、関数単位のコンパイルした時
間、コンパイルした時に指定されていたオプション、ソ
ースファイルa.cに含まれる全関数の中間語が記録さ
れる。
【0014】上述したように1回目のコンパイルを実行
した後、関数fに変更を加えると、2回目のコンパイル
を実行した時に、判別フェーズ5でオブジェクト情報フ
ァイルの中間語の比較を行うことで、関数fが変更され
た関数であると分かる。すなわち、判別フェーズ5での
判別は、まず、関数名およびオプション名が指定されて
いるか判別し、これらの指定があれば中間の比較は行わ
ず、上述した1回目のコンパイル時のようにコード生成
フェーズ6でコードの生成を行う。指定がなければ、前
回以前、ここでは1回目のコンパイルの解析で変換され
てオブジェクト情報ファイルに記録されている中間語と
今回のコンパイルの解析で変換した中間語の比較を行
い、変更された関数を見つけ出し、その関数および影響
のある関数や変数についてコード生成フェーズ6でコー
ドを生成する。変更されていない関数、変更に影響の無
い関数、オプション指定がされず、かつ変更の無い関数
はコードを生成せず、コード生成フェーズ6で前回以前
に生成されたコードをコピーするものである。
した後、関数fに変更を加えると、2回目のコンパイル
を実行した時に、判別フェーズ5でオブジェクト情報フ
ァイルの中間語の比較を行うことで、関数fが変更され
た関数であると分かる。すなわち、判別フェーズ5での
判別は、まず、関数名およびオプション名が指定されて
いるか判別し、これらの指定があれば中間の比較は行わ
ず、上述した1回目のコンパイル時のようにコード生成
フェーズ6でコードの生成を行う。指定がなければ、前
回以前、ここでは1回目のコンパイルの解析で変換され
てオブジェクト情報ファイルに記録されている中間語と
今回のコンパイルの解析で変換した中間語の比較を行
い、変更された関数を見つけ出し、その関数および影響
のある関数や変数についてコード生成フェーズ6でコー
ドを生成する。変更されていない関数、変更に影響の無
い関数、オプション指定がされず、かつ変更の無い関数
はコードを生成せず、コード生成フェーズ6で前回以前
に生成されたコードをコピーするものである。
【0015】上述したように、ソースファイルa.oの
関数fを変更した場合、関数fのみコードを再生成し、
関数g,hに関しては前回生成したコードをそのままコ
ピーして新たなオブジェクトファイルa.o′を得る。
そして、前回生成されたオブジェクトファイルa.oを
削除し、新しく生成したオブジェクトファイルa.o′
をオブジェクトファイルa.oに名前を書き換える。
関数fを変更した場合、関数fのみコードを再生成し、
関数g,hに関しては前回生成したコードをそのままコ
ピーして新たなオブジェクトファイルa.o′を得る。
そして、前回生成されたオブジェクトファイルa.oを
削除し、新しく生成したオブジェクトファイルa.o′
をオブジェクトファイルa.oに名前を書き換える。
【0016】ここで、再コンパイル時にコンパイルオプ
ションが指定されていない場合でも、コンパイルオプシ
ョン指定の内容はオブジェクト情報ファイルに記録され
ているので、オブジェクト情報ファイルを見ることによ
って、変更された関数のコンパイルオプションは何かが
分かる。つまり、2回目以降のコンパイルでは、コンパ
イルオプションの変更をしない限り、指定は不要とな
る。例えば、上述したように関数fを再コンパイルする
際に、コンパイルオプションを変更しない場合は、コン
パイルオプションを指定しなくてもよい。
ションが指定されていない場合でも、コンパイルオプシ
ョン指定の内容はオブジェクト情報ファイルに記録され
ているので、オブジェクト情報ファイルを見ることによ
って、変更された関数のコンパイルオプションは何かが
分かる。つまり、2回目以降のコンパイルでは、コンパ
イルオプションの変更をしない限り、指定は不要とな
る。例えば、上述したように関数fを再コンパイルする
際に、コンパイルオプションを変更しない場合は、コン
パイルオプションを指定しなくてもよい。
【0017】また、コメント、スペース等、実行コード
に影響しないものは中間語にはならないため、コメント
等を変更しても、中間語には変化がない。このことか
ら、中間語を比較することによって、最終の目的プログ
ラムには影響しない原始プログラムの変更による再コン
パイルを防ぐことができる。次に、上述した分割コンパ
イル方式で得たオブジェクトファイルをリンクして目的
プログラムを得る方法について説明する。
に影響しないものは中間語にはならないため、コメント
等を変更しても、中間語には変化がない。このことか
ら、中間語を比較することによって、最終の目的プログ
ラムには影響しない原始プログラムの変更による再コン
パイルを防ぐことができる。次に、上述した分割コンパ
イル方式で得たオブジェクトファイルをリンクして目的
プログラムを得る方法について説明する。
【0018】図3は本実施の形態の分割コンパイル方式
で得たオブジェクトファイルのリンクの一例を示す説明
図である。ソースファイルa.cは関数f,g,hを含
み、ソースファイルb.cは関数i,jを含むものと
し、ソースファイルa.cをコンパイルしてオブジェク
トファイルa.oが得られ、ソースファイルb.cをコ
ンパイルしてオブジェクトファイルb.oが得られる。
関数g,hのどちらとも関数fを呼び出しておらず、関
数iは関数gを呼び出していて、関数jは関数hを呼び
出しているとすると、オブジェクトファイルa.oとオ
ブジェクトファイルb.oをリンクして得た実行形式フ
ァイルa.outの中で関数fは使用されていない。
で得たオブジェクトファイルのリンクの一例を示す説明
図である。ソースファイルa.cは関数f,g,hを含
み、ソースファイルb.cは関数i,jを含むものと
し、ソースファイルa.cをコンパイルしてオブジェク
トファイルa.oが得られ、ソースファイルb.cをコ
ンパイルしてオブジェクトファイルb.oが得られる。
関数g,hのどちらとも関数fを呼び出しておらず、関
数iは関数gを呼び出していて、関数jは関数hを呼び
出しているとすると、オブジェクトファイルa.oとオ
ブジェクトファイルb.oをリンクして得た実行形式フ
ァイルa.outの中で関数fは使用されていない。
【0019】この場合、関数fに変更があった場合、従
来はソースファイルa.c全体を再コンパイルするの
で、オブジェクトファイルa.oとオブジェクトファイ
ルb.oを再リンクする必要があった。これに対して、
本発明の分割コンパイル方式では、関数fに変更があっ
た場合、関数fのみを再コンパイルするので、関数fを
使用しないかぎり、再リンクは不要である。
来はソースファイルa.c全体を再コンパイルするの
で、オブジェクトファイルa.oとオブジェクトファイ
ルb.oを再リンクする必要があった。これに対して、
本発明の分割コンパイル方式では、関数fに変更があっ
た場合、関数fのみを再コンパイルするので、関数fを
使用しないかぎり、再リンクは不要である。
【0020】以上説明したように、本発明は、関数毎に
コンパイルオプションを指定して関数毎にコンパイルで
きるようにすることで、一旦コンパイルしてコード生成
した後にある関数を変更する場合、変更のあった関数に
ついてのみコードを再生成し、変更の無かった関数につ
いては前回以前のコンパイルで得たコードをコピーする
こととしたので、同じコードの再生成を防ぐことができ
る。
コンパイルオプションを指定して関数毎にコンパイルで
きるようにすることで、一旦コンパイルしてコード生成
した後にある関数を変更する場合、変更のあった関数に
ついてのみコードを再生成し、変更の無かった関数につ
いては前回以前のコンパイルで得たコードをコピーする
こととしたので、同じコードの再生成を防ぐことができ
る。
【0021】また、最適化オプションやデバッグオプシ
ョンが関数単位でできるため、コンパイル時間を短縮す
ることができる。さらに、コンパイルオプション指定の
内容をオブジェクト情報ファイルとして各関数毎に持た
せてあるので、再コンパイル時にオプション指定がなく
ても、オブジェクト情報ファイルを見ることで変更され
た関数のコンパイルオプションが判別でき、コンパイル
オプションの指定が不要となる。
ョンが関数単位でできるため、コンパイル時間を短縮す
ることができる。さらに、コンパイルオプション指定の
内容をオブジェクト情報ファイルとして各関数毎に持た
せてあるので、再コンパイル時にオプション指定がなく
ても、オブジェクト情報ファイルを見ることで変更され
た関数のコンパイルオプションが判別でき、コンパイル
オプションの指定が不要となる。
【0022】また、オブジェクト情報ファイルに記録し
てある中間語の比較でコード生成実行の有無を判別する
ので、コメントの変更等、最終の目的プログラムには影
響しない原始プログラムの変更による再コンパイルを防
ぐことができる。さらに、関数毎にコンパイルを行うこ
とで、リンクしているオブジェクトファイルの中で使用
していない関数に変更があった場合に、この関数を使用
しない限りは再リンクが不要であり、不要なリンクを減
らすことができる。
てある中間語の比較でコード生成実行の有無を判別する
ので、コメントの変更等、最終の目的プログラムには影
響しない原始プログラムの変更による再コンパイルを防
ぐことができる。さらに、関数毎にコンパイルを行うこ
とで、リンクしているオブジェクトファイルの中で使用
していない関数に変更があった場合に、この関数を使用
しない限りは再リンクが不要であり、不要なリンクを減
らすことができる。
【0023】
【発明の効果】以上説明したように、本発明は、原始プ
ログラムをコンパイルして目的プログラムを得る場合
に、関数毎にコンパイルすることとし、一旦コンパイル
してコード生成した後にある関数を変更する場合、変更
のあった関数についてのみコードを再生成し、変更の無
かった関数については前回以前のコンパイルで得たコー
ドをコピーすることとしたので、同じコードの再生成を
防ぐことができ、無駄なコード生成を減らすことができ
る。
ログラムをコンパイルして目的プログラムを得る場合
に、関数毎にコンパイルすることとし、一旦コンパイル
してコード生成した後にある関数を変更する場合、変更
のあった関数についてのみコードを再生成し、変更の無
かった関数については前回以前のコンパイルで得たコー
ドをコピーすることとしたので、同じコードの再生成を
防ぐことができ、無駄なコード生成を減らすことができ
る。
【図1】本発明の分割コンパイル方式の実施の形態の一
例を示すブロック図
例を示すブロック図
【図2】本実施の形態の分割コンパイル方式の動作の一
例を示す説明図
例を示す説明図
【図3】リンクの一例を示す説明図
1 原始プログラム 2 コンパイラ 3 目的プログラム 4 解析フェーズ 5 判別フェーズ 6 コード生成フェーズ
Claims (3)
- 【請求項1】 原始プログラムを複数に分けてコンパイ
ルする分割コンパイル方式において、 関数毎にコンパイルオプションを指定して、関数毎にコ
ンパイルを行うことを特徴とする分割コンパイル方式。 - 【請求項2】 請求項1記載の分割コンパイル方式にお
いて、 コンパイルした関数毎にオブジェクト情報ファイルを持
たせ、前回以前のコンパイル時にソースコードを変換し
て得た中間語をこのオブジェクト情報ファイルに記録し
ておき、この中間語と今回のコンパイルでソースコード
を変換して得た中間語を比較して変更のあった関数を判
別し、変更された関数のみオブジェクトコードを再生成
し、変更の無い関数は前回以前のコンパイル時に得たオ
ブジェクトコードをコピーすることを特徴とする分割コ
ンパイル方式。 - 【請求項3】 請求項2記載の分割コンパイル方式にお
いて、 前記オブジェクト情報ファイルにコンパイルオプション
の指定の内容を記録しておき、変更された関数を再コン
パイルする時に、該当関数に持たせてあるオブジェクト
情報ファイルに記録したコンパイルオプションの指定に
従って再コンパイルすることを特徴とする分割コンパイ
ル方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8022222A JPH09218789A (ja) | 1996-02-08 | 1996-02-08 | 分割コンパイル方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8022222A JPH09218789A (ja) | 1996-02-08 | 1996-02-08 | 分割コンパイル方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH09218789A true JPH09218789A (ja) | 1997-08-19 |
Family
ID=12076780
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8022222A Pending JPH09218789A (ja) | 1996-02-08 | 1996-02-08 | 分割コンパイル方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH09218789A (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000222218A (ja) * | 1999-02-01 | 2000-08-11 | Fujitsu Ltd | コンパイル装置および記録媒体 |
| JP2000353086A (ja) * | 1999-06-09 | 2000-12-19 | Mitsubishi Electric Corp | プログラム管理装置及びプログラム管理方法 |
| JP2003140889A (ja) * | 2001-10-29 | 2003-05-16 | Nec Software Chubu Ltd | プログラム構成管理システム |
| CN105468428A (zh) * | 2015-12-04 | 2016-04-06 | 上海斐讯数据通信技术有限公司 | 一种安卓源代码编译方法及系统 |
| JP2017146967A (ja) * | 2016-02-18 | 2017-08-24 | Line株式会社 | 中間言語ファイルのロード速度改善のための方法およびシステム |
| JP2018032082A (ja) * | 2016-08-22 | 2018-03-01 | 富士通株式会社 | プログラム生成プログラム、プログラム生成方法、プログラム生成装置及びコンパイルプログラム |
-
1996
- 1996-02-08 JP JP8022222A patent/JPH09218789A/ja active Pending
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000222218A (ja) * | 1999-02-01 | 2000-08-11 | Fujitsu Ltd | コンパイル装置および記録媒体 |
| JP2000353086A (ja) * | 1999-06-09 | 2000-12-19 | Mitsubishi Electric Corp | プログラム管理装置及びプログラム管理方法 |
| JP2003140889A (ja) * | 2001-10-29 | 2003-05-16 | Nec Software Chubu Ltd | プログラム構成管理システム |
| CN105468428A (zh) * | 2015-12-04 | 2016-04-06 | 上海斐讯数据通信技术有限公司 | 一种安卓源代码编译方法及系统 |
| CN105468428B (zh) * | 2015-12-04 | 2018-07-06 | 上海斐讯数据通信技术有限公司 | 一种安卓源代码编译方法及系统 |
| JP2017146967A (ja) * | 2016-02-18 | 2017-08-24 | Line株式会社 | 中間言語ファイルのロード速度改善のための方法およびシステム |
| JP2018032082A (ja) * | 2016-08-22 | 2018-03-01 | 富士通株式会社 | プログラム生成プログラム、プログラム生成方法、プログラム生成装置及びコンパイルプログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7571427B2 (en) | Methods for comparing versions of a program | |
| US5339424A (en) | System and method for compiling and executing a computer program written in more than one programming language | |
| US20230004368A1 (en) | Multi-chip compatible compiling method and device | |
| JP4057938B2 (ja) | コンパイラ、コンパイル方法、及びプログラム開発ツール | |
| US5606697A (en) | Compiler system for language processing program | |
| Fanta et al. | Removing clones from the code | |
| US5956510A (en) | Apparatus and method for revising computer program code | |
| JP4181326B2 (ja) | コード最適化のための方法、装置及びプログラム | |
| US6961931B2 (en) | Dependency specification using target patterns | |
| JPH05257709A (ja) | 並列化判別方法およびそれを用いた並列化支援方法 | |
| EP0633526B1 (en) | Language processing system and method therefor | |
| US20050015759A1 (en) | Method and system for translating programming languages | |
| Dean et al. | Using design recovery techniques to transform legacy systems | |
| US5692196A (en) | System and method for conditionally compiling a software compilation unit | |
| US5978587A (en) | Method for propagating source code locations into objects in a compiler | |
| Waddington et al. | High-fidelity C/C++ code transformation | |
| JPH09218789A (ja) | 分割コンパイル方式 | |
| Lu et al. | Automatic Generation and Reuse of Precise Library Summaries for Object-Sensitive Pointer Analysis | |
| JPH0667871A (ja) | プログラム自動更新方式 | |
| CN115268918A (zh) | 一种基于规则模板的c++代码向c代码的自动转化方法 | |
| JPH0695890A (ja) | コンパイラにおける名前置換方式 | |
| JP3018783B2 (ja) | コンパイル方式 | |
| JPH09274570A (ja) | コンパイル方法及びコンパイラシステム | |
| JP2000242504A (ja) | コンパイラ装置 | |
| JPH06266562A (ja) | オブジェクト指向言語処理システムにおける目的コードサイズ最適化方式 |