JP6066031B2 - Information processing apparatus, information processing method, and information processing program - Google Patents
Information processing apparatus, information processing method, and information processing program Download PDFInfo
- Publication number
- JP6066031B2 JP6066031B2 JP2011262116A JP2011262116A JP6066031B2 JP 6066031 B2 JP6066031 B2 JP 6066031B2 JP 2011262116 A JP2011262116 A JP 2011262116A JP 2011262116 A JP2011262116 A JP 2011262116A JP 6066031 B2 JP6066031 B2 JP 6066031B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- information processing
- base
- change information
- source code
- 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 - Fee Related
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
本発明に係るいくつかの態様は、情報処理装置、情報処理方法及び情報処理プログラムに関する。 Some embodiments according to the present invention relate to an information processing apparatus, an information processing method, and an information processing program.
状況に応じて、生成する実行プログラムを動的に変えたい場合がある。このとき、例えばC言語では、コンパイルオプションによって動的にソースコードを変えるifdef記述や、コンパイル時に動的に処理に変換するマクロ記述が利用可能である。よって、C言語でソースコードを記載する際には、これらの記述を利用して実行ファイルを動的に変えることが可能である。 Depending on the situation, you may want to dynamically change the execution program to be generated. At this time, for example, in the C language, an ifdef description that dynamically changes the source code according to a compile option and a macro description that is dynamically converted into a process at the time of compilation can be used. Therefore, when describing the source code in the C language, it is possible to dynamically change the executable file using these descriptions.
ここで、既存のソースファイルの編集については、例えば特許文献1に開示されている。特許文献1には、既存のソースプログラムを参照ソースプログラムとすることにより、ソースプログラムを再利用する技術が記載されている。 Here, editing of an existing source file is disclosed in Patent Document 1, for example. Patent Document 1 describes a technique for reusing a source program by using an existing source program as a reference source program.
しかしながら、例えばJava言語では、ifdef記述やマクロ記述が存在しないため、コンパイル時にソースコードを動的に変えることは難しい。 However, for example, in the Java language, since there is no ifdef description and macro description, it is difficult to dynamically change the source code at the time of compilation.
また、特許文献1に記載の技術は、あくまでソースプログラムの編集のみを対象としており、実行プログラムの変更については何ら考慮されていない。 In addition, the technique described in Patent Document 1 is intended only for editing a source program, and does not take into account any change in an execution program.
本発明のいくつかの態様は前述の課題に鑑みてなされたものであり、生成する実行プログラムを動的に変えることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的の1つとする。 Some aspects of the present invention have been made in view of the above-described problems, and an object thereof is to provide an information processing apparatus, an information processing method, and an information processing program capable of dynamically changing an execution program to be generated. One of them.
本発明に係る情報処理装置は、ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶する記憶手段と、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成する変換手段と、前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段とを備える。 An information processing apparatus according to the present invention includes a storage unit that stores a base code, one or more pieces of change information for changing the base code, and at least one of the one or more pieces of change information. Conversion means for generating source code by applying to the code, and compiling means for compiling from the source code generated by the conversion means into an execution program.
本発明に係る情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える。 An information processing method according to the present invention includes a step of storing a base code and one or more pieces of change information for making a change to the base code in a storage medium, and at least one of the one or more pieces of change information. The method includes a step of generating a source code by applying to the base code, and a step of compiling the generated source code into an execution program.
本発明に係る情報処理プログラムは、コンピュータに情報処理方法を実行させる情報処理プログラムであって、当該情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える。 An information processing program according to the present invention is an information processing program for causing a computer to execute an information processing method, and the information processing method includes a base code and one or more pieces of change information for making a change to the base code. A step of storing in a storage medium; a step of generating source code by applying at least one of the one or more pieces of change information to the base code; and a step of compiling from the generated source code into an execution program With.
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」の機能が1つの物理的手段や装置により実現されても良い。 In the present invention, the “part” does not simply mean a physical means, but includes a case where the function of the “part” is realized by software. Further, the function of one “unit” may be realized by two or more physical means or devices, or the function of two or more “units” may be realized by one physical means or device.
本発明によれば、生成する実行プログラムを動的に変えることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供することができる。 According to the present invention, it is possible to provide an information processing apparatus, an information processing method, and an information processing program capable of dynamically changing an execution program to be generated.
以下に本発明の実施の形態を説明する。以下の説明及び参照する図面の記載において、同一又は類似の構成には、それぞれ同一又は類似の符号が付されている。 Embodiments of the present invention will be described below. In the following description and the description of the drawings to be referred to, the same or similar components are denoted by the same or similar reference numerals.
(第1実施形態)
図1乃至図9は、本発明の第1実施形態を説明するための図である。以下、これらの図を参照しながら第1実施形態を詳細に説明する。
(First embodiment)
1 to 9 are diagrams for explaining a first embodiment of the present invention. Hereinafter, the first embodiment will be described in detail with reference to these drawings.
(概要)
図1は、本発明の第1実施形態における情報処理装置の構成を説明するための図である。
(Overview)
FIG. 1 is a diagram for explaining the configuration of the information processing apparatus according to the first embodiment of the present invention.
第1実施形態に係る情報処理装置10は、作成(編集)したソースコードをコンパイルして実行プログラム(アプリケーション27)を出力する装置である。 The information processing apparatus 10 according to the first embodiment is an apparatus that compiles a created (edited) source code and outputs an execution program (application 27).
C言語では、コンパイルオプションによって動的にソースコードを変えるifdef記述や、コンパイル時に動的に処理に変換するマクロ記述が利用可能である。これによりC言語では、外的要因に合わせて実装を変えたい場合、これらの記述を利用して、コンパイル時に動的に実行プログラムを変えることが可能となっている。 In the C language, an ifdef description that dynamically changes the source code according to a compile option and a macro description that is dynamically converted into a process at the time of compilation can be used. As a result, in the C language, when it is desired to change the implementation according to external factors, it is possible to dynamically change the execution program at the time of compilation using these descriptions.
一方、通常、Java言語にはこれらの記述が存在していないので、コンパイル時に動的に実行プログラムを変えることは困難である。ここで、複数の実行形式を実現する1つの方法としては、プロパティとして外部から値を取得するロジックを実行プログラム(実行モジュールともいう)に埋込む方法が考えられる。しかしながら、この方法では、実行プログラムに不要なロジックが埋め込まれることとなる。 On the other hand, since these descriptions usually do not exist in the Java language, it is difficult to dynamically change the execution program at the time of compilation. Here, as one method for realizing a plurality of execution formats, a method of embedding a logic for acquiring a value from the outside as a property in an execution program (also referred to as an execution module) is conceivable. However, in this method, unnecessary logic is embedded in the execution program.
そこで情報処理装置10は、作成(編集)したソースコードを変換して、静的なコード(ベースソース21)と1以上の動的なコード(動的イメージ23)とに分けて管理する。実行プログラム生成時(アプリケーション27の生成時)には、情報処理装置10は、まずベースソース21と必要な動的イメージ23とを組み合わせて仮想ソースコード25を生成する。その後、当該仮想ソースコード25をコンパイルすることで、情報処理装置10は、不要なロジックを埋め込むことなく、アプリケーション27の実装を動的に変えることができる。 Therefore, the information processing apparatus 10 converts the created (edited) source code and manages it by dividing it into a static code (base source 21) and one or more dynamic codes (dynamic image 23). When the execution program is generated (when the application 27 is generated), the information processing apparatus 10 first generates the virtual source code 25 by combining the base source 21 and the necessary dynamic image 23. Thereafter, by compiling the virtual source code 25, the information processing apparatus 10 can dynamically change the implementation of the application 27 without embedding unnecessary logic.
(システム構成)
情報処理装置10は、ソースコードを編集する編集部101と、変換部103と、コンパイル部105と、構成管理部107と、記憶部111とを有する。尚、情報処理装置10を構成するこれらの機能ブロックは、CPU(Central Processing Unit)等の演算装置上で動作するソフトウェアで実装されていても、専用のハードウェアで実装されていても良い。すなわち、情報処理装置10上の処理は、すべてコンピュータに実行させるプログラムにより実現されうる。
(System configuration)
The information processing apparatus 10 includes an editing unit 101 that edits source code, a conversion unit 103, a compilation unit 105, a configuration management unit 107, and a storage unit 111. Note that these functional blocks constituting the information processing apparatus 10 may be implemented by software operating on an arithmetic device such as a CPU (Central Processing Unit) or by dedicated hardware. That is, all the processes on the information processing apparatus 10 can be realized by a program executed by a computer.
また、後述する構成管理テーブル109やベースソース21、動的イメージ23、仮想ソースコード25、及びアプリケーション27は、それぞれHDD(Hard Disk Drive)やメモリ等の記憶媒体に記憶される。特に本実施例においては、構成管理テーブル109、ベースソース21、動的イメージ23は記憶媒体である記憶部111に記憶されるものとする。 A configuration management table 109, a base source 21, a dynamic image 23, a virtual source code 25, and an application 27, which will be described later, are stored in a storage medium such as an HDD (Hard Disk Drive) or a memory. Particularly in this embodiment, the configuration management table 109, the base source 21, and the dynamic image 23 are stored in the storage unit 111 that is a storage medium.
編集部101は、例えば図示しないキーボードやマウス等により入力されるユーザからの指示に応じて、図示しないソースコードを編集(又は作成)する。 The editing unit 101 edits (or creates) a source code (not shown) in response to an instruction from a user input with a keyboard or mouse (not shown), for example.
変換部103は、編集部101により編集されたソースコード内の情報を分離して、静的なコードであるベースソース21と、動的なコード(ベースソース21に対する変更情報)である1以上の動的イメージ23とを生成する。また、変換部103は、ベースソース21と、必要な動的イメージ23とを記憶部111から読込み、両者を組み合わせることにより仮想ソースコード25を作成する機能も有する。つまり、動的イメージ23は、ベースソース21に変更を加えて仮想ソースコード25を生成するためのものである。変換部103の機能については、図2乃至図9を参照しながら後に詳述する。 The conversion unit 103 separates information in the source code edited by the editing unit 101, and includes a base source 21 that is static code and one or more dynamic code (change information for the base source 21). A dynamic image 23 is generated. The conversion unit 103 also has a function of creating the virtual source code 25 by reading the base source 21 and the necessary dynamic image 23 from the storage unit 111 and combining them. That is, the dynamic image 23 is used to generate the virtual source code 25 by changing the base source 21. The function of the conversion unit 103 will be described in detail later with reference to FIGS.
コンパイル部105は、変換部103により生成された仮想ソースコード25の入力を受けて、当該仮想ソースコード25をコンパイルすることで、実行プログラムであるアプリケーション27を生成する。 The compiling unit 105 receives the input of the virtual source code 25 generated by the conversion unit 103 and compiles the virtual source code 25 to generate an application 27 that is an execution program.
構成管理部107は、ベースソース21とそれに対する動的イメージ23とを管理しており、ベースソース21と動的イメージ23との関係を構成管理テーブル109として記憶媒体である記憶部111に記憶する。構成管理テーブル109については、図6及び図7を参照しながら後述する。 The configuration management unit 107 manages the base source 21 and the dynamic image 23 corresponding thereto, and stores the relationship between the base source 21 and the dynamic image 23 as a configuration management table 109 in the storage unit 111 that is a storage medium. . The configuration management table 109 will be described later with reference to FIGS.
(処理の具体例)
以下、図2乃至図9を参照しながら、情報処理装置10による具体的処理例を説明する。図2は、Javaによるソースファイルを編集部101で編集した結果得られたソースコードの具体例を示す図である。図2のソースコードの例では、Javaソースコード中に、ifdef記述(#ifdefから#endifまで)とマクロ記述(MACRO1(op))とが含まれる。
(Specific example of processing)
Hereinafter, specific processing examples by the information processing apparatus 10 will be described with reference to FIGS. 2 to 9. FIG. 2 is a diagram showing a specific example of the source code obtained as a result of editing the source file by Java by the editing unit 101. In the example of the source code of FIG. 2, the Java source code includes an ifdef description (from #ifdef to #endif) and a macro description (MACRO1 (op)).
図3は、図2に例を示したソースコードの入力を受けて変換部103が生成する、ベースソース21Aの具体例である。変換部103は、テキスト検索でifdef記述又はマクロ記述を検出すると、それらの記述を内部識別子に置き換えることにより、ベースソース21を生成する。図3のベースソース21Aの例では、ifdef記述がCHG_VALUE1に、マクロ記述がCHG_MACRO1に、それぞれ置換されている。これにより、ベースソース21Aは静的なコードとなる。 FIG. 3 is a specific example of the base source 21A that is generated by the conversion unit 103 in response to the input of the source code illustrated in FIG. When detecting the ifdef description or the macro description by text search, the conversion unit 103 generates the base source 21 by replacing the description with an internal identifier. In the example of the base source 21A in FIG. 3, the ifdef description is replaced with CHG_VALUE1, and the macro description is replaced with CHG_MACRO1. Thereby, the base source 21A becomes a static code.
図4及び図5は、同じく図2に例を示したソースコードの入力を受けて変換部103が生成する動的イメージ23A、23B及び23Cの具体例である。 4 and 5 are specific examples of the dynamic images 23A, 23B, and 23C generated by the conversion unit 103 in response to the input of the source code shown in the example of FIG.
図4に具体例を示す動的イメージ23A及び23Bは、ソースコード中のifdef記述に相当する。これらの動的イメージ23A及び23Bは、ベースソース21Aでは内部識別子「CHG_VALUE1」として表現されている。尚、図4の例において、動的イメージ23Aには「editValue1_AAA1」という識別子が、動的イメージ23Bには「editValue2_AAA2」という識別子が、それぞれ付与されている。 The dynamic images 23A and 23B whose specific examples are shown in FIG. 4 correspond to the ifdef description in the source code. These dynamic images 23A and 23B are expressed as an internal identifier “CHG_VALUE1” in the base source 21A. In the example of FIG. 4, the identifier “editValue1_AAA1” is assigned to the dynamic image 23A, and the identifier “editValue2_AAA2” is assigned to the dynamic image 23B.
図5に具体例を示す動的イメージ23Cは、ソースコード中のマクロ記述に相当する。動的イメージ23Cは、ベースソース21Aの中では内部識別子「CHG_MACRO1」として表現されている。動的イメージ23Cには「editMACRO1」という識別子が付与されている。 The dynamic image 23C shown in a specific example in FIG. 5 corresponds to a macro description in the source code. The dynamic image 23C is expressed as an internal identifier “CHG_MACRO1” in the base source 21A. An identifier “editMACRO1” is assigned to the dynamic image 23C.
ここで、マクロ記述では、引数の指定が可能であるので、構成管理部107が後述する構成管理テーブル109Bに引数の情報を記録すると共に、変換部103は、動的イメージ23C中の、ベースソース21Aで指定されている引数と置換する部分を、内部識別子で置換する。図5の例では、引数opが、内部識別子「chg_p1」に置換されている。 Here, since it is possible to specify an argument in the macro description, the configuration management unit 107 records the argument information in a configuration management table 109B described later, and the conversion unit 103 includes the base source in the dynamic image 23C. The part that replaces the argument specified in 21A is replaced with an internal identifier. In the example of FIG. 5, the argument op is replaced with the internal identifier “chg_p1”.
図6及び図7は、構成管理部107が管理する構成管理テーブル109A及び109Bの具体例である。ここで、構成管理テーブル109Aはifdef記述に関する管理テーブル、構成管理テーブル109Bはマクロ記述(マクロ機能)に関する管理テーブルである。 6 and 7 are specific examples of the configuration management tables 109A and 109B managed by the configuration management unit 107. FIG. Here, the configuration management table 109A is a management table related to ifdef description, and the configuration management table 109B is a management table related to macro description (macro function).
ifdef記述に関する構成管理テーブル109Aは、ifdef記述で参照される定数(今回の例では「VALUE1」)と、その定数に合致した内部識別子の情報とを含む。また、構成管理テーブル109Aは、それぞれ対応する動的イメージ23A及び23Bを参照するための識別子の情報も含む。 The configuration management table 109A related to the ifdef description includes a constant (“VALUE1” in this example) referred to in the ifdef description and information on an internal identifier that matches the constant. The configuration management table 109A also includes identifier information for referring to the corresponding dynamic images 23A and 23B.
変換部103が仮想ソースコード25中のifdef記述に相当する部分を生成する際には、まず、ベースソース21Aとマージすべき(組み合わせるべき)動的イメージ23を、オプション指定の有無に応じて、動的イメージ23A及び23Bから選択する。そして、変換部103は、選択した動的イメージ23により、ベースソース21Aに含まれる内部識別子を置換する。 When the conversion unit 103 generates a portion corresponding to the ifdef description in the virtual source code 25, first, the dynamic image 23 to be merged (to be combined) with the base source 21A is determined according to whether an option is specified. Select from dynamic images 23A and 23B. Then, the conversion unit 103 replaces the internal identifier included in the base source 21A with the selected dynamic image 23.
一方、マクロ記述に関する構成管理テーブル109Bは、マクロ記述で記載されるマクロ名(今回の例では「MACRO1」)と、そのマクロに合致した内部識別子(「CHG_MACRO1)の情報とを含む。また、前述の通り、構成管理テーブル109Bはベースソース21で指定されている引数の情報(図7の例では「op」)も有する。 On the other hand, the configuration management table 109B related to the macro description includes a macro name (“MACRO1” in this example) described in the macro description and information on an internal identifier (“CHG_MACRO1) that matches the macro. As described above, the configuration management table 109B also has information on arguments specified by the base source 21 (“op” in the example of FIG. 7).
図8及び図9は、変換部103が生成する仮想ソースコード25A及び25Bの具体例を示す図である。図8に示す仮想ソースコード25Aは、オプション指定がなかったために、変換部103が動的イメージ23Aを選択して内部識別子「CHG_VALUE1」と置換(適用)すると共に、動的イメージ23Cを内部識別子「CHG_MACRO1」に適用したものである。一方、図9に示す仮想ソースコード25Bは、オプション指定があったことにより、変換部103が動的イメージ23Bを選択して内部識別子「CHG_VALUE1」と置換すると共に、動的イメージ23Cを内部識別子「CHG_MACRO1」に適用したものである。 8 and 9 are diagrams illustrating specific examples of the virtual source codes 25A and 25B generated by the conversion unit 103. FIG. In the virtual source code 25A shown in FIG. 8, since the option is not specified, the conversion unit 103 selects the dynamic image 23A and replaces (applies) the internal identifier “CHG_VALUE1”, and also replaces the dynamic image 23C with the internal identifier “ This is applied to “CHG_MACRO1”. On the other hand, in the virtual source code 25B shown in FIG. 9, since the option is specified, the conversion unit 103 selects the dynamic image 23B and replaces it with the internal identifier “CHG_VALUE1”, and also replaces the dynamic image 23C with the internal identifier “ This is applied to “CHG_MACRO1”.
(第1実施形態の効果)
本実施形態に係る情報処理装置10は、ベースソース21と、動的なコードである動的イメージ23とを別々に管理する。これにより、Java言語のソースコードでC言語のifdef記述及びマクロ記述に相当するコードを記述することが可能となる。
(Effect of 1st Embodiment)
The information processing apparatus 10 according to the present embodiment separately manages the base source 21 and the dynamic image 23 that is a dynamic code. As a result, it is possible to describe a code corresponding to an ifdef description and a macro description in C language with Java language source code.
また、コンパイルにより生成されるアプリケーション27の実装を動的に変えることができる。また、C言語技術者が容易にJava言語を利用できるようになる。 In addition, the implementation of the application 27 generated by compilation can be dynamically changed. In addition, the C language engineer can easily use the Java language.
(第2実施形態)
図10乃至図15は、本発明の第2実施形態を説明するための図である。以下、これらの図を参照しながら第2実施形態を詳細に説明する。尚、本実施形態において、第1実施形態と対応する構成等については、第1実施形態と同様の符号を付すと共に、説明を省略している場合がある。
(Second Embodiment)
10 to 15 are diagrams for explaining a second embodiment of the present invention. Hereinafter, the second embodiment will be described in detail with reference to these drawings. In addition, in this embodiment, about the structure etc. corresponding to 1st Embodiment, while attaching | subjecting the code | symbol similar to 1st Embodiment, description may be abbreviate | omitted.
(概要及びシステム構成)
図10は、本発明の第2実施形態における情報処理装置10の構成を説明するための図である。第2実施形態に係る情報処理装置10は、ベースソース21に対して加えた修正を動的なコード(修正イメージ23、ベースソース21に対する変更情報)として管理することにより、他の編集者に影響を与えることなく、修正の適用/非適用を切り替えて実行プログラム(アプリケーション27)を生成することのできる装置である。
(Outline and system configuration)
FIG. 10 is a diagram for explaining the configuration of the information processing apparatus 10 according to the second embodiment of the present invention. The information processing apparatus 10 according to the second embodiment affects other editors by managing modifications made to the base source 21 as dynamic codes (modification image 23, change information on the base source 21). The execution program (application 27) can be generated by switching the application / non-application of the modification without giving
ここで、第2実施形態に係る情報処理装置10は、第1実施形態と同様に、情報処理装置10は、ソースコードを編集する編集部101と、変換部103と、コンパイル部105と、構成管理部107とを有する。ここで、変換部103の処理及び構成管理部107が管理する構成管理テーブル109の構成が大きく第1実施形態と異なる。以下、第1実施形態との相違を中心に、第2実施形態に係る情報処理装置10の各構成について説明する。 Here, as in the first embodiment, the information processing apparatus 10 according to the second embodiment includes an editing unit 101 that edits a source code, a conversion unit 103, a compiling unit 105, and a configuration. And a management unit 107. Here, the processing of the conversion unit 103 and the configuration of the configuration management table 109 managed by the configuration management unit 107 are largely different from the first embodiment. Hereinafter, each configuration of the information processing apparatus 10 according to the second embodiment will be described focusing on differences from the first embodiment.
構成管理部107は、プログラム編集の元となるベースソース21B(元となるソースコード)を決定する。尚、ベースソース21Bは元となるソースコードであるので、コンパイル部105で独立して(修正イメージ23がなくとも)コンパイル可能である。 The configuration management unit 107 determines a base source 21B (original source code) that is a source of program editing. Since the base source 21B is the original source code, it can be compiled independently (even without the correction image 23) by the compiling unit 105.
編集部101は、構成管理部08を通じて決定されたベースソース21Bに対して、ソースコードを編集する。 The editing unit 101 edits the source code for the base source 21B determined through the configuration management unit 08.
変換部103は、編集部101による編集結果であるソースコードの情報を、元となるベースソース21Bと修正イメージ23とに分離する。また変換部103は、ベースソース21Bに修正イメージ23を適用して仮想ソースコード25を生成する機能も有する。 The conversion unit 103 separates the information of the source code, which is the edited result by the editing unit 101, into the base source 21B and the modified image 23 that are the original. The conversion unit 103 also has a function of generating the virtual source code 25 by applying the modified image 23 to the base source 21B.
編集後のソースコードでアプリケーション27を作成する場合には、変換部103ではベースソース21Bに修正イメージ23Dを適用して仮想ソースコード25Cを生成し、コンパイル部105は当該仮想ソースコード25をコンパイルしてアプリケーション27Cを生成する。ここで、編集後のソースコードと、当該ソースコードを元に変換部103が生成した修正イメージ23をベースソース21Bに適用した仮想ソースコード25とは、同一内容となる。 When the application 27 is created with the edited source code, the conversion unit 103 applies the modified image 23D to the base source 21B to generate the virtual source code 25C, and the compiling unit 105 compiles the virtual source code 25. To generate the application 27C. Here, the edited source code and the virtual source code 25 obtained by applying the modified image 23 generated by the conversion unit 103 based on the source code to the base source 21B have the same contents.
もしその後、再度編集する場合には、ベースソース21Bに修正イメージ23Dを適用したソースコードを編集部101に送り、編集部101は当該ソースコードをベースに編集する。編集部101から再編集結果を受け取った変換部103では、当該結果をベースソース21Bと修正イメージ23Eとに分離する。本実施形態では、ベースソース21Bは変更されることなく、修正イメージ23Eのみが修正部分として変更される。 Thereafter, when editing again, the source code obtained by applying the modified image 23D to the base source 21B is sent to the editing unit 101, and the editing unit 101 edits based on the source code. Upon receiving the re-editing result from the editing unit 101, the converting unit 103 separates the result into the base source 21B and the modified image 23E. In the present embodiment, the base source 21B is not changed, and only the corrected image 23E is changed as a corrected portion.
アプリケーション27Dを生成する際には、まず変換部103は修正イメージ23Eをベースソース21Bに適用して仮想ソースコード25Dを生成し、コンパイル部105は当該仮想ソースコード25Dをコンパイルしてアプリケーション27Dを生成する。 When generating the application 27D, first, the converting unit 103 applies the modified image 23E to the base source 21B to generate the virtual source code 25D, and the compiling unit 105 compiles the virtual source code 25D to generate the application 27D. To do.
もし、修正が不要になった場合には、修正イメージ23Dや修正イメージ23Eを削除(破棄)することで、元のソースコードであるベースソース21Bに簡単に戻すことができる。 If the correction becomes unnecessary, it is possible to easily return to the base source 21B which is the original source code by deleting (discarding) the correction image 23D and the correction image 23E.
(処理の流れ)
以下、図11を参照しながら、本実施形態に係る情報処理装置10の処理の流れを説明する。図11は、第2実施形態に係る情報処理装置10の処理の流れを示すフローチャートである。
(Process flow)
Hereinafter, the flow of processing of the information processing apparatus 10 according to the present embodiment will be described with reference to FIG. FIG. 11 is a flowchart showing the flow of processing of the information processing apparatus 10 according to the second embodiment.
構成管理部107では、ベースソース21Bとそれに対する修正イメージ23を管理している。編集部101は、構成管理部107を通じて、編集対象とするベースソース21Bを決定する(S301)。その後、編集部101は選択したベースソース21Bを編集する(S303)。図12は、編集元となるベースソース21Bの例である。 The configuration management unit 107 manages the base source 21B and the correction image 23 for the base source 21B. The editing unit 101 determines the base source 21B to be edited through the configuration management unit 107 (S301). Thereafter, the editing unit 101 edits the selected base source 21B (S303). FIG. 12 shows an example of the base source 21B as the editing source.
変換部103は、編集後のソースコードの内容を、ベースソース21Bと修正イメージ23Dとに分ける(S305)。より具体的には、編集部101での編集結果と、ベースソース21Bとの比較を行ってその差分を抽出することで、修正イメージ23Dが生成できる。図13は、図12に例を示したベースソース21Bに対する編集結果(差分)を示す修正イメージ23Dの例である。図13の例では、修正イメージ23Dは、ベースソース21Bの各行番号に対する変更種別(Update、Delete、Add)と、その編集後の内容(イメージ)の情報を含む。 The conversion unit 103 divides the contents of the edited source code into a base source 21B and a modified image 23D (S305). More specifically, the modified image 23D can be generated by comparing the edited result in the editing unit 101 with the base source 21B and extracting the difference. FIG. 13 is an example of a modified image 23D showing an editing result (difference) for the base source 21B shown in FIG. In the example of FIG. 13, the modified image 23D includes information on the change type (Update, Delete, Add) for each row number of the base source 21B and the edited content (image).
続いて、構成管理部107がベースソース21Bと修正イメージ23Dとの関係を構成管理テーブル109に登録する(S307)。図14は、構成管理テーブル109の例(構成管理テーブル109C)である。 Subsequently, the configuration management unit 107 registers the relationship between the base source 21B and the modified image 23D in the configuration management table 109 (S307). FIG. 14 is an example of the configuration management table 109 (configuration management table 109C).
図14の構成管理テーブル109Cは、ベースソース21Bとそれに対応する修正イメージ23に関する情報の他に、それらベースソース21Bと修正イメージ23との組合せをまとめたレイヤを持つ。一般に、アプリケーションに対して修正を加える場合、複数のソースを修正することが多い。構成管理テーブル109は、それら意味ある纏まりを1つのレイヤとして管理する。図14の例では、レイヤA1はベースソース21Bを構成するAAA1.c、BBB1.c、及びCCC1.cの3つのソースの変更からなる修正であり、レイヤA2はベースソース21Bを構成するAAA1.c、及びBBB1.cの2つのソースの変更からなる修正である。ユーザは、コンパイル時に適用するレイヤを切り替えることで、容易に異なる複数の修正を行ったアプリケーション27を作成することができる。 The configuration management table 109C of FIG. 14 has a layer in which combinations of the base source 21B and the modified image 23 are collected in addition to the information related to the base source 21B and the modified image 23 corresponding thereto. In general, when modifying an application, a plurality of sources are often modified. The configuration management table 109 manages these meaningful groups as one layer. In the example of FIG. 14, the layer A1 includes AAA1. c, BBB1. c, and CCC1. c is a modification consisting of three source changes, and layer A2 is composed of AAA1. c, and BBB1. A modification consisting of two source changes of c. The user can easily create the application 27 with a plurality of different corrections by switching the layers to be applied during compilation.
その後、アプリケーション27を生成する際には、まず、変換部103で、ベースソース21Bと、それに対する修正イメージ23Dを読込むと共に、両者の関係を構成管理テーブル109から読込むことで、仮想ソースコード25Cを生成する(S309)。図15に、図12に示したベースソース21Bと、図13に示した修正イメージ23Dとをマージして変換部103が生成する仮想ソースコード25Cの例を示す。 Thereafter, when generating the application 27, first, the conversion unit 103 reads the base source 21 </ b> B and the correction image 23 </ b> D corresponding to the base source 21 </ b> B, and also reads the relationship between the two from the configuration management table 109. 25C is generated (S309). FIG. 15 shows an example of the virtual source code 25C generated by the conversion unit 103 by merging the base source 21B shown in FIG. 12 and the modified image 23D shown in FIG.
コンパイル部105は、当該仮想ソースコード25Cをコンパイルすることで、アプリケーション27Cを作成する。 The compiling unit 105 creates the application 27C by compiling the virtual source code 25C.
(第2実施形態の効果)
本実施形態に係る情報処理装置10は、ベースソース21Bと、それに対する修正を動的なソース(修正イメージ23)とを別々に管理する。これにより、コンパイルにより生成する実行プログラム(アプリケーション27)を動的に変えることができる。
(Effect of 2nd Embodiment)
The information processing apparatus 10 according to the present embodiment separately manages the base source 21 </ b> B and the dynamic source (corrected image 23) for correcting the base source 21 </ b> B. Thereby, the execution program (application 27) produced | generated by compilation can be changed dynamically.
つまり、ユーザは、他のユーザに影響を与えることなく、アプリケーションへの修正の適用/非適用を容易に切り替えることができるようになる。 That is, the user can easily switch between application / non-application of the modification to the application without affecting other users.
(付記事項)
なお、前述の各実施形態の構成は、組み合わせたり或いは一部の構成部分を入れ替えたりしてもよい。また、本発明の構成は前述の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。
(Additional notes)
Note that the configurations of the above-described embodiments may be combined or some of the components may be replaced. The configuration of the present invention is not limited to the above-described embodiment, and various modifications may be made without departing from the scope of the present invention.
尚、前述の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。 A part or all of each of the above-described embodiments can be described as in the following supplementary notes, but is not limited thereto.
(付記1)
ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶する記憶手段と、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成する変換手段と、前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段とを備える情報処理装置。
(Appendix 1)
A storage means for storing a base code and one or more pieces of change information for making a change to the base code, and applying at least one of the one or more pieces of change information to the base code An information processing apparatus comprising conversion means for generating and compiling means for compiling the source code generated by the conversion means into an execution program.
(付記2)
オリジナルソースコードから、1以上の識別子を含む前記ベースコードと、1以上の前記変更情報とを生成する生成手段を更に備え、前記変換手段は、前記ベースコード内の前記識別子に対して前記変更情報を適用することにより前記ソースコードを生成する、付記1記載の情報処理装置。
(Appendix 2)
The information processing apparatus further includes generating means for generating the base code including one or more identifiers and one or more change information from the original source code, wherein the conversion means is configured to change the change information with respect to the identifiers in the base code. The information processing apparatus according to appendix 1, wherein the source code is generated by applying.
(付記3)
前記生成手段は、前記オリジナルソースコードから複数の前記変更情報を生成し、前記変換手段は、前記ベースコード内の1つの前記識別子に対して複数の前記変更情報のうちの1つを適用することにより前記ソースコードを生成する、付記2記載の情報処理装置。
(Appendix 3)
The generation unit generates a plurality of pieces of change information from the original source code, and the conversion unit applies one of the plurality of pieces of change information to one identifier in the base code. The information processing apparatus according to appendix 2, wherein the source code is generated by:
(付記4)
前記変更情報は、マクロ記述に関する情報である、付記2記載の情報処理装置。
(Appendix 4)
The information processing apparatus according to attachment 2, wherein the change information is information related to a macro description.
(付記5)
前記ベースコードは前記コンパイル手段がコンパイル可能である、付記1記載の情報処理装置。
(Appendix 5)
The information processing apparatus according to appendix 1, wherein the base code can be compiled by the compiling unit.
(付記6)
前記ベースコードを編集するための編集手段を更に備え、前記変更情報は、前記編集手段による編集結果と前記ベースコードとの差分に相当する、付記1又は付記5記載の情報処理装置。
(Appendix 6)
The information processing apparatus according to appendix 1 or appendix 5, further comprising an editing unit for editing the base code, wherein the change information corresponds to a difference between an editing result by the editing unit and the base code.
(付記7)
ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える情報処理方法。
(Appendix 7)
Storing a base code and one or more pieces of change information for making changes to the base code in a storage medium; and applying at least one of the one or more pieces of change information to the base code An information processing method comprising the steps of generating a code and compiling the generated source code into an execution program.
(付記8)
コンピュータに情報処理方法を実行させる情報処理プログラムであって、当該情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える、情報処理プログラム。
(Appendix 8)
An information processing program for causing a computer to execute an information processing method, the information processing method storing a base code and one or more pieces of change information for changing the base code in a storage medium; An information processing program comprising: generating a source code by applying at least one of one or more pieces of change information to the base code; and compiling from the generated source code into an execution program.
10・・・情報処理装置、101・・・編集部、103・・・変換部、105・・・コンパイル部、107・・・構成管理部、109・・・構成管理テーブル、111・・・記憶部、21・・・ベースソース、23・・・動的イメージ(修正イメージ)、25・・・仮想ソースコード DESCRIPTION OF SYMBOLS 10 ... Information processing apparatus, 101 ... Editing part, 103 ... Conversion part, 105 ... Compile part, 107 ... Configuration management part, 109 ... Configuration management table, 111 ... Memory | storage Part 21 ... base source 23 ... dynamic image (modified image) 25 ... virtual source code
Claims (7)
前記ベースコードと、当該ベースコードに変更を加えるための1以上の前記変更情報と、前記ベースコード及び前記変更情報の関係を示す管理情報とを記憶する記憶手段と、
前記管理情報に基づき、前記1以上の変更情報のうちから選択された、少なくとも1つの変更情報を前記ベースコードに適用することによりソースコードを生成する変換手段と、
前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段と、
を備え、
前記変換手段は、前記ベースコード内の前記識別子に対して前記変更情報を適用することにより前記ソースコードを生成する、
情報処理装置。 Generating means for generating a base code including one or more identifiers and one or more change information from the original source code;
And said base code, storage means for storing the one or more of the change information for making changes to the base code, and management information indicating a relationship of the base code and the change information,
Conversion means for generating source code by applying at least one change information selected from the one or more pieces of change information to the base code based on the management information;
Compiling means for compiling from the source code generated by the converting means into an execution program ;
With
The converting means generates the source code by applying the change information to the identifier in the base code.
Information processing device.
前記変換手段は、前記ベースコード内の1つの前記識別子に対して複数の前記変更情報のうちの1つを適用することにより前記ソースコードを生成する、
請求項1記載の情報処理装置。 The generation means generates a plurality of the change information from the original source code,
The converting means generates the source code by applying one of the plurality of pieces of change information to one identifier in the base code.
The information processing apparatus according to claim 1 .
請求項1記載の情報処理装置。 The change information is information related to a macro description.
The information processing apparatus according to claim 1 .
請求項1記載の情報処理装置。 The base code can be compiled by the compiling means;
The information processing apparatus according to claim 1.
を更に備え、
前記変更情報は、前記編集手段による編集結果と前記ベースコードとの差分に相当する、
請求項1又は請求項4記載の情報処理装置。 An editing means for editing the base code;
The change information corresponds to the difference between the editing result by the editing means and the base code.
The information processing apparatus according to claim 1 or 4 .
前記ベースコードと、当該ベースコードに変更を加えるための1以上の前記変更情報と、前記ベースコード及び前記変更情報の関係を示す管理情報とを記憶媒体に記憶するステップと、
前記管理情報に基づき、前記1以上の変更情報のうちから選択された、少なくとも1つの変更情報を前記ベースコードに適用することによりソースコードを生成するステップと、
生成した前記ソースコードから実行プログラムへとコンパイルするステップと
を備え、
前記ベースコード内の前記識別子に対して前記変更情報を適用することにより前記ソースコードを生成する、
情報処理方法。 Generating a base code including one or more identifiers and one or more change information from the original source code;
Storing the base code, one or more pieces of change information for changing the base code, and management information indicating a relationship between the base code and the change information in a storage medium;
Generating source code by applying at least one change information selected from the one or more change information to the base code based on the management information;
Compiling from the generated source code into an execution program ,
Generating the source code by applying the change information to the identifier in the base code;
Information processing method.
オリジナルソースコードから、1以上の識別子を含むベースコードと、1以上の変更情報とを生成するステップと
ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報と、前記ベースコード及び前記変更情報の関係を示す管理情報とを記憶媒体に記憶するステップと、
前記管理情報に基づき、前記1以上の変更情報のうちから選択された、少なくとも1つの変更情報を前記ベースコードに適用することによりソースコードを生成するステップと、
生成した前記ソースコードから実行プログラムへとコンパイルするステップと
を備え、
前記ベースコード内の前記識別子に対して前記変更情報を適用することにより前記ソースコードを生成する、
情報処理プログラム。 An information processing program for causing a computer to execute an information processing method,
Generating a base code including one or more identifiers from the original source code, one or more pieces of change information, a base code, one or more pieces of change information for changing the base code, the base code, and Storing management information indicating the relationship of the change information in a storage medium;
Generating source code by applying at least one change information selected from the one or more change information to the base code based on the management information;
Compiling from the generated source code into an execution program ,
Generating the source code by applying the change information to the identifier in the base code;
Information processing program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011262116A JP6066031B2 (en) | 2011-11-30 | 2011-11-30 | Information processing apparatus, information processing method, and information processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011262116A JP6066031B2 (en) | 2011-11-30 | 2011-11-30 | Information processing apparatus, information processing method, and information processing program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013114575A JP2013114575A (en) | 2013-06-10 |
JP6066031B2 true JP6066031B2 (en) | 2017-01-25 |
Family
ID=48710041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011262116A Expired - Fee Related JP6066031B2 (en) | 2011-11-30 | 2011-11-30 | Information processing apparatus, information processing method, and information processing program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6066031B2 (en) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01239640A (en) * | 1988-03-22 | 1989-09-25 | Nec Corp | High speed generating system for plural object programs |
JPH01270134A (en) * | 1988-04-22 | 1989-10-27 | Nec Corp | System for taking over compilation variable |
JPH02242340A (en) * | 1989-03-15 | 1990-09-26 | Fujitsu Ltd | Changed macro expanding and correcting system |
EP0528617B1 (en) * | 1991-08-19 | 1999-12-22 | Sun Microsystems, Inc. | Method and apparatus for change control in multiple development environments. |
JPH0689170A (en) * | 1992-09-09 | 1994-03-29 | Nec Software Ltd | Source program analysis method for case system |
JP2000215037A (en) * | 1999-01-22 | 2000-08-04 | Toshiba Corp | Device and method for displaying source code and debugging processor |
US6427228B1 (en) * | 1999-05-12 | 2002-07-30 | International Business Machines Corporation | Combining a meta data file and java source code to dynamically create java classes and javabeans |
JP2002007121A (en) * | 2000-06-26 | 2002-01-11 | Nec Corp | Method for controlling history of change of source file and device for the same and medium recording its program |
US6986129B2 (en) * | 2001-05-16 | 2006-01-10 | Sun Microsystems, Inc. | System and method for java preprocessor |
US8171452B2 (en) * | 2005-12-30 | 2012-05-01 | Sap Ag | Dynamic software enhancement |
JP4568262B2 (en) * | 2006-09-29 | 2010-10-27 | 日本たばこ産業株式会社 | Data collection system |
JP4963070B2 (en) * | 2007-03-02 | 2012-06-27 | 株式会社日立ソリューションズ | Software component template management system |
-
2011
- 2011-11-30 JP JP2011262116A patent/JP6066031B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013114575A (en) | 2013-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6398725B2 (en) | Compile program, compile method, and compiler apparatus | |
US8266416B2 (en) | Dynamic reconfiguration supporting method, dynamic reconfiguration supporting apparatus, and dynamic reconfiguration system | |
JP2014153908A (en) | Test data generation program, method and device | |
US8584080B2 (en) | Modeling and generating computer software product line variants | |
US7987457B2 (en) | Targeted patching for native generation images | |
JP6651977B2 (en) | Information processing apparatus, compiling method, and compiling program | |
JP2008276735A (en) | Program code converter and program code conversion method | |
US10599406B2 (en) | Generating executable files through compiler optimization | |
JP5157534B2 (en) | Behavioral synthesis apparatus and program | |
JP2009169864A (en) | Compile method and compile program | |
JP6481515B2 (en) | Information processing apparatus, compiling method, and compiler program | |
JP6066031B2 (en) | Information processing apparatus, information processing method, and information processing program | |
US9335990B2 (en) | Method, a system, and a non-transitory computer-readable medium for supporting application development | |
JP2010128960A (en) | Method for generating prefetch instruction, compiler, and program | |
JP2009217778A (en) | Behavioral synthesis device, behavioral synthesis method and program | |
KR20190059701A (en) | Method and apparatus for generating DEVS based simulation model and code | |
JP6175306B2 (en) | Control program dividing apparatus, control program dividing method and recording medium therefor | |
JP6116983B2 (en) | Entry point extraction device | |
JP5932707B2 (en) | Computer, program, and data generation method | |
JP2009015821A (en) | Method for generating set of machine-interpretable instructions for reproducing media content to user | |
JP2012123664A (en) | Build execution support system, build execution support method, and build execution support program | |
JP2011180814A (en) | Compiler apparatus, compiling method and program | |
US11615014B2 (en) | Using relocatable debugging information entries to save compile time | |
JP2015022356A (en) | Test scenario variation creation device, method, and program | |
US9792197B2 (en) | Apparatus and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141008 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150702 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160311 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160801 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160923 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161130 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161213 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6066031 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |