説明

情報処理装置、情報処理方法及び情報処理プログラム

【課題】生成する実行プログラムを動的に変えることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供する。
【解決手段】
ベースコード21と、当該ベースコード21に変更を加えるための1以上の動的イメージ23とを記憶する記憶部111と、1以上の変更情報のうちの少なくとも1つをベースソース21に適用することにより仮想ソースコード25を生成する変換部103と、変換部103が生成した仮想ソースコード25からアプリケーション27(実行プログラム)へとコンパイルするコンパイル部105とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明に係るいくつかの態様は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
状況に応じて、生成する実行プログラムを動的に変えたい場合がある。このとき、例えばC言語では、コンパイルオプションによって動的にソースコードを変えるifdef記述や、コンパイル時に動的に処理に変換するマクロ記述が利用可能である。よって、C言語でソースコードを記載する際には、これらの記述を利用して実行ファイルを動的に変えることが可能である。
【0003】
ここで、既存のソースファイルの編集については、例えば特許文献1に開示されている。特許文献1には、既存のソースプログラムを参照ソースプログラムとすることにより、ソースプログラムを再利用する技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−113805号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、例えばJava言語では、ifdef記述やマクロ記述が存在しないため、コンパイル時にソースコードを動的に変えることは難しい。
【0006】
また、特許文献1に記載の技術は、あくまでソースプログラムの編集のみを対象としており、実行プログラムの変更については何ら考慮されていない。
【0007】
本発明のいくつかの態様は前述の課題に鑑みてなされたものであり、生成する実行プログラムを動的に変えることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的の1つとする。
【課題を解決するための手段】
【0008】
本発明に係る情報処理装置は、ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶する記憶手段と、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成する変換手段と、前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段とを備える。
【0009】
本発明に係る情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える。
【0010】
本発明に係る情報処理プログラムは、コンピュータに情報処理方法を実行させる情報処理プログラムであって、当該情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える。
【0011】
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」が有する機能が2つ以上の物理的手段や装置により実現されても、2つ以上の「部」の機能が1つの物理的手段や装置により実現されても良い。
【発明の効果】
【0012】
本発明によれば、生成する実行プログラムを動的に変えることのできる情報処理装置、情報処理方法、及び情報処理プログラムを提供することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1実施形態における情報処理装置の概略構成を示す機能ブロック図である。
【図2】図1に示した情報処理装置が処理対象とするソースコードの具体例を示す図である。
【図3】図1に示した情報処理装置が生成するベースソースの具体例を示す図である。
【図4】図1に示した情報処理装置が生成する動的イメージの具体例を示す図である。
【図5】図1に示した情報処理装置が生成する動的イメージの具体例を示す図である。
【図6】図1に示した情報処理装置で管理する管理テーブルの具体例を示す図である。
【図7】図1に示した情報処理装置で管理する管理テーブルの具体例を示す図である。
【図8】図1に示した情報処理装置が生成する仮想ソースコードの具体例を示す図である。
【図9】図1に示した情報処理装置が生成する仮想ソースコードの具体例を示す図である。
【図10】本発明の第2実施形態における情報処理装置の概略構成を示す機能ブロック図である。
【図11】図10に示した情報処理装置の処理の流れを示すフローチャートである。
【図12】図10に示した情報処理装置が処理対象となるソースコード(ベースソース)の具体例を示す図である。
【図13】図10に示した情報処理装置が生成する修正イメージの具体例を示す図である。
【図14】図10に示した情報処理装置が管理する管理テーブルの具体例を示す図である。
【図15】図10に示した情報処理装置が生成する仮想ソースコードの具体例を示す図である。
【発明を実施するための形態】
【0014】
以下に本発明の実施の形態を説明する。以下の説明及び参照する図面の記載において、同一又は類似の構成には、それぞれ同一又は類似の符号が付されている。
【0015】
(第1実施形態)
図1乃至図9は、本発明の第1実施形態を説明するための図である。以下、これらの図を参照しながら第1実施形態を詳細に説明する。
【0016】
(概要)
図1は、本発明の第1実施形態における情報処理装置の構成を説明するための図である。
【0017】
第1実施形態に係る情報処理装置10は、作成(編集)したソースコードをコンパイルして実行プログラム(アプリケーション27)を出力する装置である。
【0018】
C言語では、コンパイルオプションによって動的にソースコードを変えるifdef記述や、コンパイル時に動的に処理に変換するマクロ記述が利用可能である。これによりC言語では、外的要因に合わせて実装を変えたい場合、これらの記述を利用して、コンパイル時に動的に実行プログラムを変えることが可能となっている。
【0019】
一方、通常、Java言語にはこれらの記述が存在していないので、コンパイル時に動的に実行プログラムを変えることは困難である。ここで、複数の実行形式を実現する1つの方法としては、プロパティとして外部から値を取得するロジックを実行プログラム(実行モジュールともいう)に埋込む方法が考えられる。しかしながら、この方法では、実行プログラムに不要なロジックが埋め込まれることとなる。
【0020】
そこで情報処理装置10は、作成(編集)したソースコードを変換して、静的なコード(ベースソース21)と1以上の動的なコード(動的イメージ23)とに分けて管理する。実行プログラム生成時(アプリケーション27の生成時)には、情報処理装置10は、まずベースソース21と必要な動的イメージ23とを組み合わせて仮想ソースコード25を生成する。その後、当該仮想ソースコード25をコンパイルすることで、情報処理装置10は、不要なロジックを埋め込むことなく、アプリケーション27の実装を動的に変えることができる。
【0021】
(システム構成)
情報処理装置10は、ソースコードを編集する編集部101と、変換部103と、コンパイル部105と、構成管理部107と、記憶部111とを有する。尚、情報処理装置10を構成するこれらの機能ブロックは、CPU(Central Processing Unit)等の演算装置上で動作するソフトウェアで実装されていても、専用のハードウェアで実装されていても良い。すなわち、情報処理装置10上の処理は、すべてコンピュータに実行させるプログラムにより実現されうる。
【0022】
また、後述する構成管理テーブル109やベースソース21、動的イメージ23、仮想ソースコード25、及びアプリケーション27は、それぞれHDD(Hard Disk Drive)やメモリ等の記憶媒体に記憶される。特に本実施例においては、構成管理テーブル109、ベースソース21、動的イメージ23は記憶媒体である記憶部111に記憶されるものとする。
【0023】
編集部101は、例えば図示しないキーボードやマウス等により入力されるユーザからの指示に応じて、図示しないソースコードを編集(又は作成)する。
【0024】
変換部103は、編集部101により編集されたソースコード内の情報を分離して、静的なコードであるベースソース21と、動的なコード(ベースソース21に対する変更情報)である1以上の動的イメージ23とを生成する。また、変換部103は、ベースソース21と、必要な動的イメージ23とを記憶部111から読込み、両者を組み合わせることにより仮想ソースコード25を作成する機能も有する。つまり、動的イメージ23は、ベースソース21に変更を加えて仮想ソースコード25を生成するためのものである。変換部103の機能については、図2乃至図9を参照しながら後に詳述する。
【0025】
コンパイル部105は、変換部103により生成された仮想ソースコード25の入力を受けて、当該仮想ソースコード25をコンパイルすることで、実行プログラムであるアプリケーション27を生成する。
【0026】
構成管理部107は、ベースソース21とそれに対する動的イメージ23とを管理しており、ベースソース21と動的イメージ23との関係を構成管理テーブル109として記憶媒体である記憶部111に記憶する。構成管理テーブル109については、図6及び図7を参照しながら後述する。
【0027】
(処理の具体例)
以下、図2乃至図9を参照しながら、情報処理装置10による具体的処理例を説明する。図2は、Javaによるソースファイルを編集部101で編集した結果得られたソースコードの具体例を示す図である。図2のソースコードの例では、Javaソースコード中に、ifdef記述(#ifdefから#endifまで)とマクロ記述(MACRO1(op))とが含まれる。
【0028】
図3は、図2に例を示したソースコードの入力を受けて変換部103が生成する、ベースソース21Aの具体例である。変換部103は、テキスト検索でifdef記述又はマクロ記述を検出すると、それらの記述を内部識別子に置き換えることにより、ベースソース21を生成する。図3のベースソース21Aの例では、ifdef記述がCHG_VALUE1に、マクロ記述がCHG_MACRO1に、それぞれ置換されている。これにより、ベースソース21Aは静的なコードとなる。
【0029】
図4及び図5は、同じく図2に例を示したソースコードの入力を受けて変換部103が生成する動的イメージ23A、23B及び23Cの具体例である。
【0030】
図4に具体例を示す動的イメージ23A及び23Bは、ソースコード中のifdef記述に相当する。これらの動的イメージ23A及び23Bは、ベースソース21Aでは内部識別子「CHG_VALUE1」として表現されている。尚、図4の例において、動的イメージ23Aには「editValue1_AAA1」という識別子が、動的イメージ23Bには「editValue2_AAA2」という識別子が、それぞれ付与されている。
【0031】
図5に具体例を示す動的イメージ23Cは、ソースコード中のマクロ記述に相当する。動的イメージ23Cは、ベースソース21Aの中では内部識別子「CHG_MACRO1」として表現されている。動的イメージ23Cには「editMACRO1」という識別子が付与されている。
【0032】
ここで、マクロ記述では、引数の指定が可能であるので、構成管理部107が後述する構成管理テーブル109Bに引数の情報を記録すると共に、変換部103は、動的イメージ23C中の、ベースソース21Aで指定されている引数と置換する部分を、内部識別子で置換する。図5の例では、引数opが、内部識別子「chg_p1」に置換されている。
【0033】
図6及び図7は、構成管理部107が管理する構成管理テーブル109A及び109Bの具体例である。ここで、構成管理テーブル109Aはifdef記述に関する管理テーブル、構成管理テーブル109Bはマクロ記述(マクロ機能)に関する管理テーブルである。
【0034】
ifdef記述に関する構成管理テーブル109Aは、ifdef記述で参照される定数(今回の例では「VALUE1」)と、その定数に合致した内部識別子の情報とを含む。また、構成管理テーブル109Aは、それぞれ対応する動的イメージ23A及び23Bを参照するための識別子の情報も含む。
【0035】
変換部103が仮想ソースコード25中のifdef記述に相当する部分を生成する際には、まず、ベースソース21Aとマージすべき(組み合わせるべき)動的イメージ23を、オプション指定の有無に応じて、動的イメージ23A及び23Bから選択する。そして、変換部103は、選択した動的イメージ23により、ベースソース21Aに含まれる内部識別子を置換する。
【0036】
一方、マクロ記述に関する構成管理テーブル109Bは、マクロ記述で記載されるマクロ名(今回の例では「MACRO1」)と、そのマクロに合致した内部識別子(「CHG_MACRO1)の情報とを含む。また、前述の通り、構成管理テーブル109Bはベースソース21で指定されている引数の情報(図7の例では「op」)も有する。
【0037】
図8及び図9は、変換部103が生成する仮想ソースコード25A及び25Bの具体例を示す図である。図8に示す仮想ソースコード25Aは、オプション指定がなかったために、変換部103が動的イメージ23Aを選択して内部識別子「CHG_VALUE1」と置換(適用)すると共に、動的イメージ23Cを内部識別子「CHG_MACRO1」に適用したものである。一方、図9に示す仮想ソースコード25Bは、オプション指定があったことにより、変換部103が動的イメージ23Bを選択して内部識別子「CHG_VALUE1」と置換すると共に、動的イメージ23Cを内部識別子「CHG_MACRO1」に適用したものである。
【0038】
(第1実施形態の効果)
本実施形態に係る情報処理装置10は、ベースソース21と、動的なコードである動的イメージ23とを別々に管理する。これにより、Java言語のソースコードでC言語のifdef記述及びマクロ記述に相当するコードを記述することが可能となる。
【0039】
また、コンパイルにより生成されるアプリケーション27の実装を動的に変えることができる。また、C言語技術者が容易にJava言語を利用できるようになる。
【0040】
(第2実施形態)
図10乃至図15は、本発明の第2実施形態を説明するための図である。以下、これらの図を参照しながら第2実施形態を詳細に説明する。尚、本実施形態において、第1実施形態と対応する構成等については、第1実施形態と同様の符号を付すと共に、説明を省略している場合がある。
【0041】
(概要及びシステム構成)
図10は、本発明の第2実施形態における情報処理装置10の構成を説明するための図である。第2実施形態に係る情報処理装置10は、ベースソース21に対して加えた修正を動的なコード(修正イメージ23、ベースソース21に対する変更情報)として管理することにより、他の編集者に影響を与えることなく、修正の適用/非適用を切り替えて実行プログラム(アプリケーション27)を生成することのできる装置である。
【0042】
ここで、第2実施形態に係る情報処理装置10は、第1実施形態と同様に、情報処理装置10は、ソースコードを編集する編集部101と、変換部103と、コンパイル部105と、構成管理部107とを有する。ここで、変換部103の処理及び構成管理部107が管理する構成管理テーブル109の構成が大きく第1実施形態と異なる。以下、第1実施形態との相違を中心に、第2実施形態に係る情報処理装置10の各構成について説明する。
【0043】
構成管理部107は、プログラム編集の元となるベースソース21B(元となるソースコード)を決定する。尚、ベースソース21Bは元となるソースコードであるので、コンパイル部105で独立して(修正イメージ23がなくとも)コンパイル可能である。
【0044】
編集部101は、構成管理部08を通じて決定されたベースソース21Bに対して、ソースコードを編集する。
【0045】
変換部103は、編集部101による編集結果であるソースコードの情報を、元となるベースソース21Bと修正イメージ23とに分離する。また変換部103は、ベースソース21Bに修正イメージ23を適用して仮想ソースコード25を生成する機能も有する。
【0046】
編集後のソースコードでアプリケーション27を作成する場合には、変換部103ではベースソース21Bに修正イメージ23Dを適用して仮想ソースコード25Cを生成し、コンパイル部105は当該仮想ソースコード25をコンパイルしてアプリケーション27Cを生成する。ここで、編集後のソースコードと、当該ソースコードを元に変換部103が生成した修正イメージ23をベースソース21Bに適用した仮想ソースコード25とは、同一内容となる。
【0047】
もしその後、再度編集する場合には、ベースソース21Bに修正イメージ23Dを適用したソースコードを編集部101に送り、編集部101は当該ソースコードをベースに編集する。編集部101から再編集結果を受け取った変換部103では、当該結果をベースソース21Bと修正イメージ23Eとに分離する。本実施形態では、ベースソース21Bは変更されることなく、修正イメージ23Eのみが修正部分として変更される。
【0048】
アプリケーション27Dを生成する際には、まず変換部103は修正イメージ23Eをベースソース21Bに適用して仮想ソースコード25Dを生成し、コンパイル部105は当該仮想ソースコード25Dをコンパイルしてアプリケーション27Dを生成する。
【0049】
もし、修正が不要になった場合には、修正イメージ23Dや修正イメージ23Eを削除(破棄)することで、元のソースコードであるベースソース21Bに簡単に戻すことができる。
【0050】
(処理の流れ)
以下、図11を参照しながら、本実施形態に係る情報処理装置10の処理の流れを説明する。図11は、第2実施形態に係る情報処理装置10の処理の流れを示すフローチャートである。
【0051】
構成管理部107では、ベースソース21Bとそれに対する修正イメージ23を管理している。編集部101は、構成管理部107を通じて、編集対象とするベースソース21Bを決定する(S301)。その後、編集部101は選択したベースソース21Bを編集する(S303)。図12は、編集元となるベースソース21Bの例である。
【0052】
変換部103は、編集後のソースコードの内容を、ベースソース21Bと修正イメージ23Dとに分ける(S305)。より具体的には、編集部101での編集結果と、ベースソース21Bとの比較を行ってその差分を抽出することで、修正イメージ23Dが生成できる。図13は、図12に例を示したベースソース21Bに対する編集結果(差分)を示す修正イメージ23Dの例である。図13の例では、修正イメージ23Dは、ベースソース21Bの各行番号に対する変更種別(Update、Delete、Add)と、その編集後の内容(イメージ)の情報を含む。
【0053】
続いて、構成管理部107がベースソース21Bと修正イメージ23Dとの関係を構成管理テーブル109に登録する(S307)。図14は、構成管理テーブル109の例(構成管理テーブル109C)である。
【0054】
図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を作成することができる。
【0055】
その後、アプリケーション27を生成する際には、まず、変換部103で、ベースソース21Bと、それに対する修正イメージ23Dを読込むと共に、両者の関係を構成管理テーブル109から読込むことで、仮想ソースコード25Cを生成する(S309)。図15に、図12に示したベースソース21Bと、図13に示した修正イメージ23Dとをマージして変換部103が生成する仮想ソースコード25Cの例を示す。
【0056】
コンパイル部105は、当該仮想ソースコード25Cをコンパイルすることで、アプリケーション27Cを作成する。
【0057】
(第2実施形態の効果)
本実施形態に係る情報処理装置10は、ベースソース21Bと、それに対する修正を動的なソース(修正イメージ23)とを別々に管理する。これにより、コンパイルにより生成する実行プログラム(アプリケーション27)を動的に変えることができる。
【0058】
つまり、ユーザは、他のユーザに影響を与えることなく、アプリケーションへの修正の適用/非適用を容易に切り替えることができるようになる。
【0059】
(付記事項)
なお、前述の各実施形態の構成は、組み合わせたり或いは一部の構成部分を入れ替えたりしてもよい。また、本発明の構成は前述の実施形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加えてもよい。
【0060】
尚、前述の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0061】
(付記1)
ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶する記憶手段と、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成する変換手段と、前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段とを備える情報処理装置。
【0062】
(付記2)
オリジナルソースコードから、1以上の識別子を含む前記ベースコードと、1以上の前記変更情報とを生成する生成手段を更に備え、前記変換手段は、前記ベースコード内の前記識別子に対して前記変更情報を適用することにより前記ソースコードを生成する、付記1記載の情報処理装置。
【0063】
(付記3)
前記生成手段は、前記オリジナルソースコードから複数の前記変更情報を生成し、前記変換手段は、前記ベースコード内の1つの前記識別子に対して複数の前記変更情報のうちの1つを適用することにより前記ソースコードを生成する、付記2記載の情報処理装置。
【0064】
(付記4)
前記変更情報は、マクロ記述に関する情報である、付記2記載の情報処理装置。
【0065】
(付記5)
前記ベースコードは前記コンパイル手段がコンパイル可能である、付記1記載の情報処理装置。
【0066】
(付記6)
前記ベースコードを編集するための編集手段を更に備え、前記変更情報は、前記編集手段による編集結果と前記ベースコードとの差分に相当する、付記1又は付記5記載の情報処理装置。
【0067】
(付記7)
ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える情報処理方法。
【0068】
(付記8)
コンピュータに情報処理方法を実行させる情報処理プログラムであって、当該情報処理方法は、ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、生成した前記ソースコードから実行プログラムへとコンパイルするステップとを備える、情報処理プログラム。
【符号の説明】
【0069】
10・・・情報処理装置、101・・・編集部、103・・・変換部、105・・・コンパイル部、107・・・構成管理部、109・・・構成管理テーブル、111・・・記憶部、21・・・ベースソース、23・・・動的イメージ(修正イメージ)、25・・・仮想ソースコード

【特許請求の範囲】
【請求項1】
ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶する記憶手段と、
前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成する変換手段と、
前記変換手段が生成した前記ソースコードから実行プログラムへとコンパイルするコンパイル手段と
を備える情報処理装置。
【請求項2】
オリジナルソースコードから、1以上の識別子を含む前記ベースコードと、1以上の前記変更情報とを生成する生成手段を更に備え、
前記変換手段は、前記ベースコード内の前記識別子に対して前記変更情報を適用することにより前記ソースコードを生成する、
請求項1記載の情報処理装置。
【請求項3】
前記生成手段は、前記オリジナルソースコードから複数の前記変更情報を生成し、
前記変換手段は、前記ベースコード内の1つの前記識別子に対して複数の前記変更情報のうちの1つを適用することにより前記ソースコードを生成する、
請求項2記載の情報処理装置。
【請求項4】
前記変更情報は、マクロ記述に関する情報である、
請求項2記載の情報処理装置。
【請求項5】
前記ベースコードは前記コンパイル手段がコンパイル可能である、
請求項1記載の情報処理装置。
【請求項6】
前記ベースコードを編集するための編集手段
を更に備え、
前記変更情報は、前記編集手段による編集結果と前記ベースコードとの差分に相当する、
請求項1又は請求項5記載の情報処理装置。
【請求項7】
ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、
前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、
生成した前記ソースコードから実行プログラムへとコンパイルするステップと
を備える情報処理方法。
【請求項8】
コンピュータに情報処理方法を実行させる情報処理プログラムであって、当該情報処理方法は、
ベースコードと、当該ベースコードに変更を加えるための1以上の変更情報とを記憶媒体に記憶するステップと、
前記1以上の変更情報のうちの少なくとも1つを前記ベースコードに適用することによりソースコードを生成するステップと、
生成した前記ソースコードから実行プログラムへとコンパイルするステップと
を備える、情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2013−114575(P2013−114575A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−262116(P2011−262116)
【出願日】平成23年11月30日(2011.11.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】