JP2000235496A - コンパイル処理方法、コンパイル処理装置、記録媒体およびクライアントサーバシステム - Google Patents
コンパイル処理方法、コンパイル処理装置、記録媒体およびクライアントサーバシステムInfo
- Publication number
- JP2000235496A JP2000235496A JP11034852A JP3485299A JP2000235496A JP 2000235496 A JP2000235496 A JP 2000235496A JP 11034852 A JP11034852 A JP 11034852A JP 3485299 A JP3485299 A JP 3485299A JP 2000235496 A JP2000235496 A JP 2000235496A
- Authority
- JP
- Japan
- Prior art keywords
- file
- compile
- library
- source
- compile processing
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
(57)【要約】
【課題】 複数の開発端末を用いて共同でプログラムを
開発する場合に、効率よくコンパイルすることができる
分散コンパイル方法を提供する。 【解決手段】 ファイル化サーバFS1,FS2は、ソ
ース管理サーバSSから更新されたソースファイルおよ
びヘッダファイルを取得し、並行してコンパイルおよび
リンクを実行してオブジェクトファイルを作成する。そ
して、各オブジェクトファイルをアーカイブすることに
より、個別APライブラリ、共通ライブラリ、画面共通
ライブラリを作成し、これらのライブラリを所定の形式
でリンクすることにより実行ファイルを作成する。
開発する場合に、効率よくコンパイルすることができる
分散コンパイル方法を提供する。 【解決手段】 ファイル化サーバFS1,FS2は、ソ
ース管理サーバSSから更新されたソースファイルおよ
びヘッダファイルを取得し、並行してコンパイルおよび
リンクを実行してオブジェクトファイルを作成する。そ
して、各オブジェクトファイルをアーカイブすることに
より、個別APライブラリ、共通ライブラリ、画面共通
ライブラリを作成し、これらのライブラリを所定の形式
でリンクすることにより実行ファイルを作成する。
Description
【0001】
【発明の属する技術分野】本発明は、複数の開発端末を
用いて共同でソフトウェア開発を行う際に用いて好適な
コンパイル処理方法、コンパイル処理装置、記録媒体お
よびクライアントサーバシステムに関する。
用いて共同でソフトウェア開発を行う際に用いて好適な
コンパイル処理方法、コンパイル処理装置、記録媒体お
よびクライアントサーバシステムに関する。
【0002】
【従来の技術】一般に、複数の端末を用いて共同でソフ
トウェアを開発する場合、開発者毎にソースプログラム
の担当部分を決めるとともに、すべてのソースプログラ
ムを管理するサーバを設け、このサーバに各端末から所
定時間内(例えば勤務時間内)に編集済みのソースファ
イルを転送しておき、各開発端末から随時更新されたフ
ァイルにアクセスできるような開発環境の下で開発を進
める場合が多い。
トウェアを開発する場合、開発者毎にソースプログラム
の担当部分を決めるとともに、すべてのソースプログラ
ムを管理するサーバを設け、このサーバに各端末から所
定時間内(例えば勤務時間内)に編集済みのソースファ
イルを転送しておき、各開発端末から随時更新されたフ
ァイルにアクセスできるような開発環境の下で開発を進
める場合が多い。
【0003】ところで、交換機プログラムのような膨大
な数のソースファイルからなるプログラムを開発する場
合、ソースファイルのコンパイル・リンクを行うファイ
ル化サーバを別途設け、上記のような管理サーバによっ
て一元管理されたソースファイルのうち、更新されたフ
ァイルのみを人手により所定のタイミングで取得し、関
連ファイルとともに順次シーケンシャルにコンパイルお
よびリンクを行って目的の実行ファイルを作成する。そ
して、この実行ファイルを試験端末へインストールして
実際の動作テストが行われる。
な数のソースファイルからなるプログラムを開発する場
合、ソースファイルのコンパイル・リンクを行うファイ
ル化サーバを別途設け、上記のような管理サーバによっ
て一元管理されたソースファイルのうち、更新されたフ
ァイルのみを人手により所定のタイミングで取得し、関
連ファイルとともに順次シーケンシャルにコンパイルお
よびリンクを行って目的の実行ファイルを作成する。そ
して、この実行ファイルを試験端末へインストールして
実際の動作テストが行われる。
【0004】
【発明が解決しようとする課題】したがって、ソースプ
ログラムの変更がわずかであっても関連するソースプロ
グラムに対してはコンパイル・リンクが行われるため、
上記のような膨大な数のソースファイルからなるプログ
ラムのコンパイル・リンクにはそれなりの時間を要して
いた。さらに、多数のソースファイルが更新された場合
には、実行ファイルの作成に長時間を要し、タイムリー
に試験端末へインストールして動作確認を行うことがで
きなかった。また、開発拠点が異なる分散ロケーション
開発の場合、ソースファイルの変更履歴を人が把握する
のは困難であり、時間的制約等のためタイムリーに最新
ファイルを各開発者側へ提供することができなかった。
そして、管理サーバへの盛り込み期限までに変更連絡の
あったソースに対して実行ファイルを作成していたた
め、盛り込み期限以降に変更されたソースに対しては、
次回、コンパイル・リンク処理を行うときまで実行ファ
イルに反映することができなかった。
ログラムの変更がわずかであっても関連するソースプロ
グラムに対してはコンパイル・リンクが行われるため、
上記のような膨大な数のソースファイルからなるプログ
ラムのコンパイル・リンクにはそれなりの時間を要して
いた。さらに、多数のソースファイルが更新された場合
には、実行ファイルの作成に長時間を要し、タイムリー
に試験端末へインストールして動作確認を行うことがで
きなかった。また、開発拠点が異なる分散ロケーション
開発の場合、ソースファイルの変更履歴を人が把握する
のは困難であり、時間的制約等のためタイムリーに最新
ファイルを各開発者側へ提供することができなかった。
そして、管理サーバへの盛り込み期限までに変更連絡の
あったソースに対して実行ファイルを作成していたた
め、盛り込み期限以降に変更されたソースに対しては、
次回、コンパイル・リンク処理を行うときまで実行ファ
イルに反映することができなかった。
【0005】そこで、この発明は、このような課題に着
目してなされたもので、交換機プログラムのような膨大
な数のソースファイルからなるプログラムを共同で開発
する場合において、プログラムのコンパイル・リンクを
効率良く行うことができるコンパイル処理方法、コンパ
イル処理装置、記録媒体およびクライアントサーバシス
テムを提供することを目的とするものである。
目してなされたもので、交換機プログラムのような膨大
な数のソースファイルからなるプログラムを共同で開発
する場合において、プログラムのコンパイル・リンクを
効率良く行うことができるコンパイル処理方法、コンパ
イル処理装置、記録媒体およびクライアントサーバシス
テムを提供することを目的とするものである。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、第1発明のコンパイル処理方法は、ソースファイル
をコンパイルしてオブジェクトモジュールを生成するコ
ンパイル処理方法において、複数のコンパイル処理手段
に対して、各々異なるオブジェクトモジュールの生成を
割り当てるとともに、前記各オブジェクトモジュールを
生成する際に必要とされるソースファイルに関する情報
を含むコンパイル情報を供給する過程と、複数のソース
ファイルの中から更新されたソースファイルを抽出する
過程と、前記更新されたソースファイルが前記コンパイ
ル情報中に記録されている場合には、該コンパイル情報
を供給された前記コンパイル処理手段が当該コンパイル
情報に基づいてオブジェクトモジュールを生成する過程
とを有することを特徴とするものである。
に、第1発明のコンパイル処理方法は、ソースファイル
をコンパイルしてオブジェクトモジュールを生成するコ
ンパイル処理方法において、複数のコンパイル処理手段
に対して、各々異なるオブジェクトモジュールの生成を
割り当てるとともに、前記各オブジェクトモジュールを
生成する際に必要とされるソースファイルに関する情報
を含むコンパイル情報を供給する過程と、複数のソース
ファイルの中から更新されたソースファイルを抽出する
過程と、前記更新されたソースファイルが前記コンパイ
ル情報中に記録されている場合には、該コンパイル情報
を供給された前記コンパイル処理手段が当該コンパイル
情報に基づいてオブジェクトモジュールを生成する過程
とを有することを特徴とするものである。
【0007】第2発明のコンパイル処理方法は、上記第
1発明のコンパイル処理方法において、前記各コンパイ
ル処理手段には、各々異なるカテゴリに属するライブラ
リを作成するために、各々異なるオブジェクトモジュー
ルの生成が割り当てられ、該各コンパイル処理手段は、
このオブジェクトモジュールをアーカイブしてライブラ
リを作成することを特徴とするものである。
1発明のコンパイル処理方法において、前記各コンパイ
ル処理手段には、各々異なるカテゴリに属するライブラ
リを作成するために、各々異なるオブジェクトモジュー
ルの生成が割り当てられ、該各コンパイル処理手段は、
このオブジェクトモジュールをアーカイブしてライブラ
リを作成することを特徴とするものである。
【0008】第3発明のコンパイル処理方法は、上記第
2発明のコンパイル処理方法において、前記各コンパイ
ル処理手段は、自ら作成したライブラリおよび他のコン
パイル処理手段によって作成されたライブラリを適宜リ
ンクして実行ファイルを作成することを特徴とするもの
である。
2発明のコンパイル処理方法において、前記各コンパイ
ル処理手段は、自ら作成したライブラリおよび他のコン
パイル処理手段によって作成されたライブラリを適宜リ
ンクして実行ファイルを作成することを特徴とするもの
である。
【0009】第4発明のコンパイル処理装置は、上記第
1〜第3発明のいずれかに記載のコンパイル処理方法を
実行することを特徴とするものである。
1〜第3発明のいずれかに記載のコンパイル処理方法を
実行することを特徴とするものである。
【0010】第5発明の記録媒体は、上記第1〜第3発
明のいずれかに記載のコンパイル処理方法を実行するプ
ログラムを記録したものであり、この記録媒体として、
FD,MO,CD−ROM,DVD−RAM,テープメ
ディア等種々の記録媒体を用いることができる。
明のいずれかに記載のコンパイル処理方法を実行するプ
ログラムを記録したものであり、この記録媒体として、
FD,MO,CD−ROM,DVD−RAM,テープメ
ディア等種々の記録媒体を用いることができる。
【0011】第6発明のクライアントサーバシステム
は、上記第4発明のコンパイル処理装置と、ソースファ
イルの編集を行うクライアント端末と、ソースファイル
を一元的に管理するとともに、前記クライアント端末か
ら更新されたソースファイルの供給を受け、この更新さ
れたソースファイルを前記コンパイル処理装置に供給す
るサーバとを含むことを特徴とするものである。
は、上記第4発明のコンパイル処理装置と、ソースファ
イルの編集を行うクライアント端末と、ソースファイル
を一元的に管理するとともに、前記クライアント端末か
ら更新されたソースファイルの供給を受け、この更新さ
れたソースファイルを前記コンパイル処理装置に供給す
るサーバとを含むことを特徴とするものである。
【0012】
【発明の実施の形態】1.実施形態の原理 本発明の実施形態の前提として、実施形態で用いられる
分散コンパイル処理の原理について説明する。 1.1.原理構成 図1は、複数の開発端末(クライアント)を用いてソー
スプログラムの編集を行い、ソース管理サーバに登録
し、複数のファイル化サーバを用いて分散コンパイルを
行うことで効率良くソフトウェア開発を行うクライアン
トサーバシステムの原理構成を示すものである。このシ
ステムは、m台の開発端末T1〜Tmと、ソースプログ
ラムを一元的に管理するソース管理サーバSSと、共通
ライブラリ、ユーザインタフェース用ライブラリ、通信
制御用ライブラリ、入出力用ライブラリといったような
n種類のカテゴリのうちのいずれかのライブラリを作成
するとともに、自装置で作成されたライブラリおよび他
装置で作成されたライブラリを適宜組み合わせて実行フ
ァイルを作成するファイル化サーバFS1〜FSnとか
ら成り、これらの装置がネットワークを介して相互に接
続されている。
分散コンパイル処理の原理について説明する。 1.1.原理構成 図1は、複数の開発端末(クライアント)を用いてソー
スプログラムの編集を行い、ソース管理サーバに登録
し、複数のファイル化サーバを用いて分散コンパイルを
行うことで効率良くソフトウェア開発を行うクライアン
トサーバシステムの原理構成を示すものである。このシ
ステムは、m台の開発端末T1〜Tmと、ソースプログ
ラムを一元的に管理するソース管理サーバSSと、共通
ライブラリ、ユーザインタフェース用ライブラリ、通信
制御用ライブラリ、入出力用ライブラリといったような
n種類のカテゴリのうちのいずれかのライブラリを作成
するとともに、自装置で作成されたライブラリおよび他
装置で作成されたライブラリを適宜組み合わせて実行フ
ァイルを作成するファイル化サーバFS1〜FSnとか
ら成り、これらの装置がネットワークを介して相互に接
続されている。
【0013】ソース管理サーバSSのディスクには、す
べてのソースファイルが格納され、ファイル化サーバF
S1のディスクには、カテゴリ1〜nに属するライブラ
リを作成するために必要なファイルが格納されている。
また、ファイル化サーバFS2〜FSnは、ファイル化
サーバFS1のディスクをマウントすることによって、
このディスク内に格納されたファイルを参照することが
できるようになっている。また、各ファイル化サーバF
S1〜FSnは、それぞれのカテゴリに属する所定数の
ライブラリ(例えば、ファイル化サーバFS1は、li
b(1,1)〜lib(1,k(1))からなる合計k
(1)個のライブラリ)を作成するための手順を記述し
たライブラリ作成手順ファイル(詳細は後述する)を各
々保有している。
べてのソースファイルが格納され、ファイル化サーバF
S1のディスクには、カテゴリ1〜nに属するライブラ
リを作成するために必要なファイルが格納されている。
また、ファイル化サーバFS2〜FSnは、ファイル化
サーバFS1のディスクをマウントすることによって、
このディスク内に格納されたファイルを参照することが
できるようになっている。また、各ファイル化サーバF
S1〜FSnは、それぞれのカテゴリに属する所定数の
ライブラリ(例えば、ファイル化サーバFS1は、li
b(1,1)〜lib(1,k(1))からなる合計k
(1)個のライブラリ)を作成するための手順を記述し
たライブラリ作成手順ファイル(詳細は後述する)を各
々保有している。
【0014】1.2.動作原理 次に、このシステムを用いて分散コンパイルを行う際の
動作原理について、図2に示すフローチャートに基づい
て説明する。まず、各開発端末Tでソースファイルの編
集が行われ、所定の期限までに編集済みファイルがソー
ス管理サーバSSに転送される(S1)。ファイル化サ
ーバFS1は、所定のタイミングでソース管理サーバS
Sにアクセスし(S2)、各ファイルの属性情報として
保持されるファイル作成日時を調査することで、前回の
アクセス時以降に更新されたファイルを抽出して、その
ファイルをネットワーク経由で取得する(S3)。次い
で、各ファイルサーバがこの更新されたファイルを参照
する(S4)。つまり、ファイル化サーバFS1は、自
身のディスクにアクセスし、ファイル化サーバFS2〜
FSnは、マウントされたファイル化サーバFS1のデ
ィスクにアクセスする。そして、この更新ファイルが自
身の保有するライブラリ作成手順ファイル中に記述され
ているか否かをチェックする(S5)。
動作原理について、図2に示すフローチャートに基づい
て説明する。まず、各開発端末Tでソースファイルの編
集が行われ、所定の期限までに編集済みファイルがソー
ス管理サーバSSに転送される(S1)。ファイル化サ
ーバFS1は、所定のタイミングでソース管理サーバS
Sにアクセスし(S2)、各ファイルの属性情報として
保持されるファイル作成日時を調査することで、前回の
アクセス時以降に更新されたファイルを抽出して、その
ファイルをネットワーク経由で取得する(S3)。次い
で、各ファイルサーバがこの更新されたファイルを参照
する(S4)。つまり、ファイル化サーバFS1は、自
身のディスクにアクセスし、ファイル化サーバFS2〜
FSnは、マウントされたファイル化サーバFS1のデ
ィスクにアクセスする。そして、この更新ファイルが自
身の保有するライブラリ作成手順ファイル中に記述され
ているか否かをチェックする(S5)。
【0015】ここで、ファイル化サーバFS1の保有す
るライブラリ作成手順ファイルの一例を図3に示してい
る。このファイルの左側欄には、オブジェクトモジュー
ルの生成に関する記述がなされている。つまり、オブジ
ェクトモジュールobj1は、ソースファイルsrc
1,src4,src7の3個から生成される旨が記述
されている。obj2以降のオブジェクトモジュールに
ついても同様に、元となるソースファイルについて各々
記述されている。そして、このファイルの右側欄には、
ライブラリの作成に関する記述がなされている。つま
り、ライブラリlib(1,1)は、オブジェクトモジ
ュールobj1とobj3とから作成される。lib
(1,2)以降のライブラリについても同様に、元とな
るオブジェクトモジュールについて各々記述されてい
る。コンパイラおよびリンカは、このライブラリ作成手
順ファイルに従ってコンパイル・リンクを行い、オブジ
ェクトモジュールおよびライブラリを作成する。
るライブラリ作成手順ファイルの一例を図3に示してい
る。このファイルの左側欄には、オブジェクトモジュー
ルの生成に関する記述がなされている。つまり、オブジ
ェクトモジュールobj1は、ソースファイルsrc
1,src4,src7の3個から生成される旨が記述
されている。obj2以降のオブジェクトモジュールに
ついても同様に、元となるソースファイルについて各々
記述されている。そして、このファイルの右側欄には、
ライブラリの作成に関する記述がなされている。つま
り、ライブラリlib(1,1)は、オブジェクトモジ
ュールobj1とobj3とから作成される。lib
(1,2)以降のライブラリについても同様に、元とな
るオブジェクトモジュールについて各々記述されてい
る。コンパイラおよびリンカは、このライブラリ作成手
順ファイルに従ってコンパイル・リンクを行い、オブジ
ェクトモジュールおよびライブラリを作成する。
【0016】このようなライブラリ作成手順ファイル中
に更新されたファイルが記述されている場合には(S
6;YES)、ライブラリ作成手順ファイルに従ってコ
ンパイル・リンク処理が実行される(S7)。例えば、
ソースファイルsrc2,src3が更新されて、ソー
ス管理サーバSSに格納されているものとする。これら
のファイルは、図3に示すライブラリ作成手順ファイル
に記述されているため、ファイル化サーバFS1では、
これらの更新ファイルに関連する部分のコンパイル・リ
ンク処理が実行される。すなわち、ファイル化サーバF
S1のコンパイラおよびリンカによって、まず、オブジ
ェクトモジュールobj2,obj4が生成され、次い
でライブラリlib(1,2),lib(1,3)が作
成される(S7)。そして、このようにして作成された
ライブラリを適宜リンクすることで実行ファイルが作成
される(S8)。続いて、この発明の好ましい実施の形
態について、以下、添付図面を参照しつつ詳細に説明す
る。
に更新されたファイルが記述されている場合には(S
6;YES)、ライブラリ作成手順ファイルに従ってコ
ンパイル・リンク処理が実行される(S7)。例えば、
ソースファイルsrc2,src3が更新されて、ソー
ス管理サーバSSに格納されているものとする。これら
のファイルは、図3に示すライブラリ作成手順ファイル
に記述されているため、ファイル化サーバFS1では、
これらの更新ファイルに関連する部分のコンパイル・リ
ンク処理が実行される。すなわち、ファイル化サーバF
S1のコンパイラおよびリンカによって、まず、オブジ
ェクトモジュールobj2,obj4が生成され、次い
でライブラリlib(1,2),lib(1,3)が作
成される(S7)。そして、このようにして作成された
ライブラリを適宜リンクすることで実行ファイルが作成
される(S8)。続いて、この発明の好ましい実施の形
態について、以下、添付図面を参照しつつ詳細に説明す
る。
【0017】2.実施形態の構成 図4は、本実施形態に係るクライアントサーバシステム
の構成を示したものである。このクライアントサーバシ
ステムは、ソフトウェア開発者がプログラムの開発を行
う4台の開発端末T1〜T4と、すべてのソースファイ
ルを一元管理するとともに、各開発端末から変更済みソ
ースプログラムの供給を受けてファイル化サーバFS1
にこの更新ファイルを提供するソース管理サーバSS
と、プログラミング言語CおよびC++におけるライブ
ラリ作成手順ファイルであるMakefile(詳細は、図6に
基づき後述する)に従って、パラレルにソースファイル
のコンパイル・リンクを実行するファイル化サーバFS
1,FS2とを備えて構成され、これらの装置がネット
ワークを介して接続されている。
の構成を示したものである。このクライアントサーバシ
ステムは、ソフトウェア開発者がプログラムの開発を行
う4台の開発端末T1〜T4と、すべてのソースファイ
ルを一元管理するとともに、各開発端末から変更済みソ
ースプログラムの供給を受けてファイル化サーバFS1
にこの更新ファイルを提供するソース管理サーバSS
と、プログラミング言語CおよびC++におけるライブ
ラリ作成手順ファイルであるMakefile(詳細は、図6に
基づき後述する)に従って、パラレルにソースファイル
のコンパイル・リンクを実行するファイル化サーバFS
1,FS2とを備えて構成され、これらの装置がネット
ワークを介して接続されている。
【0018】各開発者は、4箇所の拠点に分散配置され
た開発端末Tを用いてC++で記述された交換機制御用
プログラムを開発する。つまり、C++ソースプログラ
ムおよびヘッダファイルをエディタで開いて編集を行
い、適時にソース管理サーバSSに転送する。また、ソ
ース管理サーバSSより随時必要なソースモジュールを
取得し、コーディングを行って再度ソース管理サーバS
Sへ転送する。なお、ソース管理サーバSSに格納され
ていない新規のファイルを作成した場合には、当該ファ
イルに対する記載を含むMakefileも併せてソース管理サ
ーバSSに転送する。
た開発端末Tを用いてC++で記述された交換機制御用
プログラムを開発する。つまり、C++ソースプログラ
ムおよびヘッダファイルをエディタで開いて編集を行
い、適時にソース管理サーバSSに転送する。また、ソ
ース管理サーバSSより随時必要なソースモジュールを
取得し、コーディングを行って再度ソース管理サーバS
Sへ転送する。なお、ソース管理サーバSSに格納され
ていない新規のファイルを作成した場合には、当該ファ
イルに対する記載を含むMakefileも併せてソース管理サ
ーバSSに転送する。
【0019】ソース管理サーバSSは、開発対象のソフ
トウェアのソースファイル、ヘッダファイル、Makefile
を全て保持して一元的に管理する。ファイル化サーバF
S1は、ソース管理サーバSSにアクセスして前回のア
クセス時以降に更新されたファイルを抽出してダウンロ
ードするコマンドを所定時刻に発行することにより、ソ
ース管理サーバSSから更新ファイルを取得する。ま
た、ファイル化サーバFS1には、個別のアプリケーシ
ョン(AP)用のライブラリ作成と、個別のAP作成が
割り当てられ、自身のディスク内に保有するMakefileに
従って、ソースファイルのコンパイル・リンクを実行し
て実行ファイルを作成する。
トウェアのソースファイル、ヘッダファイル、Makefile
を全て保持して一元的に管理する。ファイル化サーバF
S1は、ソース管理サーバSSにアクセスして前回のア
クセス時以降に更新されたファイルを抽出してダウンロ
ードするコマンドを所定時刻に発行することにより、ソ
ース管理サーバSSから更新ファイルを取得する。ま
た、ファイル化サーバFS1には、個別のアプリケーシ
ョン(AP)用のライブラリ作成と、個別のAP作成が
割り当てられ、自身のディスク内に保有するMakefileに
従って、ソースファイルのコンパイル・リンクを実行し
て実行ファイルを作成する。
【0020】ファイル化サーバFS2のディスクは、フ
ァイル化サーバFS1のディスクにマウントされてお
り、随時、ファイル化サーバFS1が取得した更新ファ
イルにアクセスできるようになっている。このファイル
化サーバFS2には、共通ライブラリの作成、画面共通
ライブラリの作成および各画面作成が割り当てられ、フ
ァイル化サーバFS1と同様、自身のディスク内に保有
するMakefileに従って、ソースファイルのコンパイル・
リンクを実行して実行ファイルを作成する。
ァイル化サーバFS1のディスクにマウントされてお
り、随時、ファイル化サーバFS1が取得した更新ファ
イルにアクセスできるようになっている。このファイル
化サーバFS2には、共通ライブラリの作成、画面共通
ライブラリの作成および各画面作成が割り当てられ、フ
ァイル化サーバFS1と同様、自身のディスク内に保有
するMakefileに従って、ソースファイルのコンパイル・
リンクを実行して実行ファイルを作成する。
【0021】3.実施形態の動作 続いて、図5に基づき、本実施形態の動作について説明
する。なお、以下の説明では、a.ccファイルのよう
に拡張子ccを有するファイルは、C++で記述された
ソースファイル、a.hファイルのように拡張子hを有
するファイルは、プロトタイプ宣言やマクロ定義などが
記述され、ソースプログラム中にそのファイル名が書き
込まれることで、記述内容がそっくりソースプログラム
に取り込まれるヘッダファイルであるものとする。ま
た、a.oファイルのように拡張子oを有するファイル
は、C++コンパイラによって中間コードに翻訳された
オブジェクトファイル、libA.aファイルのように
拡張子aを有するファイルは、1または複数の前記オブ
ジェクトファイルをアーカイブしてライブラリ化したラ
イブラリファイルであるものとする。
する。なお、以下の説明では、a.ccファイルのよう
に拡張子ccを有するファイルは、C++で記述された
ソースファイル、a.hファイルのように拡張子hを有
するファイルは、プロトタイプ宣言やマクロ定義などが
記述され、ソースプログラム中にそのファイル名が書き
込まれることで、記述内容がそっくりソースプログラム
に取り込まれるヘッダファイルであるものとする。ま
た、a.oファイルのように拡張子oを有するファイル
は、C++コンパイラによって中間コードに翻訳された
オブジェクトファイル、libA.aファイルのように
拡張子aを有するファイルは、1または複数の前記オブ
ジェクトファイルをアーカイブしてライブラリ化したラ
イブラリファイルであるものとする。
【0022】まず、ファイル化サーバFS1は、ソース
管理サーバSSのディスク内に格納されたファイルを調
査して、所定時以降に更新されたファイルを取得する
(この場合、a.h,a.cc,b.cc,c.cc,d.ccの合計5フ
ァイルが更新ファイルであるものとする)(S10)。
次に、ファイル化サーバFS2は、自身のディスク内に
保有し、図6(a)に示す共通ライブラリ作成用Makefi
leを参照し、このファイル中にa.ccの記述があることか
ら、a.ccをファイル化サーバFS1のディスクから取得
し、このMakefileに従って共通ライブラリの作成を行う
(S11)。つまり、図6(a)のMakefileに示すよう
に、C++コンパイラcppcを用いて、ソースファイルb.
cc,xxxx.ccをコンパイルし、さらにa.h関連のソースフ
ァイルをコンパイルすることで、共通ライブラリである
libA.aを作成する。同様に、ファイル化サーバFS2
は、自身のディスク内に保有する画面共通ライブラリ作
成用Makefile(図示せず)中にd.ccの記述があることか
ら、d.ccをファイル化サーバFS1のディスクから取得
する。このd.ccをコンパイルし、さらにa.h関連のソー
スファイルをコンパイルすることで、画面共通ライブラ
リであるlibD.aを作成する(S12)。
管理サーバSSのディスク内に格納されたファイルを調
査して、所定時以降に更新されたファイルを取得する
(この場合、a.h,a.cc,b.cc,c.cc,d.ccの合計5フ
ァイルが更新ファイルであるものとする)(S10)。
次に、ファイル化サーバFS2は、自身のディスク内に
保有し、図6(a)に示す共通ライブラリ作成用Makefi
leを参照し、このファイル中にa.ccの記述があることか
ら、a.ccをファイル化サーバFS1のディスクから取得
し、このMakefileに従って共通ライブラリの作成を行う
(S11)。つまり、図6(a)のMakefileに示すよう
に、C++コンパイラcppcを用いて、ソースファイルb.
cc,xxxx.ccをコンパイルし、さらにa.h関連のソースフ
ァイルをコンパイルすることで、共通ライブラリである
libA.aを作成する。同様に、ファイル化サーバFS2
は、自身のディスク内に保有する画面共通ライブラリ作
成用Makefile(図示せず)中にd.ccの記述があることか
ら、d.ccをファイル化サーバFS1のディスクから取得
する。このd.ccをコンパイルし、さらにa.h関連のソー
スファイルをコンパイルすることで、画面共通ライブラ
リであるlibD.aを作成する(S12)。
【0023】一方、ファイル化サーバFS1は、ファイ
ル化サーバFS2によって共通ライブラリが作成された
後、ファイル化サーバFS2による上記コンパイル処理
と並行して、次のようなコンパイル処理を実行する。ま
ず、自身のディスク内に保有する個別APライブラリ作
成用Makefile(図示せず)中にb.cc,c.ccの記述がある
ことから、これらのファイルをファイル化サーバFS1
から取得する。このb.ccをコンパイルし、さらにa.h関
連のソースファイルをコンパイルすることで、個別AP
ライブラリであるlibB.aを作成する(S13a)。そし
て、c.ccをコンパイルし、さらにa.h関連のソースファ
イルをコンパイルすることで、他の個別APライブラリ
であるlibC.aを作成する(S13b)。続いて、ファイ
ル化サーバFS1は、図6(b)に示すAPリンケージ
用Makefileに従って、この個別APライブラリlibB.a,
libC.aをリンクして個別APの実行ファイルをを作成す
る(S14)。
ル化サーバFS2によって共通ライブラリが作成された
後、ファイル化サーバFS2による上記コンパイル処理
と並行して、次のようなコンパイル処理を実行する。ま
ず、自身のディスク内に保有する個別APライブラリ作
成用Makefile(図示せず)中にb.cc,c.ccの記述がある
ことから、これらのファイルをファイル化サーバFS1
から取得する。このb.ccをコンパイルし、さらにa.h関
連のソースファイルをコンパイルすることで、個別AP
ライブラリであるlibB.aを作成する(S13a)。そし
て、c.ccをコンパイルし、さらにa.h関連のソースファ
イルをコンパイルすることで、他の個別APライブラリ
であるlibC.aを作成する(S13b)。続いて、ファイ
ル化サーバFS1は、図6(b)に示すAPリンケージ
用Makefileに従って、この個別APライブラリlibB.a,
libC.aをリンクして個別APの実行ファイルをを作成す
る(S14)。
【0024】ファイル化サーバFS2は、ファイル化サ
ーバFS1による個別APライブラリのリンクと並行し
て、共通ライブラリlibA.aおよび画面共通ライブラリli
bD.aとをリンクして、各画面表示用の実行ファイルを作
成する(S15)。このようにして、ファイル化サーバ
FS1,FS2により、ライブラリの作成および実行フ
ァイルの作成が並行して行われる。
ーバFS1による個別APライブラリのリンクと並行し
て、共通ライブラリlibA.aおよび画面共通ライブラリli
bD.aとをリンクして、各画面表示用の実行ファイルを作
成する(S15)。このようにして、ファイル化サーバ
FS1,FS2により、ライブラリの作成および実行フ
ァイルの作成が並行して行われる。
【0025】4.実施形態の効果 (1)ソースファイルの変更を把握し、変更ソースの取
得から実行ファイル作成までを自動化することで、迅速
に最新ファイルを各開発端末側に提供することが可能と
なる。 (2)ソースファイルの増減にも対応し、編集を行った
ソースモジュールが確実に所定期日以降のファイルに盛
り込まれる。 (3)従来のシーケンシャルにコンパイルする場合に比
べて、大幅にコンパイル時間が短縮される。本出願人が
同じマシン環境でテストしたところでは、約2500個
のC++ソースファイルをコンパイル・リンクして実行
ファイルを作成するのに、従来法では、約36時間を要
したのに対して、本実施形態の方法では、約8時間とコ
ンパイル時間が1/4.5に短縮された。
得から実行ファイル作成までを自動化することで、迅速
に最新ファイルを各開発端末側に提供することが可能と
なる。 (2)ソースファイルの増減にも対応し、編集を行った
ソースモジュールが確実に所定期日以降のファイルに盛
り込まれる。 (3)従来のシーケンシャルにコンパイルする場合に比
べて、大幅にコンパイル時間が短縮される。本出願人が
同じマシン環境でテストしたところでは、約2500個
のC++ソースファイルをコンパイル・リンクして実行
ファイルを作成するのに、従来法では、約36時間を要
したのに対して、本実施形態の方法では、約8時間とコ
ンパイル時間が1/4.5に短縮された。
【0026】5.変形例 本発明は、上記実施形態に限定されるものではなく、例
えば以下のように種々の変形が可能である。 (1)上記実施形態では2台のファイル化サーバを設け
たが、さらにファイル化サーバを加えた構成としてもよ
い。例えば、もう1台のファイル化サーバFS3を加え
た構成を採用し、ファイル化サーバFS1,FS2から
ファイル化サーバFS3にアーカイブされたライブラリ
(上記実施形態の例では、libA.a,libB.a,libC.a,li
bD.a)を供給し、これらのライブラリをリンクして実行
ファイル(上記実施形態の例では、個別AP、各画面表
示用ファイル)を作成するようにしてもよい。 (2)逆に、ファイル化サーバFS1が複数のCPUを
搭載する場合には、各CPUにコンパイル・リンク処理
を分散させることで、1台のファイル化サーバのみで並
列コンパイルを実行することができる。 (3)本実施形態では、コンパイル・リンク対象のソー
スファイルをファイル化サーバFS1のディスクに格納
して、ファイル化サーバFS2からマウントするように
したが、別途更新ファイルとその関連ファイルのみを管
理するサーバ(ソース管理サーバSSとは異なる)を設
けて、ファイル化サーバFS1,FS2ともこのサーバ
のディスクをマウントするようにしてもよい。 (4)本実施形態では、ソースファイルとしてC++で
記述されたものを対象としたが、C言語、FORTOR
AN、Pascal、JAVA等他のプログラミング言
語の場合も適用可能である。この場合、ライブラリ作成
手順ファイルとして、C言語以外の場合、Makefileと同
等の機能を果たすプロシージャまたはスクリプトを別途
用意しておき、このプロシージャまたはスクリプトの内
容に従って、各プログラム言語に対応するコンパイラお
よびリンカが起動されてソースプログラムのコンパイル
・リンク処理がパラレルに実行され、実行ファイルが作
成される。
えば以下のように種々の変形が可能である。 (1)上記実施形態では2台のファイル化サーバを設け
たが、さらにファイル化サーバを加えた構成としてもよ
い。例えば、もう1台のファイル化サーバFS3を加え
た構成を採用し、ファイル化サーバFS1,FS2から
ファイル化サーバFS3にアーカイブされたライブラリ
(上記実施形態の例では、libA.a,libB.a,libC.a,li
bD.a)を供給し、これらのライブラリをリンクして実行
ファイル(上記実施形態の例では、個別AP、各画面表
示用ファイル)を作成するようにしてもよい。 (2)逆に、ファイル化サーバFS1が複数のCPUを
搭載する場合には、各CPUにコンパイル・リンク処理
を分散させることで、1台のファイル化サーバのみで並
列コンパイルを実行することができる。 (3)本実施形態では、コンパイル・リンク対象のソー
スファイルをファイル化サーバFS1のディスクに格納
して、ファイル化サーバFS2からマウントするように
したが、別途更新ファイルとその関連ファイルのみを管
理するサーバ(ソース管理サーバSSとは異なる)を設
けて、ファイル化サーバFS1,FS2ともこのサーバ
のディスクをマウントするようにしてもよい。 (4)本実施形態では、ソースファイルとしてC++で
記述されたものを対象としたが、C言語、FORTOR
AN、Pascal、JAVA等他のプログラミング言
語の場合も適用可能である。この場合、ライブラリ作成
手順ファイルとして、C言語以外の場合、Makefileと同
等の機能を果たすプロシージャまたはスクリプトを別途
用意しておき、このプロシージャまたはスクリプトの内
容に従って、各プログラム言語に対応するコンパイラお
よびリンカが起動されてソースプログラムのコンパイル
・リンク処理がパラレルに実行され、実行ファイルが作
成される。
【0027】
【発明の効果】以上詳細に説明したように、この発明に
よれば、変更ソースファイルの取得から実行ファイル作
成までの処理が自動化されるとともに、関連ソースファ
イルを整理して、パラレルにコンパイル処理が実行され
る。したがって、従来のシーケンシャルにコンパイルす
る場合に比べて、大幅にコンパイル時間が短縮される。
よれば、変更ソースファイルの取得から実行ファイル作
成までの処理が自動化されるとともに、関連ソースファ
イルを整理して、パラレルにコンパイル処理が実行され
る。したがって、従来のシーケンシャルにコンパイルす
る場合に比べて、大幅にコンパイル時間が短縮される。
【図1】本実施形態のクライアントサーバシステムの原
理構成を示すものである。
理構成を示すものである。
【図2】同上実施形態の動作原理を示すフローチャート
である。
である。
【図3】同上実施形態の動作原理において、コンパイラ
およびリンカによって参照されるライブラリ作成手順フ
ァイルの一例である。
およびリンカによって参照されるライブラリ作成手順フ
ァイルの一例である。
【図4】同上実施形態のクライアントサーバシステムの
構成を示すものである。
構成を示すものである。
【図5】同上実施形態において、ファイル化サーバFS
1,FS2において実行されるコンパイル・リンク処理
の概要を時系列で表現したものである。
1,FS2において実行されるコンパイル・リンク処理
の概要を時系列で表現したものである。
【図6】同上実施形態において、個別APライブラリ作
成用MakefileおよびAPリンケージ用Makefileの一例で
ある。
成用MakefileおよびAPリンケージ用Makefileの一例で
ある。
T(T1,T2,・・・,Tm) 開発端末 SS ソース管理サーバ FS(FS1,FS2,・・・,FSn) ファイル化
サーバ(コンパイル処理手段、コンパイル処理装置)
サーバ(コンパイル処理手段、コンパイル処理装置)
Claims (6)
- 【請求項1】 ソースファイルをコンパイルしてオブジ
ェクトモジュールを生成するコンパイル処理方法におい
て、 複数のコンパイル処理手段に対して、各々異なるオブジ
ェクトモジュールの生成を割り当てるとともに、前記各
オブジェクトモジュールを生成する際に必要とされるソ
ースファイルに関する情報を含むコンパイル情報を供給
する過程と、 複数のソースファイルの中から更新されたソースファイ
ルを抽出する過程と、 前記更新されたソースファイルが前記コンパイル情報中
に記録されている場合には、該コンパイル情報を供給さ
れた前記コンパイル処理手段が当該コンパイル情報に基
づいてオブジェクトモジュールを生成する過程とを有す
ることを特徴とするコンパイル処理方法。 - 【請求項2】 請求項1に記載のコンパイル処理方法に
おいて、 前記各コンパイル処理手段には、各々異なるカテゴリに
属するライブラリを作成するために必要となるオブジェ
クトモジュールの生成が割り当てられ、 該各コンパイル処理手段は、このオブジェクトモジュー
ルをアーカイブしてライブラリを作成することを特徴と
するコンパイル処理方法。 - 【請求項3】 請求項2に記載のコンパイル処理方法に
おいて、 前記各コンパイル処理手段は、自ら作成したライブラリ
および他のコンパイル処理手段によって作成されたライ
ブラリを適宜リンクして実行ファイルを作成することを
特徴とするコンパイル処理方法。 - 【請求項4】 請求項1〜3のいずれかに記載のコンパ
イル処理方法を実行することを特徴とするコンパイル処
理装置。 - 【請求項5】 請求項1〜3のいずれかに記載のコンパ
イル処理方法を実行するプログラムを記録した記録媒
体。 - 【請求項6】 請求項4に記載のコンパイル処理装置
と、 ソースファイルの編集を行うクライアント端末と、 ソースファイルを一元的に管理するとともに、前記クラ
イアント端末から更新されたソースファイルの供給を受
け、この更新されたソースファイルを前記コンパイル処
理装置に供給するサーバとを含むことを特徴とするクラ
イアントサーバシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11034852A JP2000235496A (ja) | 1999-02-12 | 1999-02-12 | コンパイル処理方法、コンパイル処理装置、記録媒体およびクライアントサーバシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11034852A JP2000235496A (ja) | 1999-02-12 | 1999-02-12 | コンパイル処理方法、コンパイル処理装置、記録媒体およびクライアントサーバシステム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000235496A true JP2000235496A (ja) | 2000-08-29 |
Family
ID=12425719
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11034852A Pending JP2000235496A (ja) | 1999-02-12 | 1999-02-12 | コンパイル処理方法、コンパイル処理装置、記録媒体およびクライアントサーバシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2000235496A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20040051023A (ko) * | 2002-12-11 | 2004-06-18 | 엘지전자 주식회사 | 웹 기반 운영 체제 컴파일 시스템 및 방법 |
| WO2008115644A1 (en) * | 2007-03-19 | 2008-09-25 | Microsoft Corporation | Using collaborative development information in a team environment |
-
1999
- 1999-02-12 JP JP11034852A patent/JP2000235496A/ja active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20040051023A (ko) * | 2002-12-11 | 2004-06-18 | 엘지전자 주식회사 | 웹 기반 운영 체제 컴파일 시스템 및 방법 |
| WO2008115644A1 (en) * | 2007-03-19 | 2008-09-25 | Microsoft Corporation | Using collaborative development information in a team environment |
| CN101647009A (zh) * | 2007-03-19 | 2010-02-10 | 微软公司 | 在团队环境中使用协作性开发信息 |
| JP2010522397A (ja) * | 2007-03-19 | 2010-07-01 | マイクロソフト コーポレーション | チーム環境におけるコラボレーション開発情報の使用 |
| US8464209B2 (en) | 2007-03-19 | 2013-06-11 | Microsoft Corporation | Using collaborative development information in a team environment |
| CN101647009B (zh) * | 2007-03-19 | 2015-05-13 | 微软公司 | 在团队环境中使用协作性开发信息 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115516443B (zh) | 根据架构生成优化逻辑 | |
| US5428729A (en) | System and method for computer aided software engineering | |
| JP3717188B2 (ja) | グラフとして表された操作の実行 | |
| US6003042A (en) | Systems, methods and computer programs products for storing a new version of an Envy Library file in a teamconnection object oriented programming environment | |
| Stevens | Connecting software build with maintaining consistency between models: towards sound, optimal, and flexible building from megamodels: P. Stevens | |
| CN109634591A (zh) | 一种文件处理方法及装置 | |
| US7844949B2 (en) | Computer method and apparatus for software configuration management repository interoperation | |
| US20040003383A1 (en) | Stripping of unnecessary information from source code | |
| US5963955A (en) | Bridge for exporting and importing objects between object oriented programming environments | |
| CN119690500A (zh) | 并行多组件开发方法、装置、计算机设备和存储介质 | |
| Heroux et al. | Trilinos developers guide | |
| JP2000235496A (ja) | コンパイル処理方法、コンパイル処理装置、記録媒体およびクライアントサーバシステム | |
| Rubin et al. | Microsoft. NET Compact Framework: Kick Start | |
| Duldulao et al. | Spring Boot and Angular: Hands-on full stack web development with Java, Spring, and Angular | |
| Di Ruscio et al. | Towards maintainer script modernization in FOSS distributions | |
| Hronek et al. | CAN bus latency test automation for continuous testing and evaluation | |
| CN115437671B (zh) | 一种嵌入式系统应用程序更新方法、装置及存储介质 | |
| Silvola et al. | DevOps and CI/CD for WinCC Open Architecture Applications and Frameworks | |
| Buit | PC104 stack mechatronic control platform | |
| JP2006302066A (ja) | リモート実行機能を備えたメンテナンスシステムおよびその方法 | |
| Mah et al. | ESnet SmartNIC v1. 0 | |
| Starkman | The robot operating system in transition: experiments and tutorials | |
| JP2009098963A (ja) | モジュール自動生成システム | |
| Horstmann | Long-term analysis and visualization reproducibility of heterogeneous robotic experience data in a continuously developed knowledge processing service | |
| MacDonald | Pro ASP. NET 1.1 in C#: From professional to expert |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040921 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050208 |