(57)【要約】【課題】複数種類のプログラミング言語間でプログラムソースの書式変換を低コストで簡単に行うこと。【解決手段】プログラム書式変換装置は、プログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換する。また、プログラム書式変換装置は、マークアップ言語のデータの書式をマークアップ言語から所定の第２のプログラミング言語へ変換して、その第２のプログラミング言語のプログラムソースを生成する。【選択図】　図２
2004038297.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体または伝送媒体からプログラムソースを取得する取得手段と、
上記取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成された上記マークアップ言語のデータを出力する第１の変換手段と、
を備えること特徴とするプログラム書式変換装置。
【請求項２】
前記第１の変換手段は、前記プログラムソースにおけるオブジェクトの定義を、そのオブジェクトのインスタンス名を示すタグ引数を有しかつそのオブジェクトの種別を示すタグで囲まれた前記マークアップ言語のデータに変換することを特徴とする請求項１記載のプログラム書式変換装置。
【請求項３】
前記第１の変換手段は、前記プログラムソースにおけるオブジェクトの属性を、その属性の名称を含むタグ、およびそのタグで囲まれるその属性の値に変換することを特徴とする請求項１または請求項２記載のプログラム書式変換装置。
【請求項４】
前記第１の変換手段は、前記プログラムソースにおける変数の定義を、変数の定義を示す所定のタグ、並びに変数の名称および／または型を示すそのタグの引数に変換することを特徴とする請求項１から請求項３のうちのいずれか１項記載のプログラム書式変換装置。
【請求項５】
前記第１の変換手段は、前記プログラムソース内の関数における各行の式を所定のタグで囲み、所定のタグで囲まれたすべての式を、その関数名を含むタグで囲むことで、上記関数の定義の書式をマークアップ言語へ変換することを特徴とする請求項１から請求項４のうちのいずれか１項記載のプログラム書式変換装置。
【請求項６】
コンピュータを、
記録媒体または伝送媒体からプログラムソースを取得する取得手段、および
上記取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成された上記マークアップ言語のデータを出力する第１の変換手段、
として機能させるための変換プログラム。
【請求項７】
所定の第１のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段と、
上記マークアップ言語のデータの書式を上記マークアップ言語から所定の第２のプログラミング言語へ変換して、その第２のプログラミング言語のプログラムソースを生成する第２の変換手段と、
を備えることを特徴とするプログラム書式変換装置。
【請求項８】
前記第２の変換手段は、前記マークアップ言語のデータにおける、オブジェクトのインスタンス名を示すタグ引数を有しかつオブジェクトの種別を示すタグで囲まれたデータを、前記第２のプログラミング言語の文法に従ったそのオブジェクトの定義に変換することを特徴とする請求項７記載のプログラム書式変換装置。
【請求項９】
前記第２の変換手段は、前記マークアップ言語のデータにおけるオブジェクトの属性の名称を含むタグおよびそのタグで囲まれるその属性の値を、前記第２のプログラミング言語の文法に従ったそのオブジェクトの属性の記述に変換することを特徴とする請求項７または請求項８記載のプログラム書式変換装置。
【請求項１０】
前記第２の変換手段は、前記マークアップ言語のデータにおける変数の定義を示す所定のタグ並びに変数の名称および／または型を示すそのタグの引数を、前記第２のプログラミング言語の文法に従ったその変数の定義に変換することを特徴とする請求項７から請求項９のうちのいずれか１項記載のプログラム書式変換装置。
【請求項１１】
前記第２の変換手段は、前記マークアップ言語のデータ内で関数名を含むタグで囲まれている部分を、前記第２のプログラミング言語の文法に従ったその関数の定義に変換することを特徴とする請求項７から請求項１０のうちのいずれか１項記載のプログラム書式変換装置。
【請求項１２】
前記第２の変換手段は、前記第２のプログラミング言語の文法上不要な情報を除去して、前記プログラムソースを生成することを特徴とする請求項７から請求項１１のうちのいずれか１項記載のプログラム書式変換装置。
【請求項１３】
コンピュータを、
所定の第１のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段、および
上記マークアップ言語のデータの書式を上記マークアップ言語から所定の第２のプログラミング言語へ変換して、その第２のプログラミング言語のプログラムソースを生成する第２の変換手段、
として機能させるための変換プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムソースの書式を変換するためのプログラム書式変換装置および変換プログラムに関するものである。
【０００２】
【従来の技術】
今日までに、ＢＡＳＩＣ、ＦＯＲＴＲＡＮ、ＣＯＢＯＬ（商標）、ＰＬ／１、Ｃ言語などいった多数のプログラミング言語が存在するとともに、最近でも、Ｊａｖａ（登録商標）、Ｃ＃（商標）などといった新しいプログラミング言語が出現している。新たに作成するシステムで旧来のプログラムソースを活用する場合には、プログラムソースの書式を、そのシステムで利用可能な新しいプログラミング言語に書き換える必要がある。
【０００３】
その場合、古いプログラミング言語のプログラムソースを見て、プログラマが、逐一、新しいプログラミング言語に書式を変換することも考えられるが、プログラムソースが長いものの場合、現実的ではない。
【０００４】
そのため、従来から、プログラムソースの書式を変換する変換プログラムが存在する。そのような従来の変換プログラムは、ある１つのプログラミング言語で記述されたプログラムソースを別のある１つのプログラミング言語のプログラムソースに変換する。
【０００５】
【発明が解決しようとする課題】
しかしながら、従来の変換プログラムでは、ある１つのプログラミング言語から別のある１つのプログラミング言語へ、１対１でかつ１方向にプログラムソースに変換するため、ｍ種類のプログラミング言語のそれぞれで記述されたプログラムソースがあり、そのいずれかのプログラムソースを、ｎ種類のプログラミング言語のいずれかに書式変換しようとする場合、結局、（ｍ×ｎ）種類の従来の変換プログラムが必要となってしまい、種々のプログラミング言語で記載されたプログラムソースの書式を新しいプログラミング言語に変換するために、コストや手間を多く要するという問題がある。
【０００６】
本発明は、上記の問題に鑑みてなされたものであり、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができるプログラム書式変換装置および変換プログラムを得ることを目的とする。
【０００７】
【課題を解決するための手段】
上記の課題を解決するために、本発明のプログラム書式変換装置は、記録媒体または伝送媒体からプログラムソースを取得する取得手段と、取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第１の変換手段とを備える。
【０００８】
このプログラム書式変換装置を利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【０００９】
さらに、本発明のプログラム書式変換装置は、上記発明のプログラム書式変換装置に加え、第１の変換手段を次のようにしたものである。第１の変換手段は、プログラムソースにおけるオブジェクトの定義を、そのオブジェクトのインスタンス名を示すタグ引数を有しかつそのオブジェクトの種別を示すタグで囲まれたマークアップ言語のデータに変換する。
【００１０】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの記述が正確に書式変換される。
【００１１】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第１の変換手段を次のようにしたものである。第１の変換手段は、プログラムソースにおけるオブジェクトの属性を、その属性の名称を含むタグ、およびそのタグで囲まれるその属性の値に変換する。
【００１２】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの属性の記述が正確に書式変換される。
【００１３】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第１の変換手段を次のようにしたものである。第１の変換手段は、プログラムソースにおける変数の定義を、変数の定義を示す所定のタグ、並びに変数の名称および／または型を示すそのタグの引数に変換する。
【００１４】
このプログラム書式変換装置を利用すると、さらに、変数の定義の記述が正確に書式変換される。
【００１５】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第１の変換手段を次のようにしたものである。第１の変換手段は、プログラムソース内の関数における各行の式を所定のタグで囲み、所定のタグで囲まれたすべての式を、その関数名を含むタグで囲むことで、関数の定義の書式をマークアップ言語へ変換する。
【００１６】
このプログラム書式変換装置を利用すると、さらに、関数の定義の記述が正確に書式変換される。
【００１７】
本発明の変換プログラムは、コンピュータを、記録媒体または伝送媒体からプログラムソースを取得する取得手段、および取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第１の変換手段として機能させる。
【００１８】
この変換プログラムを利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【００１９】
本発明のプログラム書式変換装置は、所定の第１のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段と、マークアップ言語のデータの書式をマークアップ言語から所定の第２のプログラミング言語へ変換して、その第２のプログラミング言語のプログラムソースを生成する第２の変換手段とを備える。
【００２０】
このプログラム書式変換装置を利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【００２１】
さらに、本発明のプログラム書式変換装置は、上記発明のプログラム書式変換装置に加え、第２の変換手段を次のようにしたものである。第２の変換手段は、マークアップ言語のデータにおける、オブジェクトのインスタンス名を示すタグ引数を有しかつオブジェクトの種別を示すタグで囲まれたデータを、第２のプログラミング言語の文法に従ったそのオブジェクトの定義に変換する。
【００２２】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの記述が正確に書式変換される。
【００２３】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第２の変換手段を次のようにしたものである。第２の変換手段は、マークアップ言語のデータにおけるオブジェクトの属性の名称を含むタグおよびそのタグで囲まれるその属性の値を、第２のプログラミング言語の文法に従ったそのオブジェクトの属性の記述に変換する。
【００２４】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの属性の記述が正確に書式変換される。
【００２５】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第２の変換手段を次のようにしたものである。第２の変換手段は、マークアップ言語のデータにおける変数の定義を示す所定のタグ、並びに変数の名称および／または型を示すそのタグの引数を、第２のプログラミング言語の文法に従ったその変数の定義に変換する。
【００２６】
このプログラム書式変換装置を利用すると、さらに、変数の定義の記述が正確に書式変換される。
【００２７】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第２の変換手段を次のようにしたものである。第２の変換手段は、マークアップ言語のデータ内で関数名を含むタグで囲まれている部分を、第２のプログラミング言語の文法に従ったその関数の定義に変換する。
【００２８】
このプログラム書式変換装置を利用すると、さらに、関数の定義の記述が正確に書式変換される。
【００２９】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第２の変換手段を次のようにしたものである。第２の変換手段は、第２のプログラミング言語の文法上不要な情報を除去して、プログラムソースを生成する。
【００３０】
このプログラム書式変換装置を利用すると、さらに、書式変換後のプログラムソースをコンパクトにすることができる。
【００３１】
本発明の変換プログラムは、コンピュータを、所定の第１のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段、およびマークアップ言語のデータの書式をマークアップ言語から所定の第２のプログラミング言語へ変換して、その第２のプログラミング言語のプログラムソースを生成する第２の変換手段として機能させる。
【００３２】
この変換プログラムを利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【００３３】
【発明の実施の形態】
以下、図に基づいて本発明の実施の形態を説明する。
【００３４】
実施の形態１．
本発明の実施の形態１に係るプログラム書式変換装置は、いわゆるコンピュータおよびプログラムで実現される。図１は、本発明の実施の形態１に係るプログラム書式変換装置の構成を示すブロック図である。
【００３５】
図１において、ＣＰＵ１は、ＲＯＭ２に記憶されたプログラムやＲＡＭ３にロードされたプログラムを実行する処理回路である。
【００３６】
ＲＯＭ２は、起動時に必要なデータやプログラムを予め記憶するメモリである。また、ＲＡＭ３は、各種プログラムの実行時にそのプログラムやデータを一時的に記憶するメモリである。
【００３７】
ＨＤＤ４は、ＣＰＵ１により実行される各種プログラムを格納する他、書式変換の対象となるプログラムソースやマークアップ言語のデータを格納する記録媒体としてのハードディスク装置である。なお、ＨＤＤ４の代わりに、他の種類の記録媒体を使用してもよい。例えば、可搬性のあるＣＤ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ）やＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）のうちの書き込みが可能なものおよびそれを駆動する駆動装置を、その記録媒体としてもよい。また、ＣＰＵ１により実行される各種プログラムと、書式変換の対象となるプログラムソースやマークアップ言語のデータとを、別々の記録媒体に記録するようにしてもよい。なお、ＣＰＵ１により実行される各種プログラムを格納する記録媒体は、書き込み可能なものである必要は特にない。また、ＨＤＤ４といった記録媒体は、この装置に内蔵されている必要は特になく、外付けされていてもよい。
【００３８】
プログラムソース２１は、所定の第１のプログラミング言語で記述されたプログラムソースである。なお、通常、プログラムソース２１は、テキスト形式で記述されている。また、この第１のプログラミング言語は、ＶｉｓｕａｌＢａｓｉｃ、Ｃ言語、ＣＯＢＯＬ、ＰＬ／１、ＲＰＧ（Ｒｅｐｏｒｔ　Ｐｒｏｇｒａｍ　Ｇｅｎｅｒａｔｏｒ）などの従来から普及しているプログラミング言語のいずれかである。
【００３９】
ＭＬデータ２２は、所定のマークアップ言語で記述されたデータである。このマークアップ言語としては、タグの種類が文法上固定されていない、例えばＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）、ＳＧＭＬ（Ｓｔａｎｄａｒｄ　Ｇｅｎｅｒａｌｉｚｅｄ　Ｍａｒｋｕｐ　Ｌａｎｇｕａｇｅ）などといったマークアップ言語が使用される。
【００４０】
プログラムソース２３は、所定の第２のプログラミング言語で記述されたプログラムソースである。なお、通常、プログラムソース２３は、テキスト形式で記述されている。また、この第２のプログラミング言語は、Ｊａｖａ（登録商標）、Ｃ＃（商標）などの最近出現しているプログラミング言語のいずれかである。
【００４１】
変換プログラム３１は、ＣＰＵ１により実行され、ＨＤＤ４などの記録媒体からプログラムソース２１を取得する取得手段、および、その取得手段により取得されたプログラムソース２１の書式を所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたＭＬデータ２２を出力する第１の変換手段としてコンピュータを機能させるためのプログラムである。なお、プログラムの書式を変換するというのは、プログラムにより実行される処理の内容は変更せずに、記述のみを変更することである。また、ここでは、ＭＬデータ２２の出力先は、ＨＤＤ４などの記録媒体や伝送媒体とされる。
【００４２】
変換プログラム３２は、ＣＰＵ１により実行され、所定の第１のプログラミング言語のプログラムソース２１から書式変換されて生成されたＭＬデータ２２をＨＤＤ４などの記録媒体から取得する取得手段、およびＭＬデータ２２の書式をマークアップ言語から所定の第２のプログラミング言語へ変換して、その第２のプログラミング言語のプログラムソース２３を生成する第２の変換手段としてコンピュータを機能させるためのプログラムである。
【００４３】
インタフェース５は、ＨＤＤ４に接続され、ＨＤＤ４とバス１０との間で信号を授受する回路である。
【００４４】
表示装置６は、液晶ディスプレイ、ＣＲＴ（Ｃａｔｈｏｄｅ　Ｒａｙ　Ｔｕｂｅ）などといった各種情報を表示する装置である。また、描画回路７は、各種プログラムに基づき書き込まれる画像データに対応する画像信号を表示装置６に供給する回路である。この描画回路７は、例えばコンピュータに挿入されるビデオカードとして実現される。
【００４５】
入力装置８は、ユーザの操作を受け付け、その操作に応じた信号を出力するキーボード、マウスなどといった装置である。また、インタフェース９は、入力装置８に接続され、入力装置８からの信号を受け取る回路である。
【００４６】
バス１０は、コンピュータ内の回路同士を互いに接続し、データの授受に使用される通信路である。なお、バス１０の種類や構成などは、特に限定されるものではなく、インタフェース５，９などとともに種々のチップセットとして実現可能である。
【００４７】
次に、上記装置の動作について説明する。図２は、実施の形態１に係るプログラム書式変換装置による書式変換の前後のプログラミング言語およびマークアップ言語の関係の一例を示す図である。
【００４８】
図２に示すように、実施の形態１に係るプログラム書式変換装置は、ＶｉｓｕａｌＢａｓｉｃで記述されたＶＢプログラムソース４１、Ｃ言語で記述されたＣ言語プログラムソース４２、ＣＯＢＯＬで記述されたＣＯＢＯＬプログラムソース４３、ＰＬ／１で記述されたＰＬ／１プログラムソース４４、ＲＰＧで記述されたＲＰＧプログラムソース４５などの従来のプログラミング言語のプログラムソース、並びに、Ｊａｖａ（登録商標）で記述されたＪａｖａ（登録商標）プログラムソース６１、．ＮＥＴ技術のためのＣ＃（商標）で記述されたＣ＃（商標）プログラムソース６２などの新出のプログラミング言語のプログラムソースを、マークアップ言語であるＸＭＬで記述されたＸＭＬデータ５１に変換したり、その逆の書式変換をしたりする。
【００４９】
次に、プログラミング言語からマークアップ言語への書式変換について説明する。
【００５０】
ユーザによる操作などにより、変換プログラム３１の実行が指示されると、変換プログラム３１がＲＡＭ３にロードされ、ＣＰＵ１は、その変換プログラム３１を実行する。その際、例えばユーザによる入力などに基づいて、書式変換の対象となるプログラムソース２１が特定される。
【００５１】
ＣＰＵ１は、変換プログラム３１に従って、指定されたプログラムソース２１を読み出し、構文解釈を行い、行単位あるいはブロック単位で、プログラムソース２１の書式を、そのプログラムソース２１のプログラミング言語からＸＭＬへ変換する。
【００５２】
その際、ＣＰＵ１は、変換プログラム３１に従って、プログラムソース２１におけるオブジェクトの定義を、そのオブジェクトのインスタンス名を示すタグ引数を有しかつそのオブジェクトの種別を示すタグで囲まれたマークアップ言語のデータに変換する。
【００５３】
また、ＣＰＵ１は、変換プログラム３１に従って、プログラムソース２１におけるオブジェクトの属性を、その属性の名称を含むタグ、およびそのタグで囲まれるその属性の値に変換する。
【００５４】
また、ＣＰＵ１は、変換プログラム３１に従って、プログラムソース２１における変数の定義を、変数の定義を示す所定のタグ、並びに変数の名称および／または型を示すそのタグの引数に変換する。
【００５５】
また、ＣＰＵ１は、変換プログラム３１に従って、プログラムソース２１内のメソッドにおける各行の式を所定のタグで囲み、所定のタグで囲まれたすべての式を、そのメソッド名を含むタグで囲むことで、上記メソッドの定義の書式をマークアップ言語へ変換する。
【００５６】
ここで、プログラミング言語からマークアップ言語への書式変換の一具体例を示す。ここでは、ＶｉｓｕａｌＢａｓｉｃからＸＭＬへの書式変換の一具体例を示すが、他のプログラミング言語からＸＭＬへの書式変換も同様に可能である。
【００５７】
図３は、フォームの一例を示す図である。図４および図５は、図３に示すフォームをＶｉｓｕａｌＢａｓｉｃ（商標）で記述した場合のプログラムソースの一例を示す図である。図６、図７および図８は、図４および図５に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である。なお、図中の左端の４桁の数字は、便宜上付した行番号であり、実際のプログラムやデータの中には存在しない。
【００５８】
図３のフォーム１０１は、コマンドボタン１１１とテキストボックス１１２を有する。
【００５９】
図４および図５に示すプログラムソース２１において、「Ｆｏｒｍ１」というオブジェクトの定義が第０００２行から第００２７行までの部分に記述されている。この「Ｆｏｒｍ１」というオブジェクトの定義の部分は、変換プログラム３１に従って、図６、図７および図８に示すＭＬデータ２２の第０１０４行から第０１８３行までの部分に変換される。すなわち、変換プログラム３１に従って、プログラムソース２１における「Ｆｏｒｍ１」オブジェクトの定義は、オブジェクトのインスタンス名Ｆｏｒｍ１を示すタグ引数（ｎａｍｅ＝”Ｆｏｒｍ１”）を有しかつそのオブジェクトの種別（フォーム）を示すタグ＜Ｆｏｒｍ　ｎａｍｅ＝”Ｆｏｒｍ１”＞，＜／Ｆｏｒｍ＞で囲まれたマークアップ言語のデータに変換する。
【００６０】
そのうち、コマンドボタン１１１のオブジェクト定義は、図４の第００１９行から第００２６行までの部分に記述されており、図６の第０１２６行から第０１３５行までの部分に変換される。また、テキストボックス１１２のオブジェクト定義は、図４の第００１２行から第００１８行までの部分に記述されており、図６の第０１１７行から第０１２５行までの部分に変換される。
【００６１】
例えば、この「Ｆｏｒｍ１」というオブジェクトの属性である「Ｃａｐｔｉｏｎ」についての記述「Ｃａｐｔｉｏｎ＝”Ｆｏｒｍ１”」は、その属性の名称「Ｃａｐｔｉｏｎ」に基づくタグ＜Ｃａｐｔｉｏｎ＞，＜／Ｃａｐｔｉｏｎ＞でその属性値Ｆｏｒｍ１が囲まれた「＜Ｃａｐｔｉｏｎ＞Ｆｏｒｍ１＜／Ｃａｐｔｉｏｎ＞」と変換される。なお、他の属性についても同様である。
【００６２】
また、図４の第００２８行から第００３２行までの部分は、ＶｉｓｕａｌＢａｓｉｃ特有の属性を示す部分である。この部分は、変換プログラム３１に従って、図７の第０１３８行から第０１４４行までの部分に変換される。
【００６３】
さらに、「Ｆｏｒｍ１」における「Ｃｏｍｍａｎｄ１」なるコマンドボタンオブジェクト（第００１９行〜第００２６行）に対して発生するイベントを処理するメソッド（関数）の記述が、第００３４行から第００５６行までの部分に記述されている。この部分は、変換プログラム３１に従って、イベント処理を示す固有のタグ＜ｅｖｅｎｔ＞，＜／ｅｖｅｎｔ＞で囲まれた第０１４５行から第０１８２行までの部分に変換される。
【００６４】
例えば、「Ｃｏｍｍａｎｄ１」なるコマンドボタンがクリックされた際の処理を行うメソッドは、図４の第００３４行から第００３６までの部分に記述されている。この部分は、変換プログラム３１に従って、図７の第０１４８行から第０１５０行までの部分に変換される。すなわち、メソッド名Ｃｌｉｃｋに基づきタグ＜Ｃｌｉｃｋ＞，＜／Ｃｌｉｃｋ＞が生成され、処理の記述「Ｔｅｘｔ１．Ｔｅｘｔ＝”Ｃｌｉｃｋ”」が、固有のタグ＜／Ｐｒｏｃｅｓｓ＞，＜／Ｐｒｏｃｅｓｓ＞で囲まれる。そして、その処理の記述が、メソッド名に基づくタグ＜Ｃｌｉｃｋ＞，＜／Ｃｌｉｃｋ＞で囲まれる。なお、他のメソッドや関数についても同様である。
【００６５】
また、図５の第００４６行に出現する変数Ｂｕｔｔｏｎの定義は、図７の第０１５５行から第１５８行までの部分に示すように変換される。すなわち、変数Ｂｕｔｔｏｎの定義は、変換プログラム３１に従って、変数の定義を示す所定のタグ＜Ａｒｇ＞，＜／Ａｒｇ＞、並びに変数の名称Ｂｕｔｔｏｎおよび型ｉｎｔｅｇｅｒを示すタグ引数（ｎａｍｅ＝”Ｂｕｔｔｏｎ”，ｔｙｐｅ＝”Ｉｎｔｅｇｅｒ”）に変換される。なお、他の変数についても同様である。
【００６６】
このようにして、プログラミング言語からマークアップ言語への書式変換が行われる。
【００６７】
次に、マークアップ言語からプログラミング言語への書式変換について説明する。
【００６８】
ユーザによる操作などにより、変換プログラム３２の実行が指示されると、変換プログラム３２がＲＡＭ３にロードされ、ＣＰＵ１は、その変換プログラム３２を実行する。その際、例えばユーザによる入力などに基づいて、書式変換の対象となるＭＬデータ２２が特定される。
【００６９】
ＣＰＵ１は、変換プログラム３２に従って、指定されたＭＬデータ２２を読み出し、各タグの解釈を行い、ＸＭＬで記述されたＭＬデータ２２から、所定のプログラミング言語のプログラムソース２３を生成する。
【００７０】
その際、ＣＰＵ１は、変換プログラム３２に従って、ＭＬデータ２２における、オブジェクトのインスタンス名を示すタグ引数を有しかつオブジェクトの種別を示すタグで囲まれたデータを、そのプログラミング言語の文法に従ったそのオブジェクトの定義に変換する。
【００７１】
また、ＣＰＵ１は、変換プログラム３２に従って、ＭＬデータ２２におけるオブジェクトの属性の名称を含むタグおよびそのタグで囲まれるその属性の値を、そのプログラミング言語の文法に従ったそのオブジェクトの属性の記述に変換する。
【００７２】
また、ＣＰＵ１は、変換プログラム３２に従って、ＭＬデータ２２における変数を示す所定のタグ並びに変数の名称および／または型を示すそのタグの引数を、そのプログラミング言語の文法に従ったその変数の定義に変換する。
【００７３】
また、ＣＰＵ１は、変換プログラム３２に従って、ＭＬデータ２２内でメソッド名を含むタグで囲まれている部分における所定のタグで囲まれた各式を、そのプログラミング言語の文法に従ったそのメソッドの定義に変換する。
【００７４】
なお、必要に応じて、そのプログラミング言語の文法上不要な情報を除去して、プログラムソース２３を生成するようにしてもよい。
【００７５】
ここで、マークアップ言語からプログラミング言語への書式変換の一具体例を示す。ここでは、ＸＭＬからＪａｖａ（登録商標）への書式変換の一具体例を示すが、ＸＭＬから他のプログラミング言語への書式変換も同様に可能である。
【００７６】
図９は、図６、図７および図８に示すマークアップ言語のデータを書式変換して得られたＪａｖａ（登録商標）のプログラムソースの一例を示す図である。なお、図中の左端の４桁の数字は、便宜上付した行番号であり、実際のプログラムやデータの中には存在しない。
【００７７】
図６、図７および図８に示すＭＬデータ２２において、「Ｆｏｒｍ１」というオブジェクトの定義が第０１０４行から第０１８３行までの部分に記述されている。この「Ｆｏｒｍ１」というオブジェクトの定義の部分は、変換プログラム３２に従って、図９に示すプログラムソース２３の第０２０８行から第０２２２行までの部分に変換される。
【００７８】
例えば、「Ｔｅｘｔ１」なるテキストボックスオブジェクトが、図６の第０１１７行から第０１２５行までの部分に記述されている。この部分は、変換プログラム３２に従って、Ｊａｖａ（登録商標）の文法に沿って、図９に示すプログラムソース２３の第０２１７行から第０２２１行までの部分に変換される。
【００７９】
また、例えば、イベント処理のメソッドＣｌｉｃｋが、図７の第０１４８行から第０１５０行までの部分に記述されている。この部分は、変換プログラム３２に従って、Ｊａｖａ（登録商標）の文法に沿って、図９の第０２２４行から第０２２６行までの部分に変換される。
【００８０】
このようにして、マークアップ言語からプログラミング言語への書式変換が行われる。
【００８１】
なお、ここでは、ＭＬデータ２２を介して第１のプログラミング言語から第２のプログラミング言語への書式変換が可能であるが、ＭＬデータ２２を介してどのプログラミング言語から別のどのプログラミング言語への書式変換でも可能である。
【００８２】
以上のように、上記実施の形態１によれば、変換プログラム３１が、コンピュータを、記録媒体からプログラムソースを取得する取得手段、および取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第１の変換手段として機能させる。また、変換プログラム３２が、コンピュータを、所定のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体から取得する取得手段、およびマークアップ言語のデータの書式をマークアップ言語から所定のプログラミング言語へ変換して、そのプログラミング言語のプログラムソースを生成する第２の変換手段として機能させる。
【００８３】
これにより、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でプログラムソースの書式変換を低コストで簡単に行うことができる。また、今後新たなプログラミング言語が出現しても、このマークアップ言語からの書式変換を行うことができるようにするだけで、過去のプログラムリソースを簡単に活用することができる。
【００８４】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００８５】
例えば、実施の形態１に係るプログラム書式変換装置は、プログラミング言語からマークアップ言語への書式変換と、マークアップ言語からプログラミング言語への書式変換の両方を行っているが、いずれか一方を行うようにしてもよい。すなわち、プログラミング言語からマークアップ言語への書式変換を行う装置と、マークアップ言語からプログラミング言語への書式変換を行う装置とを、別々に実現するようにしてもよい。
【００８６】
また、変換プログラム３２により実現される第２の変換手段が、第２のプログラミング言語の文法上不要な情報を除去して、プログラムソースを生成するようにしてもよい。その場合には、書式変換後のプログラムソースをコンパクトにすることができる。
【００８７】
さらに、上記実施の形態１においては、ＨＤＤ４にプログラムソース２１やＭＬデータ２２が格納されているが、ＣＰＵ１が、取得手段として、変換プログラム３１，３２に従って、電気通信回線である伝送媒体を介してプログラムソース２１やＭＬデータ２２を取得するようにしてもよい。その場合には、図１に示す装置に、ネットワークインタフェースやモデムといった通信手段を接続し、その通信手段により、伝送媒体を介してプログラムソース２１やＭＬデータ２２を取得する。
【００８８】
同様に、上記実施の形態１においては、ＨＤＤ４にＭＬデータ２２やプログラムソース２３が格納されているが、ＣＰＵ１が、変換プログラム３１，３２に従って、伝送媒体を介してＭＬデータ２２やプログラムソース２３を出力するようにしてもよい。その場合には、図１に示す装置に、ネットワークインタフェースやモデムといった通信手段を接続し、その通信手段により、伝送媒体を介してプログラムソース２１やＭＬデータ２２を出力する。
【００８９】
【発明の効果】
本発明によれば、複数種類のプログラミング言語間でプログラムソースの書式変換を低コストで簡単に行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係るプログラム書式変換装置の構成を示すブロック図である。
【図２】実施の形態１に係るプログラム書式変換装置による書式変換の前後のプログラミング言語およびマークアップ言語の関係の一例を示す図である。
【図３】フォームの一例を示す図である。
【図４】図３に示すフォームをＶｉｓｕａｌＢａｓｉｃで記述した場合のプログラムソースの一例を示す図である（１）。
【図５】図３に示すフォームをＶｉｓｕａｌＢａｓｉｃで記述した場合のプログラムソースの一例を示す図である（２）。
【図６】図４および図５に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である（１）。
【図７】図４および図５に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である（２）。
【図８】図４および図５に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である（３）。
【図９】図６、図７および図８に示すマークアップ言語のデータを書式変換して得られたＪａｖａ（登録商標）のプログラムソースの一例を示す図である。
【符号の説明】
２１，２３　プログラムソース
２２　ＭＬデータ
３１，３２　変換プログラム
４１　ＶＢプログラムソース（プログラムソース）
４２　Ｃ言語プログラムソース（プログラムソース）
４３　ＣＯＢＯＬプログラムソース（プログラムソース）
４４　ＰＬ／１プログラムソース（プログラムソース）
４５　ＲＰＧプログラムソース（プログラムソース）
５１　ＸＭＬデータ（ＭＬデータ）
６１　Ｊａｖａ（登録商標）プログラムソース（プログラムソース）
６２　Ｃ＃（商標）プログラムソース（プログラムソース）
【図１】
2004038297.tif 000003
【図２】
2004038297.tif 000004
【図３】
2004038297.tif 000005
【図４】
2004038297.tif 000006
【図５】
2004038297.tif 000007
【図６】
2004038297.tif 000008
【図７】
2004038297.tif 000009
【図８】
2004038297.tif 000010
【図９】
2004038297.tif 000011