(57)【要約】【課題】生成する実行プログラムを動的に変えることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供する。【解決手段】  ベースコード２１と、当該ベースコード２１に変更を加えるための１以上の動的イメージ２３とを記憶する記憶部１１１と、１以上の変更情報のうちの少なくとも１つをベースソース２１に適用することにより仮想ソースコード２５を生成する変換部１０３と、変換部１０３が生成した仮想ソースコード２５からアプリケーション２７（実行プログラム）へとコンパイルするコンパイル部１０５とを備える。【選択図】図１
2013114575.tif 000002
【特許請求の範囲】
【請求項１】
ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶する記憶手段と、
前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成する変換手段と、
前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段と
を備える情報処理装置。
【請求項２】
オリジナルソースコードから、１以上の識別子を含む前記ベースコードと、１以上の前記変更情報とを生成する生成手段を更に備え、
前記変換手段は、前記ベースコード内の前記識別子に対して前記変更情報を適用することにより前記ソースコードを生成する、
請求項１記載の情報処理装置。
【請求項３】
前記生成手段は、前記オリジナルソースコードから複数の前記変更情報を生成し、
前記変換手段は、前記ベースコード内の１つの前記識別子に対して複数の前記変更情報のうちの１つを適用することにより前記ソースコードを生成する、
請求項２記載の情報処理装置。
【請求項４】
前記変更情報は、マクロ記述に関する情報である、
請求項２記載の情報処理装置。
【請求項５】
前記ベースコードは前記コンパイル手段がコンパイル可能である、
請求項１記載の情報処理装置。
【請求項６】
前記ベースコードを編集するための編集手段
を更に備え、
前記変更情報は、前記編集手段による編集結果と前記ベースコードとの差分に相当する、
請求項１又は請求項５記載の情報処理装置。
【請求項７】
ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶媒体に記憶するステップと、
前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成するステップと、
生成した前記ソースコードから実行プログラムへとコンパイルするステップと
を備える情報処理方法。
【請求項８】
コンピュータに情報処理方法を実行させる情報処理プログラムであって、当該情報処理方法は、
ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶媒体に記憶するステップと、
前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成するステップと、
生成した前記ソースコードから実行プログラムへとコンパイルするステップと
を備える、情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明に係るいくつかの態様は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
状況に応じて、生成する実行プログラムを動的に変えたい場合がある。このとき、例えばＣ言語では、コンパイルオプションによって動的にソースコードを変えるｉｆｄｅｆ記述や、コンパイル時に動的に処理に変換するマクロ記述が利用可能である。よって、Ｃ言語でソースコードを記載する際には、これらの記述を利用して実行ファイルを動的に変えることが可能である。
【０００３】
ここで、既存のソースファイルの編集については、例えば特許文献１に開示されている。特許文献１には、既存のソースプログラムを参照ソースプログラムとすることにより、ソースプログラムを再利用する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１１３８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えばＪａｖａ言語では、ｉｆｄｅｆ記述やマクロ記述が存在しないため、コンパイル時にソースコードを動的に変えることは難しい。
【０００６】
また、特許文献１に記載の技術は、あくまでソースプログラムの編集のみを対象としており、実行プログラムの変更については何ら考慮されていない。
【０００７】
本発明のいくつかの態様は前述の課題に鑑みてなされたものであり、生成する実行プログラムを動的に変えることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的の１つとする。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理装置は、ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶する記憶手段と、前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成する変換手段と、前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段とを備える。
【０００９】
本発明に係る情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶媒体に記憶するステップと、前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える。
【００１０】
本発明に係る情報処理プログラムは、コンピュータに情報処理方法を実行させる情報処理プログラムであって、当該情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶媒体に記憶するステップと、前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える。
【００１１】
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「部」が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」の機能が１つの物理的手段や装置により実現されても良い。
【発明の効果】
【００１２】
本発明によれば、生成する実行プログラムを動的に変えることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態における情報処理装置の概略構成を示す機能ブロック図である。
【図２】図１に示した情報処理装置が処理対象とするソースコードの具体例を示す図である。
【図３】図１に示した情報処理装置が生成するベースソースの具体例を示す図である。
【図４】図１に示した情報処理装置が生成する動的イメージの具体例を示す図である。
【図５】図１に示した情報処理装置が生成する動的イメージの具体例を示す図である。
【図６】図１に示した情報処理装置で管理する管理テーブルの具体例を示す図である。
【図７】図１に示した情報処理装置で管理する管理テーブルの具体例を示す図である。
【図８】図１に示した情報処理装置が生成する仮想ソースコードの具体例を示す図である。
【図９】図１に示した情報処理装置が生成する仮想ソースコードの具体例を示す図である。
【図１０】本発明の第２実施形態における情報処理装置の概略構成を示す機能ブロック図である。
【図１１】図１０に示した情報処理装置の処理の流れを示すフローチャートである。
【図１２】図１０に示した情報処理装置が処理対象となるソースコード（ベースソース）の具体例を示す図である。
【図１３】図１０に示した情報処理装置が生成する修正イメージの具体例を示す図である。
【図１４】図１０に示した情報処理装置が管理する管理テーブルの具体例を示す図である。
【図１５】図１０に示した情報処理装置が生成する仮想ソースコードの具体例を示す図である。
【発明を実施するための形態】
【００１４】
以下に本発明の実施の形態を説明する。以下の説明及び参照する図面の記載において、同一又は類似の構成には、それぞれ同一又は類似の符号が付されている。
【００１５】
（第１実施形態）
図１乃至図９は、本発明の第１実施形態を説明するための図である。以下、これらの図を参照しながら第１実施形態を詳細に説明する。
【００１６】
（概要）
図１は、本発明の第１実施形態における情報処理装置の構成を説明するための図である。
【００１７】
第１実施形態に係る情報処理装置１０は、作成（編集）したソースコードをコンパイルして実行プログラム（アプリケーション２７）を出力する装置である。
【００１８】
Ｃ言語では、コンパイルオプションによって動的にソースコードを変えるｉｆｄｅｆ記述や、コンパイル時に動的に処理に変換するマクロ記述が利用可能である。これによりＣ言語では、外的要因に合わせて実装を変えたい場合、これらの記述を利用して、コンパイル時に動的に実行プログラムを変えることが可能となっている。
【００１９】
一方、通常、Ｊａｖａ言語にはこれらの記述が存在していないので、コンパイル時に動的に実行プログラムを変えることは困難である。ここで、複数の実行形式を実現する１つの方法としては、プロパティとして外部から値を取得するロジックを実行プログラム（実行モジュールともいう）に埋込む方法が考えられる。しかしながら、この方法では、実行プログラムに不要なロジックが埋め込まれることとなる。
【００２０】
そこで情報処理装置１０は、作成（編集）したソースコードを変換して、静的なコード（ベースソース２１）と１以上の動的なコード（動的イメージ２３）とに分けて管理する。実行プログラム生成時（アプリケーション２７の生成時）には、情報処理装置１０は、まずベースソース２１と必要な動的イメージ２３とを組み合わせて仮想ソースコード２５を生成する。その後、当該仮想ソースコード２５をコンパイルすることで、情報処理装置１０は、不要なロジックを埋め込むことなく、アプリケーション２７の実装を動的に変えることができる。
【００２１】
（システム構成）
情報処理装置１０は、ソースコードを編集する編集部１０１と、変換部１０３と、コンパイル部１０５と、構成管理部１０７と、記憶部１１１とを有する。尚、情報処理装置１０を構成するこれらの機能ブロックは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算装置上で動作するソフトウェアで実装されていても、専用のハードウェアで実装されていても良い。すなわち、情報処理装置１０上の処理は、すべてコンピュータに実行させるプログラムにより実現されうる。
【００２２】
また、後述する構成管理テーブル１０９やベースソース２１、動的イメージ２３、仮想ソースコード２５、及びアプリケーション２７は、それぞれＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やメモリ等の記憶媒体に記憶される。特に本実施例においては、構成管理テーブル１０９、ベースソース２１、動的イメージ２３は記憶媒体である記憶部１１１に記憶されるものとする。
【００２３】
編集部１０１は、例えば図示しないキーボードやマウス等により入力されるユーザからの指示に応じて、図示しないソースコードを編集（又は作成）する。
【００２４】
変換部１０３は、編集部１０１により編集されたソースコード内の情報を分離して、静的なコードであるベースソース２１と、動的なコード（ベースソース２１に対する変更情報）である１以上の動的イメージ２３とを生成する。また、変換部１０３は、ベースソース２１と、必要な動的イメージ２３とを記憶部１１１から読込み、両者を組み合わせることにより仮想ソースコード２５を作成する機能も有する。つまり、動的イメージ２３は、ベースソース２１に変更を加えて仮想ソースコード２５を生成するためのものである。変換部１０３の機能については、図２乃至図９を参照しながら後に詳述する。
【００２５】
コンパイル部１０５は、変換部１０３により生成された仮想ソースコード２５の入力を受けて、当該仮想ソースコード２５をコンパイルすることで、実行プログラムであるアプリケーション２７を生成する。
【００２６】
構成管理部１０７は、ベースソース２１とそれに対する動的イメージ２３とを管理しており、ベースソース２１と動的イメージ２３との関係を構成管理テーブル１０９として記憶媒体である記憶部１１１に記憶する。構成管理テーブル１０９については、図６及び図７を参照しながら後述する。
【００２７】
（処理の具体例）
以下、図２乃至図９を参照しながら、情報処理装置１０による具体的処理例を説明する。図２は、Ｊａｖａによるソースファイルを編集部１０１で編集した結果得られたソースコードの具体例を示す図である。図２のソースコードの例では、Ｊａｖａソースコード中に、ｉｆｄｅｆ記述（＃ｉｆｄｅｆから＃ｅｎｄｉｆまで）とマクロ記述（ＭＡＣＲＯ１（ｏｐ））とが含まれる。
【００２８】
図３は、図２に例を示したソースコードの入力を受けて変換部１０３が生成する、ベースソース２１Ａの具体例である。変換部１０３は、テキスト検索でｉｆｄｅｆ記述又はマクロ記述を検出すると、それらの記述を内部識別子に置き換えることにより、ベースソース２１を生成する。図３のベースソース２１Ａの例では、ｉｆｄｅｆ記述がＣＨＧ＿ＶＡＬＵＥ１に、マクロ記述がＣＨＧ＿ＭＡＣＲＯ１に、それぞれ置換されている。これにより、ベースソース２１Ａは静的なコードとなる。
【００２９】
図４及び図５は、同じく図２に例を示したソースコードの入力を受けて変換部１０３が生成する動的イメージ２３Ａ、２３Ｂ及び２３Ｃの具体例である。
【００３０】
図４に具体例を示す動的イメージ２３Ａ及び２３Ｂは、ソースコード中のｉｆｄｅｆ記述に相当する。これらの動的イメージ２３Ａ及び２３Ｂは、ベースソース２１Ａでは内部識別子「ＣＨＧ＿ＶＡＬＵＥ１」として表現されている。尚、図４の例において、動的イメージ２３Ａには「ｅｄｉｔＶａｌｕｅ１＿ＡＡＡ１」という識別子が、動的イメージ２３Ｂには「ｅｄｉｔＶａｌｕｅ２＿ＡＡＡ２」という識別子が、それぞれ付与されている。
【００３１】
図５に具体例を示す動的イメージ２３Ｃは、ソースコード中のマクロ記述に相当する。動的イメージ２３Ｃは、ベースソース２１Ａの中では内部識別子「ＣＨＧ＿ＭＡＣＲＯ１」として表現されている。動的イメージ２３Ｃには「ｅｄｉｔＭＡＣＲＯ１」という識別子が付与されている。
【００３２】
ここで、マクロ記述では、引数の指定が可能であるので、構成管理部１０７が後述する構成管理テーブル１０９Ｂに引数の情報を記録すると共に、変換部１０３は、動的イメージ２３Ｃ中の、ベースソース２１Ａで指定されている引数と置換する部分を、内部識別子で置換する。図５の例では、引数ｏｐが、内部識別子「ｃｈｇ＿ｐ１」に置換されている。
【００３３】
図６及び図７は、構成管理部１０７が管理する構成管理テーブル１０９Ａ及び１０９Ｂの具体例である。ここで、構成管理テーブル１０９Ａはｉｆｄｅｆ記述に関する管理テーブル、構成管理テーブル１０９Ｂはマクロ記述（マクロ機能）に関する管理テーブルである。
【００３４】
ｉｆｄｅｆ記述に関する構成管理テーブル１０９Ａは、ｉｆｄｅｆ記述で参照される定数（今回の例では「ＶＡＬＵＥ１」）と、その定数に合致した内部識別子の情報とを含む。また、構成管理テーブル１０９Ａは、それぞれ対応する動的イメージ２３Ａ及び２３Ｂを参照するための識別子の情報も含む。
【００３５】
変換部１０３が仮想ソースコード２５中のｉｆｄｅｆ記述に相当する部分を生成する際には、まず、ベースソース２１Ａとマージすべき（組み合わせるべき）動的イメージ２３を、オプション指定の有無に応じて、動的イメージ２３Ａ及び２３Ｂから選択する。そして、変換部１０３は、選択した動的イメージ２３により、ベースソース２１Ａに含まれる内部識別子を置換する。
【００３６】
一方、マクロ記述に関する構成管理テーブル１０９Ｂは、マクロ記述で記載されるマクロ名（今回の例では「ＭＡＣＲＯ１」）と、そのマクロに合致した内部識別子（「ＣＨＧ＿ＭＡＣＲＯ１）の情報とを含む。また、前述の通り、構成管理テーブル１０９Ｂはベースソース２１で指定されている引数の情報（図７の例では「ｏｐ」）も有する。
【００３７】
図８及び図９は、変換部１０３が生成する仮想ソースコード２５Ａ及び２５Ｂの具体例を示す図である。図８に示す仮想ソースコード２５Ａは、オプション指定がなかったために、変換部１０３が動的イメージ２３Ａを選択して内部識別子「ＣＨＧ＿ＶＡＬＵＥ１」と置換（適用）すると共に、動的イメージ２３Ｃを内部識別子「ＣＨＧ＿ＭＡＣＲＯ１」に適用したものである。一方、図９に示す仮想ソースコード２５Ｂは、オプション指定があったことにより、変換部１０３が動的イメージ２３Ｂを選択して内部識別子「ＣＨＧ＿ＶＡＬＵＥ１」と置換すると共に、動的イメージ２３Ｃを内部識別子「ＣＨＧ＿ＭＡＣＲＯ１」に適用したものである。
【００３８】
（第１実施形態の効果）
本実施形態に係る情報処理装置１０は、ベースソース２１と、動的なコードである動的イメージ２３とを別々に管理する。これにより、Ｊａｖａ言語のソースコードでＣ言語のｉｆｄｅｆ記述及びマクロ記述に相当するコードを記述することが可能となる。
【００３９】
また、コンパイルにより生成されるアプリケーション２７の実装を動的に変えることができる。また、Ｃ言語技術者が容易にＪａｖａ言語を利用できるようになる。
【００４０】
（第２実施形態）
図１０乃至図１５は、本発明の第２実施形態を説明するための図である。以下、これらの図を参照しながら第２実施形態を詳細に説明する。尚、本実施形態において、第１実施形態と対応する構成等については、第１実施形態と同様の符号を付すと共に、説明を省略している場合がある。
【００４１】
（概要及びシステム構成）
図１０は、本発明の第２実施形態における情報処理装置１０の構成を説明するための図である。第２実施形態に係る情報処理装置１０は、ベースソース２１に対して加えた修正を動的なコード（修正イメージ２３、ベースソース２１に対する変更情報）として管理することにより、他の編集者に影響を与えることなく、修正の適用／非適用を切り替えて実行プログラム（アプリケーション２７）を生成することのできる装置である。
【００４２】
ここで、第２実施形態に係る情報処理装置１０は、第１実施形態と同様に、情報処理装置１０は、ソースコードを編集する編集部１０１と、変換部１０３と、コンパイル部１０５と、構成管理部１０７とを有する。ここで、変換部１０３の処理及び構成管理部１０７が管理する構成管理テーブル１０９の構成が大きく第１実施形態と異なる。以下、第１実施形態との相違を中心に、第２実施形態に係る情報処理装置１０の各構成について説明する。
【００４３】
構成管理部１０７は、プログラム編集の元となるベースソース２１Ｂ（元となるソースコード）を決定する。尚、ベースソース２１Ｂは元となるソースコードであるので、コンパイル部１０５で独立して（修正イメージ２３がなくとも）コンパイル可能である。
【００４４】
編集部１０１は、構成管理部０８を通じて決定されたベースソース２１Ｂに対して、ソースコードを編集する。
【００４５】
変換部１０３は、編集部１０１による編集結果であるソースコードの情報を、元となるベースソース２１Ｂと修正イメージ２３とに分離する。また変換部１０３は、ベースソース２１Ｂに修正イメージ２３を適用して仮想ソースコード２５を生成する機能も有する。
【００４６】
編集後のソースコードでアプリケーション２７を作成する場合には、変換部１０３ではベースソース２１Ｂに修正イメージ２３Ｄを適用して仮想ソースコード２５Ｃを生成し、コンパイル部１０５は当該仮想ソースコード２５をコンパイルしてアプリケーション２７Ｃを生成する。ここで、編集後のソースコードと、当該ソースコードを元に変換部１０３が生成した修正イメージ２３をベースソース２１Ｂに適用した仮想ソースコード２５とは、同一内容となる。
【００４７】
もしその後、再度編集する場合には、ベースソース２１Ｂに修正イメージ２３Ｄを適用したソースコードを編集部１０１に送り、編集部１０１は当該ソースコードをベースに編集する。編集部１０１から再編集結果を受け取った変換部１０３では、当該結果をベースソース２１Ｂと修正イメージ２３Ｅとに分離する。本実施形態では、ベースソース２１Ｂは変更されることなく、修正イメージ２３Ｅのみが修正部分として変更される。
【００４８】
アプリケーション２７Ｄを生成する際には、まず変換部１０３は修正イメージ２３Ｅをベースソース２１Ｂに適用して仮想ソースコード２５Ｄを生成し、コンパイル部１０５は当該仮想ソースコード２５Ｄをコンパイルしてアプリケーション２７Ｄを生成する。
【００４９】
もし、修正が不要になった場合には、修正イメージ２３Ｄや修正イメージ２３Ｅを削除（破棄）することで、元のソースコードであるベースソース２１Ｂに簡単に戻すことができる。
【００５０】
（処理の流れ）
以下、図１１を参照しながら、本実施形態に係る情報処理装置１０の処理の流れを説明する。図１１は、第２実施形態に係る情報処理装置１０の処理の流れを示すフローチャートである。
【００５１】
構成管理部１０７では、ベースソース２１Ｂとそれに対する修正イメージ２３を管理している。編集部１０１は、構成管理部１０７を通じて、編集対象とするベースソース２１Ｂを決定する（Ｓ３０１）。その後、編集部１０１は選択したベースソース２１Ｂを編集する（Ｓ３０３）。図１２は、編集元となるベースソース２１Ｂの例である。
【００５２】
変換部１０３は、編集後のソースコードの内容を、ベースソース２１Ｂと修正イメージ２３Ｄとに分ける（Ｓ３０５）。より具体的には、編集部１０１での編集結果と、ベースソース２１Ｂとの比較を行ってその差分を抽出することで、修正イメージ２３Ｄが生成できる。図１３は、図１２に例を示したベースソース２１Ｂに対する編集結果（差分）を示す修正イメージ２３Ｄの例である。図１３の例では、修正イメージ２３Ｄは、ベースソース２１Ｂの各行番号に対する変更種別（Ｕｐｄａｔｅ、Ｄｅｌｅｔｅ、Ａｄｄ）と、その編集後の内容（イメージ）の情報を含む。
【００５３】
続いて、構成管理部１０７がベースソース２１Ｂと修正イメージ２３Ｄとの関係を構成管理テーブル１０９に登録する（Ｓ３０７）。図１４は、構成管理テーブル１０９の例（構成管理テーブル１０９Ｃ）である。
【００５４】
図１４の構成管理テーブル１０９Ｃは、ベースソース２１Ｂとそれに対応する修正イメージ２３に関する情報の他に、それらベースソース２１Ｂと修正イメージ２３との組合せをまとめたレイヤを持つ。一般に、アプリケーションに対して修正を加える場合、複数のソースを修正することが多い。構成管理テーブル１０９は、それら意味ある纏まりを１つのレイヤとして管理する。図１４の例では、レイヤＡ１はベースソース２１Ｂを構成するＡＡＡ１．ｃ、ＢＢＢ１．ｃ、及びＣＣＣ１．ｃの３つのソースの変更からなる修正であり、レイヤＡ２はベースソース２１Ｂを構成するＡＡＡ１．ｃ、及びＢＢＢ１．ｃの２つのソースの変更からなる修正である。ユーザは、コンパイル時に適用するレイヤを切り替えることで、容易に異なる複数の修正を行ったアプリケーション２７を作成することができる。
【００５５】
その後、アプリケーション２７を生成する際には、まず、変換部１０３で、ベースソース２１Ｂと、それに対する修正イメージ２３Ｄを読込むと共に、両者の関係を構成管理テーブル１０９から読込むことで、仮想ソースコード２５Ｃを生成する（Ｓ３０９）。図１５に、図１２に示したベースソース２１Ｂと、図１３に示した修正イメージ２３Ｄとをマージして変換部１０３が生成する仮想ソースコード２５Ｃの例を示す。
【００５６】
コンパイル部１０５は、当該仮想ソースコード２５Ｃをコンパイルすることで、アプリケーション２７Ｃを作成する。
【００５７】
（第２実施形態の効果）
本実施形態に係る情報処理装置１０は、ベースソース２１Ｂと、それに対する修正を動的なソース（修正イメージ２３）とを別々に管理する。これにより、コンパイルにより生成する実行プログラム（アプリケーション２７）を動的に変えることができる。
【００５８】
つまり、ユーザは、他のユーザに影響を与えることなく、アプリケーションへの修正の適用／非適用を容易に切り替えることができるようになる。
【００５９】
（付記事項）
なお、前述の各実施形態の構成は、組み合わせたり或いは一部の構成部分を入れ替えたりしてもよい。また、本発明の構成は前述の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。
【００６０】
尚、前述の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００６１】
（付記１）
ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶する記憶手段と、前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成する変換手段と、前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段とを備える情報処理装置。
【００６２】
（付記２）
オリジナルソースコードから、１以上の識別子を含む前記ベースコードと、１以上の前記変更情報とを生成する生成手段を更に備え、前記変換手段は、前記ベースコード内の前記識別子に対して前記変更情報を適用することにより前記ソースコードを生成する、付記１記載の情報処理装置。
【００６３】
（付記３）
前記生成手段は、前記オリジナルソースコードから複数の前記変更情報を生成し、前記変換手段は、前記ベースコード内の１つの前記識別子に対して複数の前記変更情報のうちの１つを適用することにより前記ソースコードを生成する、付記２記載の情報処理装置。
【００６４】
（付記４）
前記変更情報は、マクロ記述に関する情報である、付記２記載の情報処理装置。
【００６５】
（付記５）
前記ベースコードは前記コンパイル手段がコンパイル可能である、付記１記載の情報処理装置。
【００６６】
（付記６）
前記ベースコードを編集するための編集手段を更に備え、前記変更情報は、前記編集手段による編集結果と前記ベースコードとの差分に相当する、付記１又は付記５記載の情報処理装置。
【００６７】
（付記７）
ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶媒体に記憶するステップと、前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える情報処理方法。
【００６８】
（付記８）
コンピュータに情報処理方法を実行させる情報処理プログラムであって、当該情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための１以上の変更情報とを記憶媒体に記憶するステップと、前記１以上の変更情報のうちの少なくとも１つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える、情報処理プログラム。
【符号の説明】
【００６９】
１０・・・情報処理装置、１０１・・・編集部、１０３・・・変換部、１０５・・・コンパイル部、１０７・・・構成管理部、１０９・・・構成管理テーブル、１１１・・・記憶部、２１・・・ベースソース、２３・・・動的イメージ（修正イメージ）、２５・・・仮想ソースコード
【図１】
2013114575.tif 000003
【図２】
2013114575.tif 000004
【図３】
2013114575.tif 000005
【図４】
2013114575.tif 000006
【図５】
2013114575.tif 000007
【図６】
2013114575.tif 000008
【図７】
2013114575.tif 000009
【図８】
2013114575.tif 000010
【図９】
2013114575.tif 000011
【図１０】
2013114575.tif 000012
【図１１】
2013114575.tif 000013
【図１２】
2013114575.tif 000014
【図１３】
2013114575.tif 000015
【図１４】
2013114575.tif 000016
【図１５】
2013114575.tif 000017