(57)【特許請求の範囲】
【請求項１】
コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得するステップと、
すべての前記初期クラスファイルを前記初期クラスファイルの総数よりも少ない所定数の中間クラスファイルに導入するステップと、
前記中間クラスファイルをコンパイルし、ターゲットデータを取得するステップと、を含み、
前記中間クラスファイルをコンパイルし、ターゲットデータを取得するステップは、
前記中間クラスファイルをもとに、指定されたコンパイル規則に従って、動的ライブラリファイルを作成するステップと、
前記動的ライブラリファイルをＡＰＫパッケージ化処理し、前記ターゲットデータを取得するステップと、を含み、
前記指定されたコンパイル規則は、所定記述ファイルのニーズに応じて編集可能であり、前記所定記述ファイルは、前記コンパイルすべきプロジェクトのソースコードを説明するためのものであることを特徴とするデータコンパイル方法。
【請求項２】
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得するステップは、
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルにそれぞれ対応するファイル拡張子名を取得するステップと、
すべてのコンパイルされるファイルから、予め設定された拡張子名セットに含まれるファイル拡張子名のファイルを前記初期クラスファイルとしてピックアップするステップと、を含むことを特徴とする請求項１に記載のデータコンパイル方法。
【請求項３】
前記初期クラスファイルは、ヘッダファイル及び／又はソースファイルを含むことを特徴とする請求項２に記載のデータコンパイル方法。
【請求項４】
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得する前に、さらに、
前記コンパイルすべきプロジェクトにおける重複するデータオブジェクト識別子を取得するステップと、
同一のデータオブジェクト識別子を有するデータオブジェクトのそれぞれに唯一の識別子を再配布するステップと、を含むことを特徴とする請求項１乃至３の何れか一項に記載のデータコンパイル方法。
【請求項５】
コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得するためのトラバース手段と、
すべての前記初期クラスファイルを前記初期クラスファイルの総数よりも少ない所定数の中間クラスファイルに導入するための導入手段と、
前記中間クラスファイルをコンパイルし、ターゲットデータを取得するためのコンパイル手段と、を備え、
前記コンパイル手段は、
前記中間クラスファイルをもとに、指定されたコンパイル規則に従って、動的ライブラリファイルを作成するための作成モジュールと、
前記動的ライブラリファイルをＡＰＫパッケージ化処理し、前記ターゲットデータを取得するためのパッケージ化モジュールと、を備え、
前記指定されたコンパイル規則は、所定記述ファイルのニーズに応じて編集可能であり、前記所定記述ファイルは、前記コンパイルすべきプロジェクトのソースコードを説明するためのものであることを特徴とするデータコンパイル装置。
【請求項６】
前記トラバース手段は、
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルにそれぞれ対応するファイル拡張子名を取得するための取得モジュールと、
すべてのコンパイルされるファイルから、予め設定された拡張子名セットに含まれるファイル拡張子名のファイルを前記初期クラスファイルとしてピックアップするためのピックアップモジュールと、を備えることを特徴とする請求項５に記載のデータコンパイル装置。
【請求項７】
前記初期クラスファイルは、ヘッダファイル及び／又はソースファイルを含むことを特徴とする請求項６に記載のデータコンパイル装置。
【請求項８】
前記コンパイルすべきプロジェクトにおける重複するデータオブジェクト識別子を取得するための取得手段と、
同一のデータオブジェクト識別子を有するデータオブジェクトのそれぞれに唯一の識別子を再配布するための配布手段と、をさらに備えることを特徴とする請求項５乃至７の何れか一項に記載のデータコンパイル装置。
【請求項９】
電子機器であって、
プロセッサと、メモリと、通信インターフェースと、バスとを備え、
前記メモリは、コンピュータの実行指令を記憶し、前記プロセッサと前記メモリは、前記バスを介して接続され、サーバの動作時に、前記プロセッサは、前記メモリに記憶されたコンピュータの実行指令を実行することで、前記サーバに請求項１乃至４の何れか一項に記載のデータコンパイル方法におけるステップを実行させることを特徴とする電子機器。
【請求項１０】
コンピュータプログラムを記憶するコンピュータ読み取り可能な記憶媒体であって、
当該コンピュータプログラムがプロセッサによって実行される際、請求項１乃至４の何れか一項に記載のデータコンパイル方法におけるステップを実施させることを特徴とするコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理技術分野に関し、特にデータコンパイル方法、装置、電子端末及びコンピュータ読み取り可能な記憶媒体に関する。
【背景技術】
【０００２】
Ｃ＋＋言語は、様々なシステムソフトウェア、例えば、オペレーティングシステム、組み込みシステムなどの開発に広く応用されている。一般的なコンパイルアーキテクチャでは、Ｃ＋＋のコンパイルプロセスは、基本的にコンパイル前処理、コンパイル最適化段階、アセンブル手順及びリング手順に分けられている。Ｃ＋＋プログラムのサイズ及び複雑度の継続的な増加につれて、Ｃ＋＋プログラムにコンパイルが必要なファイルが益々多くなるため、コンパイルユニットも益々多くなる。異なるコンパイルユニットがそれぞれ単独でコンパイルする必要があるため、各コンパイルユニットに用いられるプログラムとコンパイルされるファイルは、上記４つのコンパイル手順を繰り返し実行せざるを得ない。このようなコンパイルプロセスには、長い時間がかかる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記問題に鑑みて、本発明の実施例は、データコンパイル時間をある程度減少させることが可能なデータコンパイル方法、装置及び電子端末、コンピュータ読み取り可能な記憶媒体を提供する。
【課題を解決するための手段】
【０００４】
本発明の実施例の第１の態様は、データコンパイル方法を提供し、前記方法、
コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得するステップと、
すべての前記初期クラスファイルを前記初期クラスファイルの総数よりも少ない所定数の中間クラスファイルに導入するステップと、
前記中間クラスファイルをコンパイルし、ターゲットデータを取得するステップと、を含む。
【０００５】
上述した態様及びいずれかの実施可能な実施形態において、さらに１つの実施形態を提供し、前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得するステップは、
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルにそれぞれ対応するファイル拡張子名を取得するステップと、
すべてのコンパイルされるファイルから、予め設定された拡張子名セットに含まれるファイル拡張子名のファイルを前記初期クラスファイルとしてピックアップするステップと、を含む。
【０００６】
上述した態様及びいずれかの実施可能な実施形態において、さらに１つの実施形態を提供し、前記初期クラスファイルは、ヘッダファイル及び／又はソースファイルを含む。
【０００７】
上述した態様及びいずれかの実施可能な実施形態において、さらに１つの実施形態を提供し、前記中間クラスファイルをコンパイルし、ターゲットデータを取得するステップは、
前記中間クラスファイルをもとに、指定されたコンパイル規則に従って、動的ライブラリファイルを作成するステップと、
前記動的ライブラリファイルをパッケージ化処理し、前記ターゲットデータを取得するステップと、を含む。
【０００８】
上述した態様及びいずれかの実施可能な実施形態において、さらに１つの実施形態を提供し、前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得する前に、さらに、
前記コンパイルすべきプロジェクトにおける重複するデータオブジェクト識別子を取得するステップと、
同一のデータオブジェクト識別子を有するデータオブジェクトのそれぞれに唯一の識別子を再配布するステップと、を含む。
【０００９】
本発明の実施例の第２の態様は、データコンパイル装置を提供し、前記装置は、
コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得するためのトラバース手段と、
すべての前記初期クラスファイルを前記初期クラスファイルの総数よりも少ない所定数の中間クラスファイルに導入するための導入手段と、
前記中間クラスファイルをコンパイルし、ターゲットデータを取得するためのコンパイル手段と、を備える。
【００１０】
上述した態様及びいずれかの実施可能な実施形態において、さらに１つの実施形態を提供し、前記トラバース手段は、
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルにそれぞれ対応するファイル拡張子名を取得するための取得モジュールと、
すべてのコンパイルされるファイルから、予め設定された拡張子名セットに含まれるファイル拡張子名のファイルを前記初期クラスファイルとしてピックアップするためのピックアップモジュールと、を備える。
【００１１】
上述した態様及びいずれかの実施可能な実施形態において、さらに１つの実施形態を提供し、前記初期クラスファイルは、ヘッダファイル及び／又はソースファイルを含む。
【００１２】
上述した態様及びいずれかの実施可能な実施形態において、さらに１つの実施形態を提供し、前記コンパイル手段は、
前記中間クラスファイルをもとに、指定されたコンパイル規則に従って、動的ライブラリファイルを作成するための作成モジュールと、
前記動的ライブラリファイルをパッケージ化処理し、前記ターゲットデータを取得するためのパッケージ化モジュールと、を備える。
【００１３】
上述した態様及びいずれかの実施可能な実施形態において、さらに１つの実施形態を提供し、前記装置は、さらに、
前記コンパイルすべきプロジェクトにおける重複するデータオブジェクト識別子を取得するための取得手段と、
同一のデータオブジェクト識別子を有するデータオブジェクトのそれぞれに唯一の識別子を再配布するための配布手段と、を備える。
【００１４】
本発明の実施例の第３の態様は、電子機器を提供し、前記電子機器は、プロセッサ、メモリ、通信インターフェース及びバスを備え、前記メモリがコンピュータの実行指令を記憶し、前記プロセッサと前記メモリが前記バスを介して接続され、前記サーバの動作時に、前記プロセッサが前記メモリに記憶されたコンピュータの実行指令を実行して、前記サーバに第１の態様における各実施形態にかかる前記方法におけるステップを実行させる。
【００１５】
本発明の実施例の第４の態様は、コンピュータ読み取り可能な記憶媒体を提供し、前記コンピュータ読み取り可能な記憶媒体がコンピュータプログラムを記憶し、当該プログラムがプロセッサによって実行される際、第１の態様における各実施形態にかかる前記方法におけるステップを実施させる。
【発明の効果】
【００１６】
本発明の実施例に供されるデータコンパイル方法、装置及び電子端末、コンピュータ読み取り可能な記憶媒体によれば、コンパイルすべきプロジェクト内における数多い初期クラスファイルを数少ない中間クラスファイルに統合し、数少ない中間クラスファイルのみをコンパイルする。従来技術において初期クラスファイルごとに１回のコンパイルプロセスを実行するのに対して、本発明の実施例に係る解決手段は、単一のクラスファイルに含まれる内容を増加させたが、コンパイルする必要があるクラスファイルの数を効果的に減らしたため、コンパイルすべきプロジェクト全体のコンパイル時間をある程度減少させることができる。
【図面の簡単な説明】
【００１７】
本発明に係る実施例における解決手段をより明確に説明するために、以下、実施例における説明に用いられる図面について、簡単に説明し、当然ながら、以下に説明される図面は、本発明の一部の実施例に過ぎず、当業者にとって、創造的労力をかけない前提で、これらの図面に基づき、他の図面を得ることもできる。
【図１】本発明の実施例に係る１つのデータコンパイル方法を示すフローチャートである。
【図２】本発明の実施例に係るもう１つのデータコンパイル方法を示すフローチャートである。
【図３】本発明の実施例に係るもう１つのデータコンパイル方法を示すフローチャートである。
【図４】本発明の実施例に係るもう１つのデータコンパイル方法を示すフローチャートである。
【図５】本発明の実施例に係る１つのデータコンパイル装置の構成を示すブロック図である。
【図６】本発明の実施例に係るもう１つのデータコンパイル装置の構成を示すブロック図である。
【図７】本発明の実施例に係るもう１つのデータコンパイル装置の構成を示すブロック図である。
【図８】本発明の実施例に係るもう１つのデータコンパイル装置の構成を示すブロック図である。
【図９】本発明の実施例に係る電子機器の構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
本発明の解決手段がよりよく理解できるように、本発明の実施例を本発明の図面を参照しながら以下に詳細に説明する。
【００１９】
明らかに、かかる実施例は、本発明の実施例の全部ではなく、一部の実施例である。当業者が本発明の実施例に基づき、創造的労力を要しない前提で得たすべての他の実施例はいずれも本発明の保護範囲に含まれる。
【００２０】
本発明の実施形態で使用される用語は、特定の実施形態のみを説明するためのものであり、本発明を限定するものではない。上下文に明確に他の意味を示さない限り、本発明の実施例及び添付の特許請求の範囲に使用される単数形の「１種」、「前記」及び「当該」が複数形も含むことも意図されている。
【００２１】
本明細書で使用される「及び／又は」という用語は、関連対象を説明する関連関係に過ぎず、３つの関係が存在してもよいと示し、例えば、Ａ及び／又はＢは、Ａが単独で存在し、Ａ及びＢが同時に存在し、Ｂが単独で存在するという３つの場合を示す。また、本明細書に記載の記号「／」は、一般的に前後の関連対象が「又は」の関係であることを示す。
【００２２】
本発明の実施例において用語「第１」、「第２」、「第３」などを用いてＸＸＸを説明することがあるが、これらのＸＸＸはこれらの用語の限定されないことは、理解されるべきである。これらの用語は、ＸＸＸを互いに区分するためにのみ使用される。例えば、本発明の実施例の範囲から逸脱しない限り、第１ＸＸＸが第２ＸＸＸと称されてもよく、類似的に、第２ＸＸＸも第１ＸＸＸと称されてもよい。
【００２３】
文脈に応じて、本明細書で使用される「もし」という用語は、「…とき、」又は「…際、」又は「確定に応答し」又は「検出に応答し」と解釈されてもよい。類似的に、文脈に応じて、語句「もし…確定」又は「もし…（説明する条件又はイベント）を検出」は、「…確定するとき」又は「確定に応答し」又は「…（説明する条件又はイベント）を検出するとき」又は「（説明する条件又はイベント）の検出に応答し」と解釈されてもよい。
【００２４】
本発明の実施例がデータコンパイル方法を提供し、図１に示すように、前記方法は、以下のステップを含み、
ステップ１０１において、コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得する。
【００２５】
ここで、単一のコンパイルすべきプロジェクト（ｐｒｏｊｅｃｔ）において、実際にコンパイルが必要なファイルの数が多いことがあり、本発明の実施例では、様々なコンパイルされるファイルを一括で中間クラスファイルに導入する必要があるため、コンパイルすべきプロジェクトにおいてすべてのクラスファイルをまとめるために、トラバースとピックアップの処理を行うことが必要である。
【００２６】
初期クラスファイルは、一般的にヘッダファイル（．ｈ）、ソースファイル（．ｃｐｐ）及び他の存在し取得するファイルタイプを含んでもよい。
【００２７】
ステップ１０２において、すべての前記初期クラスファイルを前記初期クラスファイルの総数よりも少ない所定数の中間クラスファイルに導入する。
【００２８】
ここで、中間クラスファイルは、本発明の実施例においてユニークに構成されたファイルの１種であり、前記初期クラスファイルと同じファイルフォーマットを使用してもよく、実際のニーズに応じてユニークなファイルフォーマットを構成してもよい。
【００２９】
本発明の実施例において、中間クラスファイルの数が１つのみ又は複数設定すればよく、このように設定すると、コンパイル手段の数を大きく低減させることができる。また、全ての初期クラスファイルのコンテンツが数少ないいくつかの中間クラスファイルに含まれるため、コンパイルすべきプロジェクトが有する機能が影響を受けない。
【００３０】
ステップ１０３において、前記中間クラスファイルをコンパイルし、ターゲットデータを取得する。
【００３１】
本発明の実施例に供されるデータコンパイル方法は、コンパイルすべきプロジェクトにおける数多い初期クラスファイルを数少ない中間クラスファイルに統合し、数少ない中間クラスファイルをコンパイルする。従来技術において初期クラスファイルごとに１回のコンパイルプロセスを実行するのに対して、本発明の実施例に係る解決手段は、単一のクラスファイルに含まれる内容を増加させたが、コンパイルする必要があるクラスファイルの数を効果的に減らしたため、コンパイル手段の数を効果的に減らして、コンパイルすべきプロジェクト全体のコンパイル時間をある程度減少させることができる。
【００３２】
さらに、本発明の実施例では、ステップ１０１であって、前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得することを実行するために、以下の方法フローを提供し、図２に示すように、以下のステップを含み、
ステップ１０１１において、前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルにそれぞれ対応するファイル拡張子名を取得する。
【００３３】
ファイル拡張子名が、ファイル拡張子とも称され、ファイルの種類を識別するために用いられ、例えば、クラスファイルの場合、「．ｈ」、「．ｃｐｐ」などの拡張子名を使用してもよい。
【００３４】
拡張子名が一般的にファイルのファイル名の後ろに付けられるため、キーワードマッチングの方式で検索することができる。
【００３５】
ステップ１０１２において、すべてのコンパイルされるファイルから、予め設定された拡張子名セットに含まれるファイル拡張子名のファイルを前記初期クラスファイルとしてピックアップする。
【００３６】
予め設定された拡張子名セットが予め設定されたキーワードの集合体であり、コンパイルすべきプロジェクトにおいてコンパイルされ取得する各種のファイルの拡張子名を記録するためのものである。当該集合体に含まれるキーワードが実際のニーズに応じて増減及び変更することができる。
【００３７】
さらに、本発明の実施例では、ステップ１０３であって、前記中間クラスファイルをコンパイルし、ターゲットデータを取得することを実行するために、以下の方法フローを提供し、図３に示すように、以下のステップを含み、
ステップ１０３１において、前記中間クラスファイルをもとに、指定されたコンパイル規則に従って、動的ライブラリファイルを作成する。
【００３８】
指定されたコンパイル規則がａｎｄｒｏｉｄ．ｍｋファイルのニーズに応じて編集することができる。
【００３９】
ａｎｄｒｏｉｄ．ｍｋファイルが一般的にコンパイルシステムに対してコンパイルすべきプロジェクトのソースコードを説明するためのものである。それが限定する、指定されたコンパイル規則で以下の５種類のオブジェクトをコンパイルすることができる。
１）ＡＰＫプログラム
一般的なＡｎｄｒｏｉｄプログラムであって、コンパイルしてパッケージ化することでａｐｋファイルを作成する。
２）ＪＡＶＡライブラリ
ｊａｖａクラスライブラリであって、コンパイルしてパッケージ化することでｊａｒファイルを作成する。
３）Ｃ￥Ｃ＋＋アプリケーションプログラム
実行可能なＣ￥Ｃ＋＋アプリケーションプログラムである。
４）Ｃ￥Ｃ＋＋静的ライブラリ
コンパイルして、Ｃ￥Ｃ＋＋静的ライブラリを作成するとともに、．ａファイルとしてパッケージ化する。
５）Ｃ￥Ｃ＋＋共有ライブラリ
コンパイルして、共有ライブラリ（動的リンクライブラリ）を作成するとともに、．ｓｏファイルとしてパッケージ化する。共有ライブラリのみが必要となるアプリケーションソフトウェア（ＡＰＫ）パッケージにインストール／コピーすることができる。
【００４０】
本発明の実施例では、ＡＰＫのパッケージ化のため、動的ライブラリファイル（．ｓｏ）を作成する必要がある。
【００４１】
ステップ１０３２において、前記動的ライブラリファイルをパッケージ化処理して、前記ターゲットデータを取得する。
【００４２】
本発明の実施例では、ａｎｔ方式でパッケージ化することができる。
【００４３】
また、中間クラスファイルに集中している各初期クラスファイルがコンパイルされる際にエラーが発生することを避けるために、事前に初期クラスファイルにおけるデータオブジェクト識別子に対して重複することがあるかどうかをチェックする処理を行い、具体的なフローが図４に示すように、以下のステップを含み、
ステップ１０４において、前記コンパイルすべきプロジェクトにおける重複するデータオブジェクト識別子を取得する。
【００４４】
前記データオブジェクト識別子は、初期クラスファイルで使用されるマクロ定義、及びクラス外で定義され、他のクラスに使用が必要なエニュメレーション（ｅｎｕｍｅｒａｔｉｏｎ）、構造体、シングルトン（ｓｉｎｇｌｅｔｏｎ）などのすべての変数を含んでも良い。
【００４５】
なお、重複するデータオブジェクト識別子とは、名称が同じであるが、定義が異なるデータオブジェクト識別子のみを指す。プログラムのコンパイル時のエラーが報告された位置又は他の検査フローで重複する各データオブジェクト識別子を特定することができる。
【００４６】
ステップ１０５において、同一のデータオブジェクト識別子を有するデータオブジェクトのそれぞれに唯一の識別子を再配布する。
【００４７】
本発明の実施例は、さらにデータコンパイル装置を提供し、当該データコンパイル装置が前述各方法フローを実行するためのものであり、その構成が図５に示され、前記装置は、
コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得するためのトラバース手段２１と、
すべての前記初期クラスファイルを前記初期クラスファイルの総数よりも少ない所定数の中間クラスファイルに導入するための導入手段２２と、
前記中間クラスファイルをコンパイルし、ターゲットデータを取得するためのコンパイル手段２３と、を備える。
【００４８】
好ましくは、図６に示すように、前記トラバース手段２１は、
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルにそれぞれ対応するファイル拡張子名を取得するための取得モジュール２１１と、
すべてのコンパイルされるファイルから、予め設定された拡張子名セットに含まれるファイル拡張子名のファイルを前記初期クラスファイルとしてピックアップするためのピックアップモジュール２１２と、を備える。
【００４９】
好ましくは、前記初期クラスファイルがヘッダファイル及び／又はソースファイルを含む。
【００５０】
好ましくは、図７に示すように、前記コンパイル手段２３は、
前記中間クラスファイルをもとに、指定されたコンパイル規則に従って、動的ライブラリファイルを作成するための作成モジュール２３１と、
前記動的ライブラリファイルをパッケージ化処理し、前記ターゲットデータを取得するためのパッケージ化モジュール２３２と、を備える。
【００５１】
好ましくは、図８に示すように、前記装置は、さらに、
前記コンパイルすべきプロジェクトにおける重複するデータオブジェクト識別子を取得するための取得手段２４と、
同一のデータオブジェクト識別子を有するデータオブジェクトのそれぞれに唯一の識別子を再配布するための配布手段２５と、を備える。
【００５２】
本発明の実施例に供されるデータコンパイル装置は、コンパイルすべきプロジェクトにおける数多い初期クラスファイルを数少ない中間クラスファイルに統合し、数少ない中間クラスファイルのみをコンパイルする。従来技術において初期クラスファイルごとに１回のコンパイルプロセスを実行するのに対して、本発明の実施例に係る解決手段は、単一のクラスファイルに含まれる内容を増加させたが、コンパイルする必要があるクラスファイルの数を効果的に減らしたため、コンパイル手段の数を効果的に減らすことができ、コンパイルすべきプロジェクト全体のコンパイル時間をある程度減少させることができる。
【００５３】
本発明の実施例がさらに電子機器３０を提供し、図９に示すように、当該電子機器３０がプロセッサ３１、メモリ３３、通信インターフェース３４及びバス３２を備える。前記メモリがコンピュータの実行指令を記憶し、前記プロセッサと前記メモリが前記バスを介して接続されている。
【００５４】
プロセッサ３１が、汎用中央処理ユニット（ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）、マイクロプロセッサ、特定用途向け集積回路（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ、ＡＳＩＣ）、或いは、本発明のソリューションにおけるプログラム実行を制御するための1つまたは複数の集積回路であり得る。
【００５５】
通信バス３２が、前述のコンポーネント間で情報を伝達するための1つの経路を含み得る。
【００５６】
通信インターフェース３４が、任意のタイプのトランシーバを使用し、他のデバイス、又は、イーサネット、無線アクセスネットワーク（ｒａｄｉｏ  ａｃｃｅｓｓ  ｎｅｔｗｏｒｋ、ＲＡＮ）、無線ローカルエリアネットワーク（ｗｉｒｅｌｅｓｓ  ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋｓ、ＷＬＡＮ）などの通信ネットワークと通信するために用いられる。
【００５７】
メモリ３３が、リードオンリーメモリ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、ＲＯＭ）又は静的情報と指令を記憶可能な他のタイプの静的記憶装置、ランダムアクセスメモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ、ＲＡＭ）又は情報と指令を記憶可能な他のタイプの動的記憶装置であり取得するし、又は、電気的消去可能プログラマブルリードオンリーメモリ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、ＥＥＰＲＯＭ）、コンパクトディスクリードオンリーメモリ（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、ＣＤ−ＲＯＭ）又は他のコンパクトディスクストレージ、光ディスクストレージ（圧縮光ディスク、レーザーディスク、光ディスク、デジタル多用途ディスク、ブルーレイディスクなど）、磁気ディスク記憶媒体もしくは他の磁気ストレージデバイス、または命令もしくはデータ構造の形式で指定したプログラムコードを搬送もしくは記憶するために使用され取得するおよびコンピュータによってアクセスされ取得する任意の他の媒体であり取得するし、このことに限定されない。メモリは、独立して存在していてもよいし、バスを使用してプロセッサに接続されている。メモリはまた、プロセッサと一体化していてもよい。
ここで、メモリ３３は、本発明のソリューションを実行するためのアプリケーションプログラムコードを記憶するように構成され、プロセッサ３１の制御により実行される。プロセッサ３１は、メモリ３３に記憶されるアプリケーションプログラムコードを実行し、前記サーバが動作するとき、前記サーバが以下のフローを実行するように、前記プロセッサ３１は、前記メモリ３３に記憶されるアプリケーションプログラムコードを実行するように構成されている。
【００５８】
コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを得て、
すべての前記初期クラスファイルを前記初期クラスファイルの総数よりも少ない所定数の中間クラスファイルに導入し、
前記中間クラスファイルをコンパイルし、ターゲットデータを取得する。
【００５９】
好ましくは、前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得することは、具体的に以下のように実行されてもよい。
【００６０】
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルにそれぞれ対応するファイル拡張子名を取得し、
すべてのコンパイルされるファイルから、予め設定された拡張子名セットに含まれるファイル拡張子名のファイルを前記初期クラスファイルとしてピックアップする。
【００６１】
好ましくは、前記初期クラスファイルがヘッダファイル及び／又はソースファイルを含む。
【００６２】
好ましくは、前記中間クラスファイルをコンパイルし、ターゲットデータを取得することは、具体的に以下のように実行されてもよい。
【００６３】
前記中間クラスファイルをもとに、指定されたコンパイル規則に従って、動的ライブラリファイルを作成し、
前記動的ライブラリファイルをパッケージ化処理し、前記ターゲットデータを取得する。
【００６４】
好ましくは、前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得する前に、前記プロセッサがさらに具体的に以下のように実行してもよい。
【００６５】
前記コンパイルすべきプロジェクトにおける重複するデータオブジェクト識別子を取得し、
同一のデータオブジェクト識別子を有するデータオブジェクトのそれぞれに唯一の識別子を再配布する。
【００６６】
本発明の実施例に供される電子機器は、コンパイルすべきプロジェクトにおける数多い初期クラスファイルを数少ない中間クラスファイルに統合し、数少ない中間クラスファイルのみをコンパイルする。従来技術において初期クラスファイルごとに１回のコンパイルプロセスを実行するのに対して、本発明の実施例に係る解決手段は、単一のクラスファイルに含まれる内容を増加させたが、コンパイルする必要があるクラスファイルの数を効果的に減らしたため、コンパイル手段の数を効果的に減らすことができ、コンパイルすべきプロジェクト全体のコンパイル時間をある程度減少させることができる。
【００６７】
本発明の実施例がコンピュータ読み取り可能な記憶媒体を提供し、当該コンピュータ読み取り可能な記憶媒体がコンピュータプログラムを記憶し、当該プログラムがプロセッサによって実行される際、以下の方法に関するステップが実行され、
コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを得て、
すべての前記初期クラスファイルを前記初期クラスファイルの総数よりも少ない所定数の中間クラスファイルに導入し、
前記中間クラスファイルをコンパイルし、ターゲットデータを取得する。
【００６８】
好ましくは、前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得することは、具体的に以下のように実行されてもよい。
【００６９】
前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルにそれぞれ対応するファイル拡張子名を取得し、
すべてのコンパイルされるファイルから、予め設定された拡張子名セットに含まれるファイル拡張子名のファイルを前記初期クラスファイルとしてピックアップする。
【００７０】
好ましくは、前記初期クラスファイルがヘッダファイル及び／又はソースファイルを含む。
【００７１】
好ましくは、前記中間クラスファイルをコンパイルし、ターゲットデータを取得することは、具体的に以下のように実行されてもよい。
【００７２】
前記中間クラスファイルをもとに、指定されたコンパイル規則に従って、動的ライブラリファイルを作成し、
前記動的ライブラリファイルをパッケージ化処理し、前記ターゲットデータを取得する。
【００７３】
好ましくは、前記コンパイルすべきプロジェクト内におけるコンパイルされるファイルをトラバースし、すべての初期クラスファイルを取得する前に、前記プロセッサがさらに以下のように実行してもよい。
【００７４】
前記コンパイルすべきプロジェクトにおける重複するデータオブジェクト識別子を取得し、
同一のデータオブジェクト識別子を有するデータオブジェクトのそれぞれに唯一の識別子を再配布する。
【００７５】
本発明の実施例に供されるコンピュータ読み取り可能な記憶媒体は、コンパイルすべきプロジェクトにおける数多い初期クラスファイルを数少ない中間クラスファイルに統合し、数少ない中間クラスファイルをコンパイルする。従来技術において初期クラスファイルごとに１回のコンパイルプロセスを実行するのに対して、本発明の実施例に係る解決手段は、単一のクラスファイルに含まれる内容を増加させたが、コンパイルする必要があるクラスファイルの数を効果的に減らしたため、コンパイル手段の数を効果的に減らすことができ、コンパイルすべきプロジェクト全体のコンパイル時間をある程度減少させることができる。
【００７６】
当業者であればわかるように、説明の便宜および簡潔さのために、上述のシステム、装置、及びユニットの特定の作業プロセスは、前述の方法の実施形態における対応するプロセスを参照することができ、ここで繰り返し述べない。
【００７７】
本明細書に供されるいくつかの実施形態において、開示されたシステム、デバイス、および方法は、他の方法で実施され得ることが理解されるべきである。例えば、上述した装置の実施形態は単に概略的なものであり、例えば、ユニットの分割は1つの論理的な機能分割であり、実際の実装は別の分割方法を有してもよい。例えば、複数のユニットまたは構成要素が結合されてもよく、または別のシステムに統合されてもよく、またはいくつかの機能が無視されても実行されなくてもよい。さらに、表示または説明された相互結合または直接結合または通信接続は、いくつかのインターフェース、デバイスまたはユニットを介した間接結合または通信接続であってもよく、電気的、機械的または他の形態であってもよい。
【００７８】
別個のパーツとして記載されたユニットは、物理的に分離されていてもされていなくてもよく、ユニットとして表示されるコンポーネントは、物理ユニットであってもなくてもよく、つまり、１か所に配置されていても、複数のネットワークユニットに分散していてもよい。この実施形態の解決案の目的を達成するために、ユニットの一部または全部を実際のニーズに応じて選択することができる。
【００７９】
また、本発明の各実施形態における各機能部は、１つの処理部に組み込まれていてもよいし、物理的に単独で存在してもよいし、２つ以上が一体としてもよい。上記の統合されたユニットは、ハードウェアまたはハードウェアおよびソフトウェア機能ユニットのいずれかで実装することができます。
【００８０】
ソフトウェア機能ユニットとして実装された上記の一体化されたユニットは、コンピュータ読み取り可能な記憶媒体に格納されてもよい。上記ソフトウェア機能部は、記憶媒体に格納され、コンピュータ装置（パーソナルコンピュータ、サーバ、又はネットワーク装置など）またはプロセッサ（Ｐｒｏｃｅｓｓｏｒ）が本発明の各実施形態で説明した方法に関する一部のステップを実行するためのいくつかの指令を含む。上記の記憶媒体には、Ｕディスク、リムーバブルハードディスク、リードオンリーメモリ(ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ、ＲＯＭ)、ランダムアクセスメモリ(Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ)、磁気ディスク、又は光ディスクなどのプログラムコードを格納可能な様々な他の媒体が含まれる。
【００８１】
以上の説明は、本発明の好適な実施形態に過ぎず、本発明を限定するものではない。本発明の精神および原理の範囲内でなされた変更、均等物による置換、改良などは、何れも本発明の保護範囲に含まれるべきである。
【図１】
0006780020.tif 000002
【図２】
0006780020.tif 000003
【図３】
0006780020.tif 000004
【図４】
0006780020.tif 000005
【図５】
0006780020.tif 000006
【図６】
0006780020.tif 000007
【図７】
0006780020.tif 000008
【図８】
0006780020.tif 000009
【図９】
0006780020.tif 000010