JP2004038297A - プログラム書式変換装置および変換プログラム - Google Patents
プログラム書式変換装置および変換プログラム Download PDFInfo
- Publication number
- JP2004038297A JP2004038297A JP2002190932A JP2002190932A JP2004038297A JP 2004038297 A JP2004038297 A JP 2004038297A JP 2002190932 A JP2002190932 A JP 2002190932A JP 2002190932 A JP2002190932 A JP 2002190932A JP 2004038297 A JP2004038297 A JP 2004038297A
- Authority
- JP
- Japan
- Prior art keywords
- program
- format conversion
- format
- language
- data
- 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.)
- Pending
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
【課題】複数種類のプログラミング言語間でプログラムソースの書式変換を低コストで簡単に行うこと。
【解決手段】プログラム書式変換装置は、プログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換する。また、プログラム書式変換装置は、マークアップ言語のデータの書式をマークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソースを生成する。
【選択図】 図2
【解決手段】プログラム書式変換装置は、プログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換する。また、プログラム書式変換装置は、マークアップ言語のデータの書式をマークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソースを生成する。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は、プログラムソースの書式を変換するためのプログラム書式変換装置および変換プログラムに関するものである。
【0002】
【従来の技術】
今日までに、BASIC、FORTRAN、COBOL(商標)、PL/1、C言語などいった多数のプログラミング言語が存在するとともに、最近でも、Java(登録商標)、C#(商標)などといった新しいプログラミング言語が出現している。新たに作成するシステムで旧来のプログラムソースを活用する場合には、プログラムソースの書式を、そのシステムで利用可能な新しいプログラミング言語に書き換える必要がある。
【0003】
その場合、古いプログラミング言語のプログラムソースを見て、プログラマが、逐一、新しいプログラミング言語に書式を変換することも考えられるが、プログラムソースが長いものの場合、現実的ではない。
【0004】
そのため、従来から、プログラムソースの書式を変換する変換プログラムが存在する。そのような従来の変換プログラムは、ある1つのプログラミング言語で記述されたプログラムソースを別のある1つのプログラミング言語のプログラムソースに変換する。
【0005】
【発明が解決しようとする課題】
しかしながら、従来の変換プログラムでは、ある1つのプログラミング言語から別のある1つのプログラミング言語へ、1対1でかつ1方向にプログラムソースに変換するため、m種類のプログラミング言語のそれぞれで記述されたプログラムソースがあり、そのいずれかのプログラムソースを、n種類のプログラミング言語のいずれかに書式変換しようとする場合、結局、(m×n)種類の従来の変換プログラムが必要となってしまい、種々のプログラミング言語で記載されたプログラムソースの書式を新しいプログラミング言語に変換するために、コストや手間を多く要するという問題がある。
【0006】
本発明は、上記の問題に鑑みてなされたものであり、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができるプログラム書式変換装置および変換プログラムを得ることを目的とする。
【0007】
【課題を解決するための手段】
上記の課題を解決するために、本発明のプログラム書式変換装置は、記録媒体または伝送媒体からプログラムソースを取得する取得手段と、取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第1の変換手段とを備える。
【0008】
このプログラム書式変換装置を利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【0009】
さらに、本発明のプログラム書式変換装置は、上記発明のプログラム書式変換装置に加え、第1の変換手段を次のようにしたものである。第1の変換手段は、プログラムソースにおけるオブジェクトの定義を、そのオブジェクトのインスタンス名を示すタグ引数を有しかつそのオブジェクトの種別を示すタグで囲まれたマークアップ言語のデータに変換する。
【0010】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの記述が正確に書式変換される。
【0011】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第1の変換手段を次のようにしたものである。第1の変換手段は、プログラムソースにおけるオブジェクトの属性を、その属性の名称を含むタグ、およびそのタグで囲まれるその属性の値に変換する。
【0012】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの属性の記述が正確に書式変換される。
【0013】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第1の変換手段を次のようにしたものである。第1の変換手段は、プログラムソースにおける変数の定義を、変数の定義を示す所定のタグ、並びに変数の名称および/または型を示すそのタグの引数に変換する。
【0014】
このプログラム書式変換装置を利用すると、さらに、変数の定義の記述が正確に書式変換される。
【0015】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第1の変換手段を次のようにしたものである。第1の変換手段は、プログラムソース内の関数における各行の式を所定のタグで囲み、所定のタグで囲まれたすべての式を、その関数名を含むタグで囲むことで、関数の定義の書式をマークアップ言語へ変換する。
【0016】
このプログラム書式変換装置を利用すると、さらに、関数の定義の記述が正確に書式変換される。
【0017】
本発明の変換プログラムは、コンピュータを、記録媒体または伝送媒体からプログラムソースを取得する取得手段、および取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第1の変換手段として機能させる。
【0018】
この変換プログラムを利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【0019】
本発明のプログラム書式変換装置は、所定の第1のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段と、マークアップ言語のデータの書式をマークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソースを生成する第2の変換手段とを備える。
【0020】
このプログラム書式変換装置を利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【0021】
さらに、本発明のプログラム書式変換装置は、上記発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、マークアップ言語のデータにおける、オブジェクトのインスタンス名を示すタグ引数を有しかつオブジェクトの種別を示すタグで囲まれたデータを、第2のプログラミング言語の文法に従ったそのオブジェクトの定義に変換する。
【0022】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの記述が正確に書式変換される。
【0023】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、マークアップ言語のデータにおけるオブジェクトの属性の名称を含むタグおよびそのタグで囲まれるその属性の値を、第2のプログラミング言語の文法に従ったそのオブジェクトの属性の記述に変換する。
【0024】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの属性の記述が正確に書式変換される。
【0025】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、マークアップ言語のデータにおける変数の定義を示す所定のタグ、並びに変数の名称および/または型を示すそのタグの引数を、第2のプログラミング言語の文法に従ったその変数の定義に変換する。
【0026】
このプログラム書式変換装置を利用すると、さらに、変数の定義の記述が正確に書式変換される。
【0027】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、マークアップ言語のデータ内で関数名を含むタグで囲まれている部分を、第2のプログラミング言語の文法に従ったその関数の定義に変換する。
【0028】
このプログラム書式変換装置を利用すると、さらに、関数の定義の記述が正確に書式変換される。
【0029】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、第2のプログラミング言語の文法上不要な情報を除去して、プログラムソースを生成する。
【0030】
このプログラム書式変換装置を利用すると、さらに、書式変換後のプログラムソースをコンパクトにすることができる。
【0031】
本発明の変換プログラムは、コンピュータを、所定の第1のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段、およびマークアップ言語のデータの書式をマークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソースを生成する第2の変換手段として機能させる。
【0032】
この変換プログラムを利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【0033】
【発明の実施の形態】
以下、図に基づいて本発明の実施の形態を説明する。
【0034】
実施の形態1.
本発明の実施の形態1に係るプログラム書式変換装置は、いわゆるコンピュータおよびプログラムで実現される。図1は、本発明の実施の形態1に係るプログラム書式変換装置の構成を示すブロック図である。
【0035】
図1において、CPU1は、ROM2に記憶されたプログラムやRAM3にロードされたプログラムを実行する処理回路である。
【0036】
ROM2は、起動時に必要なデータやプログラムを予め記憶するメモリである。また、RAM3は、各種プログラムの実行時にそのプログラムやデータを一時的に記憶するメモリである。
【0037】
HDD4は、CPU1により実行される各種プログラムを格納する他、書式変換の対象となるプログラムソースやマークアップ言語のデータを格納する記録媒体としてのハードディスク装置である。なお、HDD4の代わりに、他の種類の記録媒体を使用してもよい。例えば、可搬性のあるCD(Compact Disc)やDVD(Digital Versatile Disc)のうちの書き込みが可能なものおよびそれを駆動する駆動装置を、その記録媒体としてもよい。また、CPU1により実行される各種プログラムと、書式変換の対象となるプログラムソースやマークアップ言語のデータとを、別々の記録媒体に記録するようにしてもよい。なお、CPU1により実行される各種プログラムを格納する記録媒体は、書き込み可能なものである必要は特にない。また、HDD4といった記録媒体は、この装置に内蔵されている必要は特になく、外付けされていてもよい。
【0038】
プログラムソース21は、所定の第1のプログラミング言語で記述されたプログラムソースである。なお、通常、プログラムソース21は、テキスト形式で記述されている。また、この第1のプログラミング言語は、VisualBasic、C言語、COBOL、PL/1、RPG(Report Program Generator)などの従来から普及しているプログラミング言語のいずれかである。
【0039】
MLデータ22は、所定のマークアップ言語で記述されたデータである。このマークアップ言語としては、タグの種類が文法上固定されていない、例えばXML(eXtensible Markup Language)、SGML(Standard Generalized Markup Language)などといったマークアップ言語が使用される。
【0040】
プログラムソース23は、所定の第2のプログラミング言語で記述されたプログラムソースである。なお、通常、プログラムソース23は、テキスト形式で記述されている。また、この第2のプログラミング言語は、Java(登録商標)、C#(商標)などの最近出現しているプログラミング言語のいずれかである。
【0041】
変換プログラム31は、CPU1により実行され、HDD4などの記録媒体からプログラムソース21を取得する取得手段、および、その取得手段により取得されたプログラムソース21の書式を所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたMLデータ22を出力する第1の変換手段としてコンピュータを機能させるためのプログラムである。なお、プログラムの書式を変換するというのは、プログラムにより実行される処理の内容は変更せずに、記述のみを変更することである。また、ここでは、MLデータ22の出力先は、HDD4などの記録媒体や伝送媒体とされる。
【0042】
変換プログラム32は、CPU1により実行され、所定の第1のプログラミング言語のプログラムソース21から書式変換されて生成されたMLデータ22をHDD4などの記録媒体から取得する取得手段、およびMLデータ22の書式をマークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソース23を生成する第2の変換手段としてコンピュータを機能させるためのプログラムである。
【0043】
インタフェース5は、HDD4に接続され、HDD4とバス10との間で信号を授受する回路である。
【0044】
表示装置6は、液晶ディスプレイ、CRT(Cathode Ray Tube)などといった各種情報を表示する装置である。また、描画回路7は、各種プログラムに基づき書き込まれる画像データに対応する画像信号を表示装置6に供給する回路である。この描画回路7は、例えばコンピュータに挿入されるビデオカードとして実現される。
【0045】
入力装置8は、ユーザの操作を受け付け、その操作に応じた信号を出力するキーボード、マウスなどといった装置である。また、インタフェース9は、入力装置8に接続され、入力装置8からの信号を受け取る回路である。
【0046】
バス10は、コンピュータ内の回路同士を互いに接続し、データの授受に使用される通信路である。なお、バス10の種類や構成などは、特に限定されるものではなく、インタフェース5,9などとともに種々のチップセットとして実現可能である。
【0047】
次に、上記装置の動作について説明する。図2は、実施の形態1に係るプログラム書式変換装置による書式変換の前後のプログラミング言語およびマークアップ言語の関係の一例を示す図である。
【0048】
図2に示すように、実施の形態1に係るプログラム書式変換装置は、VisualBasicで記述されたVBプログラムソース41、C言語で記述されたC言語プログラムソース42、COBOLで記述されたCOBOLプログラムソース43、PL/1で記述されたPL/1プログラムソース44、RPGで記述されたRPGプログラムソース45などの従来のプログラミング言語のプログラムソース、並びに、Java(登録商標)で記述されたJava(登録商標)プログラムソース61、.NET技術のためのC#(商標)で記述されたC#(商標)プログラムソース62などの新出のプログラミング言語のプログラムソースを、マークアップ言語であるXMLで記述されたXMLデータ51に変換したり、その逆の書式変換をしたりする。
【0049】
次に、プログラミング言語からマークアップ言語への書式変換について説明する。
【0050】
ユーザによる操作などにより、変換プログラム31の実行が指示されると、変換プログラム31がRAM3にロードされ、CPU1は、その変換プログラム31を実行する。その際、例えばユーザによる入力などに基づいて、書式変換の対象となるプログラムソース21が特定される。
【0051】
CPU1は、変換プログラム31に従って、指定されたプログラムソース21を読み出し、構文解釈を行い、行単位あるいはブロック単位で、プログラムソース21の書式を、そのプログラムソース21のプログラミング言語からXMLへ変換する。
【0052】
その際、CPU1は、変換プログラム31に従って、プログラムソース21におけるオブジェクトの定義を、そのオブジェクトのインスタンス名を示すタグ引数を有しかつそのオブジェクトの種別を示すタグで囲まれたマークアップ言語のデータに変換する。
【0053】
また、CPU1は、変換プログラム31に従って、プログラムソース21におけるオブジェクトの属性を、その属性の名称を含むタグ、およびそのタグで囲まれるその属性の値に変換する。
【0054】
また、CPU1は、変換プログラム31に従って、プログラムソース21における変数の定義を、変数の定義を示す所定のタグ、並びに変数の名称および/または型を示すそのタグの引数に変換する。
【0055】
また、CPU1は、変換プログラム31に従って、プログラムソース21内のメソッドにおける各行の式を所定のタグで囲み、所定のタグで囲まれたすべての式を、そのメソッド名を含むタグで囲むことで、上記メソッドの定義の書式をマークアップ言語へ変換する。
【0056】
ここで、プログラミング言語からマークアップ言語への書式変換の一具体例を示す。ここでは、VisualBasicからXMLへの書式変換の一具体例を示すが、他のプログラミング言語からXMLへの書式変換も同様に可能である。
【0057】
図3は、フォームの一例を示す図である。図4および図5は、図3に示すフォームをVisualBasic(商標)で記述した場合のプログラムソースの一例を示す図である。図6、図7および図8は、図4および図5に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である。なお、図中の左端の4桁の数字は、便宜上付した行番号であり、実際のプログラムやデータの中には存在しない。
【0058】
図3のフォーム101は、コマンドボタン111とテキストボックス112を有する。
【0059】
図4および図5に示すプログラムソース21において、「Form1」というオブジェクトの定義が第0002行から第0027行までの部分に記述されている。この「Form1」というオブジェクトの定義の部分は、変換プログラム31に従って、図6、図7および図8に示すMLデータ22の第0104行から第0183行までの部分に変換される。すなわち、変換プログラム31に従って、プログラムソース21における「Form1」オブジェクトの定義は、オブジェクトのインスタンス名Form1を示すタグ引数(name=”Form1”)を有しかつそのオブジェクトの種別(フォーム)を示すタグ<Form name=”Form1”>,</Form>で囲まれたマークアップ言語のデータに変換する。
【0060】
そのうち、コマンドボタン111のオブジェクト定義は、図4の第0019行から第0026行までの部分に記述されており、図6の第0126行から第0135行までの部分に変換される。また、テキストボックス112のオブジェクト定義は、図4の第0012行から第0018行までの部分に記述されており、図6の第0117行から第0125行までの部分に変換される。
【0061】
例えば、この「Form1」というオブジェクトの属性である「Caption」についての記述「Caption=”Form1”」は、その属性の名称「Caption」に基づくタグ<Caption>,</Caption>でその属性値Form1が囲まれた「<Caption>Form1</Caption>」と変換される。なお、他の属性についても同様である。
【0062】
また、図4の第0028行から第0032行までの部分は、VisualBasic特有の属性を示す部分である。この部分は、変換プログラム31に従って、図7の第0138行から第0144行までの部分に変換される。
【0063】
さらに、「Form1」における「Command1」なるコマンドボタンオブジェクト(第0019行〜第0026行)に対して発生するイベントを処理するメソッド(関数)の記述が、第0034行から第0056行までの部分に記述されている。この部分は、変換プログラム31に従って、イベント処理を示す固有のタグ<event>,</event>で囲まれた第0145行から第0182行までの部分に変換される。
【0064】
例えば、「Command1」なるコマンドボタンがクリックされた際の処理を行うメソッドは、図4の第0034行から第0036までの部分に記述されている。この部分は、変換プログラム31に従って、図7の第0148行から第0150行までの部分に変換される。すなわち、メソッド名Clickに基づきタグ<Click>,</Click>が生成され、処理の記述「Text1.Text=”Click”」が、固有のタグ</Process>,</Process>で囲まれる。そして、その処理の記述が、メソッド名に基づくタグ<Click>,</Click>で囲まれる。なお、他のメソッドや関数についても同様である。
【0065】
また、図5の第0046行に出現する変数Buttonの定義は、図7の第0155行から第158行までの部分に示すように変換される。すなわち、変数Buttonの定義は、変換プログラム31に従って、変数の定義を示す所定のタグ<Arg>,</Arg>、並びに変数の名称Buttonおよび型integerを示すタグ引数(name=”Button”,type=”Integer”)に変換される。なお、他の変数についても同様である。
【0066】
このようにして、プログラミング言語からマークアップ言語への書式変換が行われる。
【0067】
次に、マークアップ言語からプログラミング言語への書式変換について説明する。
【0068】
ユーザによる操作などにより、変換プログラム32の実行が指示されると、変換プログラム32がRAM3にロードされ、CPU1は、その変換プログラム32を実行する。その際、例えばユーザによる入力などに基づいて、書式変換の対象となるMLデータ22が特定される。
【0069】
CPU1は、変換プログラム32に従って、指定されたMLデータ22を読み出し、各タグの解釈を行い、XMLで記述されたMLデータ22から、所定のプログラミング言語のプログラムソース23を生成する。
【0070】
その際、CPU1は、変換プログラム32に従って、MLデータ22における、オブジェクトのインスタンス名を示すタグ引数を有しかつオブジェクトの種別を示すタグで囲まれたデータを、そのプログラミング言語の文法に従ったそのオブジェクトの定義に変換する。
【0071】
また、CPU1は、変換プログラム32に従って、MLデータ22におけるオブジェクトの属性の名称を含むタグおよびそのタグで囲まれるその属性の値を、そのプログラミング言語の文法に従ったそのオブジェクトの属性の記述に変換する。
【0072】
また、CPU1は、変換プログラム32に従って、MLデータ22における変数を示す所定のタグ並びに変数の名称および/または型を示すそのタグの引数を、そのプログラミング言語の文法に従ったその変数の定義に変換する。
【0073】
また、CPU1は、変換プログラム32に従って、MLデータ22内でメソッド名を含むタグで囲まれている部分における所定のタグで囲まれた各式を、そのプログラミング言語の文法に従ったそのメソッドの定義に変換する。
【0074】
なお、必要に応じて、そのプログラミング言語の文法上不要な情報を除去して、プログラムソース23を生成するようにしてもよい。
【0075】
ここで、マークアップ言語からプログラミング言語への書式変換の一具体例を示す。ここでは、XMLからJava(登録商標)への書式変換の一具体例を示すが、XMLから他のプログラミング言語への書式変換も同様に可能である。
【0076】
図9は、図6、図7および図8に示すマークアップ言語のデータを書式変換して得られたJava(登録商標)のプログラムソースの一例を示す図である。なお、図中の左端の4桁の数字は、便宜上付した行番号であり、実際のプログラムやデータの中には存在しない。
【0077】
図6、図7および図8に示すMLデータ22において、「Form1」というオブジェクトの定義が第0104行から第0183行までの部分に記述されている。この「Form1」というオブジェクトの定義の部分は、変換プログラム32に従って、図9に示すプログラムソース23の第0208行から第0222行までの部分に変換される。
【0078】
例えば、「Text1」なるテキストボックスオブジェクトが、図6の第0117行から第0125行までの部分に記述されている。この部分は、変換プログラム32に従って、Java(登録商標)の文法に沿って、図9に示すプログラムソース23の第0217行から第0221行までの部分に変換される。
【0079】
また、例えば、イベント処理のメソッドClickが、図7の第0148行から第0150行までの部分に記述されている。この部分は、変換プログラム32に従って、Java(登録商標)の文法に沿って、図9の第0224行から第0226行までの部分に変換される。
【0080】
このようにして、マークアップ言語からプログラミング言語への書式変換が行われる。
【0081】
なお、ここでは、MLデータ22を介して第1のプログラミング言語から第2のプログラミング言語への書式変換が可能であるが、MLデータ22を介してどのプログラミング言語から別のどのプログラミング言語への書式変換でも可能である。
【0082】
以上のように、上記実施の形態1によれば、変換プログラム31が、コンピュータを、記録媒体からプログラムソースを取得する取得手段、および取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第1の変換手段として機能させる。また、変換プログラム32が、コンピュータを、所定のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体から取得する取得手段、およびマークアップ言語のデータの書式をマークアップ言語から所定のプログラミング言語へ変換して、そのプログラミング言語のプログラムソースを生成する第2の変換手段として機能させる。
【0083】
これにより、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でプログラムソースの書式変換を低コストで簡単に行うことができる。また、今後新たなプログラミング言語が出現しても、このマークアップ言語からの書式変換を行うことができるようにするだけで、過去のプログラムリソースを簡単に活用することができる。
【0084】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【0085】
例えば、実施の形態1に係るプログラム書式変換装置は、プログラミング言語からマークアップ言語への書式変換と、マークアップ言語からプログラミング言語への書式変換の両方を行っているが、いずれか一方を行うようにしてもよい。すなわち、プログラミング言語からマークアップ言語への書式変換を行う装置と、マークアップ言語からプログラミング言語への書式変換を行う装置とを、別々に実現するようにしてもよい。
【0086】
また、変換プログラム32により実現される第2の変換手段が、第2のプログラミング言語の文法上不要な情報を除去して、プログラムソースを生成するようにしてもよい。その場合には、書式変換後のプログラムソースをコンパクトにすることができる。
【0087】
さらに、上記実施の形態1においては、HDD4にプログラムソース21やMLデータ22が格納されているが、CPU1が、取得手段として、変換プログラム31,32に従って、電気通信回線である伝送媒体を介してプログラムソース21やMLデータ22を取得するようにしてもよい。その場合には、図1に示す装置に、ネットワークインタフェースやモデムといった通信手段を接続し、その通信手段により、伝送媒体を介してプログラムソース21やMLデータ22を取得する。
【0088】
同様に、上記実施の形態1においては、HDD4にMLデータ22やプログラムソース23が格納されているが、CPU1が、変換プログラム31,32に従って、伝送媒体を介してMLデータ22やプログラムソース23を出力するようにしてもよい。その場合には、図1に示す装置に、ネットワークインタフェースやモデムといった通信手段を接続し、その通信手段により、伝送媒体を介してプログラムソース21やMLデータ22を出力する。
【0089】
【発明の効果】
本発明によれば、複数種類のプログラミング言語間でプログラムソースの書式変換を低コストで簡単に行うことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るプログラム書式変換装置の構成を示すブロック図である。
【図2】実施の形態1に係るプログラム書式変換装置による書式変換の前後のプログラミング言語およびマークアップ言語の関係の一例を示す図である。
【図3】フォームの一例を示す図である。
【図4】図3に示すフォームをVisualBasicで記述した場合のプログラムソースの一例を示す図である(1)。
【図5】図3に示すフォームをVisualBasicで記述した場合のプログラムソースの一例を示す図である(2)。
【図6】図4および図5に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である(1)。
【図7】図4および図5に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である(2)。
【図8】図4および図5に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である(3)。
【図9】図6、図7および図8に示すマークアップ言語のデータを書式変換して得られたJava(登録商標)のプログラムソースの一例を示す図である。
【符号の説明】
21,23 プログラムソース
22 MLデータ
31,32 変換プログラム
41 VBプログラムソース(プログラムソース)
42 C言語プログラムソース(プログラムソース)
43 COBOLプログラムソース(プログラムソース)
44 PL/1プログラムソース(プログラムソース)
45 RPGプログラムソース(プログラムソース)
51 XMLデータ(MLデータ)
61 Java(登録商標)プログラムソース(プログラムソース)
62 C#(商標)プログラムソース(プログラムソース)
【発明の属する技術分野】
本発明は、プログラムソースの書式を変換するためのプログラム書式変換装置および変換プログラムに関するものである。
【0002】
【従来の技術】
今日までに、BASIC、FORTRAN、COBOL(商標)、PL/1、C言語などいった多数のプログラミング言語が存在するとともに、最近でも、Java(登録商標)、C#(商標)などといった新しいプログラミング言語が出現している。新たに作成するシステムで旧来のプログラムソースを活用する場合には、プログラムソースの書式を、そのシステムで利用可能な新しいプログラミング言語に書き換える必要がある。
【0003】
その場合、古いプログラミング言語のプログラムソースを見て、プログラマが、逐一、新しいプログラミング言語に書式を変換することも考えられるが、プログラムソースが長いものの場合、現実的ではない。
【0004】
そのため、従来から、プログラムソースの書式を変換する変換プログラムが存在する。そのような従来の変換プログラムは、ある1つのプログラミング言語で記述されたプログラムソースを別のある1つのプログラミング言語のプログラムソースに変換する。
【0005】
【発明が解決しようとする課題】
しかしながら、従来の変換プログラムでは、ある1つのプログラミング言語から別のある1つのプログラミング言語へ、1対1でかつ1方向にプログラムソースに変換するため、m種類のプログラミング言語のそれぞれで記述されたプログラムソースがあり、そのいずれかのプログラムソースを、n種類のプログラミング言語のいずれかに書式変換しようとする場合、結局、(m×n)種類の従来の変換プログラムが必要となってしまい、種々のプログラミング言語で記載されたプログラムソースの書式を新しいプログラミング言語に変換するために、コストや手間を多く要するという問題がある。
【0006】
本発明は、上記の問題に鑑みてなされたものであり、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができるプログラム書式変換装置および変換プログラムを得ることを目的とする。
【0007】
【課題を解決するための手段】
上記の課題を解決するために、本発明のプログラム書式変換装置は、記録媒体または伝送媒体からプログラムソースを取得する取得手段と、取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第1の変換手段とを備える。
【0008】
このプログラム書式変換装置を利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【0009】
さらに、本発明のプログラム書式変換装置は、上記発明のプログラム書式変換装置に加え、第1の変換手段を次のようにしたものである。第1の変換手段は、プログラムソースにおけるオブジェクトの定義を、そのオブジェクトのインスタンス名を示すタグ引数を有しかつそのオブジェクトの種別を示すタグで囲まれたマークアップ言語のデータに変換する。
【0010】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの記述が正確に書式変換される。
【0011】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第1の変換手段を次のようにしたものである。第1の変換手段は、プログラムソースにおけるオブジェクトの属性を、その属性の名称を含むタグ、およびそのタグで囲まれるその属性の値に変換する。
【0012】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの属性の記述が正確に書式変換される。
【0013】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第1の変換手段を次のようにしたものである。第1の変換手段は、プログラムソースにおける変数の定義を、変数の定義を示す所定のタグ、並びに変数の名称および/または型を示すそのタグの引数に変換する。
【0014】
このプログラム書式変換装置を利用すると、さらに、変数の定義の記述が正確に書式変換される。
【0015】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第1の変換手段を次のようにしたものである。第1の変換手段は、プログラムソース内の関数における各行の式を所定のタグで囲み、所定のタグで囲まれたすべての式を、その関数名を含むタグで囲むことで、関数の定義の書式をマークアップ言語へ変換する。
【0016】
このプログラム書式変換装置を利用すると、さらに、関数の定義の記述が正確に書式変換される。
【0017】
本発明の変換プログラムは、コンピュータを、記録媒体または伝送媒体からプログラムソースを取得する取得手段、および取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第1の変換手段として機能させる。
【0018】
この変換プログラムを利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【0019】
本発明のプログラム書式変換装置は、所定の第1のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段と、マークアップ言語のデータの書式をマークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソースを生成する第2の変換手段とを備える。
【0020】
このプログラム書式変換装置を利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【0021】
さらに、本発明のプログラム書式変換装置は、上記発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、マークアップ言語のデータにおける、オブジェクトのインスタンス名を示すタグ引数を有しかつオブジェクトの種別を示すタグで囲まれたデータを、第2のプログラミング言語の文法に従ったそのオブジェクトの定義に変換する。
【0022】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの記述が正確に書式変換される。
【0023】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、マークアップ言語のデータにおけるオブジェクトの属性の名称を含むタグおよびそのタグで囲まれるその属性の値を、第2のプログラミング言語の文法に従ったそのオブジェクトの属性の記述に変換する。
【0024】
このプログラム書式変換装置を利用すると、さらに、オブジェクト指向プラットホームにおけるオブジェクトの属性の記述が正確に書式変換される。
【0025】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、マークアップ言語のデータにおける変数の定義を示す所定のタグ、並びに変数の名称および/または型を示すそのタグの引数を、第2のプログラミング言語の文法に従ったその変数の定義に変換する。
【0026】
このプログラム書式変換装置を利用すると、さらに、変数の定義の記述が正確に書式変換される。
【0027】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、マークアップ言語のデータ内で関数名を含むタグで囲まれている部分を、第2のプログラミング言語の文法に従ったその関数の定義に変換する。
【0028】
このプログラム書式変換装置を利用すると、さらに、関数の定義の記述が正確に書式変換される。
【0029】
さらに、本発明のプログラム書式変換装置は、上記各発明のプログラム書式変換装置に加え、第2の変換手段を次のようにしたものである。第2の変換手段は、第2のプログラミング言語の文法上不要な情報を除去して、プログラムソースを生成する。
【0030】
このプログラム書式変換装置を利用すると、さらに、書式変換後のプログラムソースをコンパクトにすることができる。
【0031】
本発明の変換プログラムは、コンピュータを、所定の第1のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段、およびマークアップ言語のデータの書式をマークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソースを生成する第2の変換手段として機能させる。
【0032】
この変換プログラムを利用すると、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でのプログラムソースの書式変換を低コストで簡単に行うことができる。
【0033】
【発明の実施の形態】
以下、図に基づいて本発明の実施の形態を説明する。
【0034】
実施の形態1.
本発明の実施の形態1に係るプログラム書式変換装置は、いわゆるコンピュータおよびプログラムで実現される。図1は、本発明の実施の形態1に係るプログラム書式変換装置の構成を示すブロック図である。
【0035】
図1において、CPU1は、ROM2に記憶されたプログラムやRAM3にロードされたプログラムを実行する処理回路である。
【0036】
ROM2は、起動時に必要なデータやプログラムを予め記憶するメモリである。また、RAM3は、各種プログラムの実行時にそのプログラムやデータを一時的に記憶するメモリである。
【0037】
HDD4は、CPU1により実行される各種プログラムを格納する他、書式変換の対象となるプログラムソースやマークアップ言語のデータを格納する記録媒体としてのハードディスク装置である。なお、HDD4の代わりに、他の種類の記録媒体を使用してもよい。例えば、可搬性のあるCD(Compact Disc)やDVD(Digital Versatile Disc)のうちの書き込みが可能なものおよびそれを駆動する駆動装置を、その記録媒体としてもよい。また、CPU1により実行される各種プログラムと、書式変換の対象となるプログラムソースやマークアップ言語のデータとを、別々の記録媒体に記録するようにしてもよい。なお、CPU1により実行される各種プログラムを格納する記録媒体は、書き込み可能なものである必要は特にない。また、HDD4といった記録媒体は、この装置に内蔵されている必要は特になく、外付けされていてもよい。
【0038】
プログラムソース21は、所定の第1のプログラミング言語で記述されたプログラムソースである。なお、通常、プログラムソース21は、テキスト形式で記述されている。また、この第1のプログラミング言語は、VisualBasic、C言語、COBOL、PL/1、RPG(Report Program Generator)などの従来から普及しているプログラミング言語のいずれかである。
【0039】
MLデータ22は、所定のマークアップ言語で記述されたデータである。このマークアップ言語としては、タグの種類が文法上固定されていない、例えばXML(eXtensible Markup Language)、SGML(Standard Generalized Markup Language)などといったマークアップ言語が使用される。
【0040】
プログラムソース23は、所定の第2のプログラミング言語で記述されたプログラムソースである。なお、通常、プログラムソース23は、テキスト形式で記述されている。また、この第2のプログラミング言語は、Java(登録商標)、C#(商標)などの最近出現しているプログラミング言語のいずれかである。
【0041】
変換プログラム31は、CPU1により実行され、HDD4などの記録媒体からプログラムソース21を取得する取得手段、および、その取得手段により取得されたプログラムソース21の書式を所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたMLデータ22を出力する第1の変換手段としてコンピュータを機能させるためのプログラムである。なお、プログラムの書式を変換するというのは、プログラムにより実行される処理の内容は変更せずに、記述のみを変更することである。また、ここでは、MLデータ22の出力先は、HDD4などの記録媒体や伝送媒体とされる。
【0042】
変換プログラム32は、CPU1により実行され、所定の第1のプログラミング言語のプログラムソース21から書式変換されて生成されたMLデータ22をHDD4などの記録媒体から取得する取得手段、およびMLデータ22の書式をマークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソース23を生成する第2の変換手段としてコンピュータを機能させるためのプログラムである。
【0043】
インタフェース5は、HDD4に接続され、HDD4とバス10との間で信号を授受する回路である。
【0044】
表示装置6は、液晶ディスプレイ、CRT(Cathode Ray Tube)などといった各種情報を表示する装置である。また、描画回路7は、各種プログラムに基づき書き込まれる画像データに対応する画像信号を表示装置6に供給する回路である。この描画回路7は、例えばコンピュータに挿入されるビデオカードとして実現される。
【0045】
入力装置8は、ユーザの操作を受け付け、その操作に応じた信号を出力するキーボード、マウスなどといった装置である。また、インタフェース9は、入力装置8に接続され、入力装置8からの信号を受け取る回路である。
【0046】
バス10は、コンピュータ内の回路同士を互いに接続し、データの授受に使用される通信路である。なお、バス10の種類や構成などは、特に限定されるものではなく、インタフェース5,9などとともに種々のチップセットとして実現可能である。
【0047】
次に、上記装置の動作について説明する。図2は、実施の形態1に係るプログラム書式変換装置による書式変換の前後のプログラミング言語およびマークアップ言語の関係の一例を示す図である。
【0048】
図2に示すように、実施の形態1に係るプログラム書式変換装置は、VisualBasicで記述されたVBプログラムソース41、C言語で記述されたC言語プログラムソース42、COBOLで記述されたCOBOLプログラムソース43、PL/1で記述されたPL/1プログラムソース44、RPGで記述されたRPGプログラムソース45などの従来のプログラミング言語のプログラムソース、並びに、Java(登録商標)で記述されたJava(登録商標)プログラムソース61、.NET技術のためのC#(商標)で記述されたC#(商標)プログラムソース62などの新出のプログラミング言語のプログラムソースを、マークアップ言語であるXMLで記述されたXMLデータ51に変換したり、その逆の書式変換をしたりする。
【0049】
次に、プログラミング言語からマークアップ言語への書式変換について説明する。
【0050】
ユーザによる操作などにより、変換プログラム31の実行が指示されると、変換プログラム31がRAM3にロードされ、CPU1は、その変換プログラム31を実行する。その際、例えばユーザによる入力などに基づいて、書式変換の対象となるプログラムソース21が特定される。
【0051】
CPU1は、変換プログラム31に従って、指定されたプログラムソース21を読み出し、構文解釈を行い、行単位あるいはブロック単位で、プログラムソース21の書式を、そのプログラムソース21のプログラミング言語からXMLへ変換する。
【0052】
その際、CPU1は、変換プログラム31に従って、プログラムソース21におけるオブジェクトの定義を、そのオブジェクトのインスタンス名を示すタグ引数を有しかつそのオブジェクトの種別を示すタグで囲まれたマークアップ言語のデータに変換する。
【0053】
また、CPU1は、変換プログラム31に従って、プログラムソース21におけるオブジェクトの属性を、その属性の名称を含むタグ、およびそのタグで囲まれるその属性の値に変換する。
【0054】
また、CPU1は、変換プログラム31に従って、プログラムソース21における変数の定義を、変数の定義を示す所定のタグ、並びに変数の名称および/または型を示すそのタグの引数に変換する。
【0055】
また、CPU1は、変換プログラム31に従って、プログラムソース21内のメソッドにおける各行の式を所定のタグで囲み、所定のタグで囲まれたすべての式を、そのメソッド名を含むタグで囲むことで、上記メソッドの定義の書式をマークアップ言語へ変換する。
【0056】
ここで、プログラミング言語からマークアップ言語への書式変換の一具体例を示す。ここでは、VisualBasicからXMLへの書式変換の一具体例を示すが、他のプログラミング言語からXMLへの書式変換も同様に可能である。
【0057】
図3は、フォームの一例を示す図である。図4および図5は、図3に示すフォームをVisualBasic(商標)で記述した場合のプログラムソースの一例を示す図である。図6、図7および図8は、図4および図5に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である。なお、図中の左端の4桁の数字は、便宜上付した行番号であり、実際のプログラムやデータの中には存在しない。
【0058】
図3のフォーム101は、コマンドボタン111とテキストボックス112を有する。
【0059】
図4および図5に示すプログラムソース21において、「Form1」というオブジェクトの定義が第0002行から第0027行までの部分に記述されている。この「Form1」というオブジェクトの定義の部分は、変換プログラム31に従って、図6、図7および図8に示すMLデータ22の第0104行から第0183行までの部分に変換される。すなわち、変換プログラム31に従って、プログラムソース21における「Form1」オブジェクトの定義は、オブジェクトのインスタンス名Form1を示すタグ引数(name=”Form1”)を有しかつそのオブジェクトの種別(フォーム)を示すタグ<Form name=”Form1”>,</Form>で囲まれたマークアップ言語のデータに変換する。
【0060】
そのうち、コマンドボタン111のオブジェクト定義は、図4の第0019行から第0026行までの部分に記述されており、図6の第0126行から第0135行までの部分に変換される。また、テキストボックス112のオブジェクト定義は、図4の第0012行から第0018行までの部分に記述されており、図6の第0117行から第0125行までの部分に変換される。
【0061】
例えば、この「Form1」というオブジェクトの属性である「Caption」についての記述「Caption=”Form1”」は、その属性の名称「Caption」に基づくタグ<Caption>,</Caption>でその属性値Form1が囲まれた「<Caption>Form1</Caption>」と変換される。なお、他の属性についても同様である。
【0062】
また、図4の第0028行から第0032行までの部分は、VisualBasic特有の属性を示す部分である。この部分は、変換プログラム31に従って、図7の第0138行から第0144行までの部分に変換される。
【0063】
さらに、「Form1」における「Command1」なるコマンドボタンオブジェクト(第0019行〜第0026行)に対して発生するイベントを処理するメソッド(関数)の記述が、第0034行から第0056行までの部分に記述されている。この部分は、変換プログラム31に従って、イベント処理を示す固有のタグ<event>,</event>で囲まれた第0145行から第0182行までの部分に変換される。
【0064】
例えば、「Command1」なるコマンドボタンがクリックされた際の処理を行うメソッドは、図4の第0034行から第0036までの部分に記述されている。この部分は、変換プログラム31に従って、図7の第0148行から第0150行までの部分に変換される。すなわち、メソッド名Clickに基づきタグ<Click>,</Click>が生成され、処理の記述「Text1.Text=”Click”」が、固有のタグ</Process>,</Process>で囲まれる。そして、その処理の記述が、メソッド名に基づくタグ<Click>,</Click>で囲まれる。なお、他のメソッドや関数についても同様である。
【0065】
また、図5の第0046行に出現する変数Buttonの定義は、図7の第0155行から第158行までの部分に示すように変換される。すなわち、変数Buttonの定義は、変換プログラム31に従って、変数の定義を示す所定のタグ<Arg>,</Arg>、並びに変数の名称Buttonおよび型integerを示すタグ引数(name=”Button”,type=”Integer”)に変換される。なお、他の変数についても同様である。
【0066】
このようにして、プログラミング言語からマークアップ言語への書式変換が行われる。
【0067】
次に、マークアップ言語からプログラミング言語への書式変換について説明する。
【0068】
ユーザによる操作などにより、変換プログラム32の実行が指示されると、変換プログラム32がRAM3にロードされ、CPU1は、その変換プログラム32を実行する。その際、例えばユーザによる入力などに基づいて、書式変換の対象となるMLデータ22が特定される。
【0069】
CPU1は、変換プログラム32に従って、指定されたMLデータ22を読み出し、各タグの解釈を行い、XMLで記述されたMLデータ22から、所定のプログラミング言語のプログラムソース23を生成する。
【0070】
その際、CPU1は、変換プログラム32に従って、MLデータ22における、オブジェクトのインスタンス名を示すタグ引数を有しかつオブジェクトの種別を示すタグで囲まれたデータを、そのプログラミング言語の文法に従ったそのオブジェクトの定義に変換する。
【0071】
また、CPU1は、変換プログラム32に従って、MLデータ22におけるオブジェクトの属性の名称を含むタグおよびそのタグで囲まれるその属性の値を、そのプログラミング言語の文法に従ったそのオブジェクトの属性の記述に変換する。
【0072】
また、CPU1は、変換プログラム32に従って、MLデータ22における変数を示す所定のタグ並びに変数の名称および/または型を示すそのタグの引数を、そのプログラミング言語の文法に従ったその変数の定義に変換する。
【0073】
また、CPU1は、変換プログラム32に従って、MLデータ22内でメソッド名を含むタグで囲まれている部分における所定のタグで囲まれた各式を、そのプログラミング言語の文法に従ったそのメソッドの定義に変換する。
【0074】
なお、必要に応じて、そのプログラミング言語の文法上不要な情報を除去して、プログラムソース23を生成するようにしてもよい。
【0075】
ここで、マークアップ言語からプログラミング言語への書式変換の一具体例を示す。ここでは、XMLからJava(登録商標)への書式変換の一具体例を示すが、XMLから他のプログラミング言語への書式変換も同様に可能である。
【0076】
図9は、図6、図7および図8に示すマークアップ言語のデータを書式変換して得られたJava(登録商標)のプログラムソースの一例を示す図である。なお、図中の左端の4桁の数字は、便宜上付した行番号であり、実際のプログラムやデータの中には存在しない。
【0077】
図6、図7および図8に示すMLデータ22において、「Form1」というオブジェクトの定義が第0104行から第0183行までの部分に記述されている。この「Form1」というオブジェクトの定義の部分は、変換プログラム32に従って、図9に示すプログラムソース23の第0208行から第0222行までの部分に変換される。
【0078】
例えば、「Text1」なるテキストボックスオブジェクトが、図6の第0117行から第0125行までの部分に記述されている。この部分は、変換プログラム32に従って、Java(登録商標)の文法に沿って、図9に示すプログラムソース23の第0217行から第0221行までの部分に変換される。
【0079】
また、例えば、イベント処理のメソッドClickが、図7の第0148行から第0150行までの部分に記述されている。この部分は、変換プログラム32に従って、Java(登録商標)の文法に沿って、図9の第0224行から第0226行までの部分に変換される。
【0080】
このようにして、マークアップ言語からプログラミング言語への書式変換が行われる。
【0081】
なお、ここでは、MLデータ22を介して第1のプログラミング言語から第2のプログラミング言語への書式変換が可能であるが、MLデータ22を介してどのプログラミング言語から別のどのプログラミング言語への書式変換でも可能である。
【0082】
以上のように、上記実施の形態1によれば、変換プログラム31が、コンピュータを、記録媒体からプログラムソースを取得する取得手段、および取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成されたマークアップ言語のデータを出力する第1の変換手段として機能させる。また、変換プログラム32が、コンピュータを、所定のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体から取得する取得手段、およびマークアップ言語のデータの書式をマークアップ言語から所定のプログラミング言語へ変換して、そのプログラミング言語のプログラムソースを生成する第2の変換手段として機能させる。
【0083】
これにより、プログラムソースの書式が一旦、マークアップ言語とされるため、複数種類のプログラミング言語間でプログラムソースの書式変換を低コストで簡単に行うことができる。また、今後新たなプログラミング言語が出現しても、このマークアップ言語からの書式変換を行うことができるようにするだけで、過去のプログラムリソースを簡単に活用することができる。
【0084】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【0085】
例えば、実施の形態1に係るプログラム書式変換装置は、プログラミング言語からマークアップ言語への書式変換と、マークアップ言語からプログラミング言語への書式変換の両方を行っているが、いずれか一方を行うようにしてもよい。すなわち、プログラミング言語からマークアップ言語への書式変換を行う装置と、マークアップ言語からプログラミング言語への書式変換を行う装置とを、別々に実現するようにしてもよい。
【0086】
また、変換プログラム32により実現される第2の変換手段が、第2のプログラミング言語の文法上不要な情報を除去して、プログラムソースを生成するようにしてもよい。その場合には、書式変換後のプログラムソースをコンパクトにすることができる。
【0087】
さらに、上記実施の形態1においては、HDD4にプログラムソース21やMLデータ22が格納されているが、CPU1が、取得手段として、変換プログラム31,32に従って、電気通信回線である伝送媒体を介してプログラムソース21やMLデータ22を取得するようにしてもよい。その場合には、図1に示す装置に、ネットワークインタフェースやモデムといった通信手段を接続し、その通信手段により、伝送媒体を介してプログラムソース21やMLデータ22を取得する。
【0088】
同様に、上記実施の形態1においては、HDD4にMLデータ22やプログラムソース23が格納されているが、CPU1が、変換プログラム31,32に従って、伝送媒体を介してMLデータ22やプログラムソース23を出力するようにしてもよい。その場合には、図1に示す装置に、ネットワークインタフェースやモデムといった通信手段を接続し、その通信手段により、伝送媒体を介してプログラムソース21やMLデータ22を出力する。
【0089】
【発明の効果】
本発明によれば、複数種類のプログラミング言語間でプログラムソースの書式変換を低コストで簡単に行うことができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るプログラム書式変換装置の構成を示すブロック図である。
【図2】実施の形態1に係るプログラム書式変換装置による書式変換の前後のプログラミング言語およびマークアップ言語の関係の一例を示す図である。
【図3】フォームの一例を示す図である。
【図4】図3に示すフォームをVisualBasicで記述した場合のプログラムソースの一例を示す図である(1)。
【図5】図3に示すフォームをVisualBasicで記述した場合のプログラムソースの一例を示す図である(2)。
【図6】図4および図5に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である(1)。
【図7】図4および図5に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である(2)。
【図8】図4および図5に示すプログラムソースを書式変換して得られたマークアップ言語のデータの一例を示す図である(3)。
【図9】図6、図7および図8に示すマークアップ言語のデータを書式変換して得られたJava(登録商標)のプログラムソースの一例を示す図である。
【符号の説明】
21,23 プログラムソース
22 MLデータ
31,32 変換プログラム
41 VBプログラムソース(プログラムソース)
42 C言語プログラムソース(プログラムソース)
43 COBOLプログラムソース(プログラムソース)
44 PL/1プログラムソース(プログラムソース)
45 RPGプログラムソース(プログラムソース)
51 XMLデータ(MLデータ)
61 Java(登録商標)プログラムソース(プログラムソース)
62 C#(商標)プログラムソース(プログラムソース)
Claims (13)
- 記録媒体または伝送媒体からプログラムソースを取得する取得手段と、
上記取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成された上記マークアップ言語のデータを出力する第1の変換手段と、
を備えること特徴とするプログラム書式変換装置。 - 前記第1の変換手段は、前記プログラムソースにおけるオブジェクトの定義を、そのオブジェクトのインスタンス名を示すタグ引数を有しかつそのオブジェクトの種別を示すタグで囲まれた前記マークアップ言語のデータに変換することを特徴とする請求項1記載のプログラム書式変換装置。
- 前記第1の変換手段は、前記プログラムソースにおけるオブジェクトの属性を、その属性の名称を含むタグ、およびそのタグで囲まれるその属性の値に変換することを特徴とする請求項1または請求項2記載のプログラム書式変換装置。
- 前記第1の変換手段は、前記プログラムソースにおける変数の定義を、変数の定義を示す所定のタグ、並びに変数の名称および/または型を示すそのタグの引数に変換することを特徴とする請求項1から請求項3のうちのいずれか1項記載のプログラム書式変換装置。
- 前記第1の変換手段は、前記プログラムソース内の関数における各行の式を所定のタグで囲み、所定のタグで囲まれたすべての式を、その関数名を含むタグで囲むことで、上記関数の定義の書式をマークアップ言語へ変換することを特徴とする請求項1から請求項4のうちのいずれか1項記載のプログラム書式変換装置。
- コンピュータを、
記録媒体または伝送媒体からプログラムソースを取得する取得手段、および
上記取得手段により取得されたプログラムソースの書式を、所定のプログラミング言語からマークアップ言語へ変換し、書式変換により生成された上記マークアップ言語のデータを出力する第1の変換手段、
として機能させるための変換プログラム。 - 所定の第1のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段と、
上記マークアップ言語のデータの書式を上記マークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソースを生成する第2の変換手段と、
を備えることを特徴とするプログラム書式変換装置。 - 前記第2の変換手段は、前記マークアップ言語のデータにおける、オブジェクトのインスタンス名を示すタグ引数を有しかつオブジェクトの種別を示すタグで囲まれたデータを、前記第2のプログラミング言語の文法に従ったそのオブジェクトの定義に変換することを特徴とする請求項7記載のプログラム書式変換装置。
- 前記第2の変換手段は、前記マークアップ言語のデータにおけるオブジェクトの属性の名称を含むタグおよびそのタグで囲まれるその属性の値を、前記第2のプログラミング言語の文法に従ったそのオブジェクトの属性の記述に変換することを特徴とする請求項7または請求項8記載のプログラム書式変換装置。
- 前記第2の変換手段は、前記マークアップ言語のデータにおける変数の定義を示す所定のタグ並びに変数の名称および/または型を示すそのタグの引数を、前記第2のプログラミング言語の文法に従ったその変数の定義に変換することを特徴とする請求項7から請求項9のうちのいずれか1項記載のプログラム書式変換装置。
- 前記第2の変換手段は、前記マークアップ言語のデータ内で関数名を含むタグで囲まれている部分を、前記第2のプログラミング言語の文法に従ったその関数の定義に変換することを特徴とする請求項7から請求項10のうちのいずれか1項記載のプログラム書式変換装置。
- 前記第2の変換手段は、前記第2のプログラミング言語の文法上不要な情報を除去して、前記プログラムソースを生成することを特徴とする請求項7から請求項11のうちのいずれか1項記載のプログラム書式変換装置。
- コンピュータを、
所定の第1のプログラミング言語のプログラムソースから書式変換されて生成されたマークアップ言語のデータを記録媒体または伝送媒体から取得する取得手段、および
上記マークアップ言語のデータの書式を上記マークアップ言語から所定の第2のプログラミング言語へ変換して、その第2のプログラミング言語のプログラムソースを生成する第2の変換手段、
として機能させるための変換プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002190932A JP2004038297A (ja) | 2002-06-28 | 2002-06-28 | プログラム書式変換装置および変換プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002190932A JP2004038297A (ja) | 2002-06-28 | 2002-06-28 | プログラム書式変換装置および変換プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004038297A true JP2004038297A (ja) | 2004-02-05 |
Family
ID=31700706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002190932A Pending JP2004038297A (ja) | 2002-06-28 | 2002-06-28 | プログラム書式変換装置および変換プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004038297A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362343A (ja) * | 2003-06-05 | 2004-12-24 | Internatl Business Mach Corp <Ibm> | ソースコード変換装置、ソースコード変換方法、およびプログラム |
JP2006011756A (ja) * | 2004-06-24 | 2006-01-12 | Fujitsu Ltd | プログラム変換プログラム、プログラム変換装置およびプログラム変換方法 |
JP2007087127A (ja) * | 2005-09-22 | 2007-04-05 | Open Stream Inc | データ生成プログラム、該プログラムを記憶した記憶媒体、オープンソースソフトウェア開発環境統合プログラム、該プログラムを記憶した記憶媒体 |
JP2008146637A (ja) * | 2006-11-20 | 2008-06-26 | Intentional Software Corp | ドメイン変換言語 |
JP2009098751A (ja) * | 2007-10-12 | 2009-05-07 | Nomura Research Institute Ltd | コーディング支援装置 |
JP2009098750A (ja) * | 2007-10-12 | 2009-05-07 | Nomura Research Institute Ltd | コーディング支援装置 |
JP2010530575A (ja) * | 2007-06-08 | 2010-09-09 | アクセンチュア グローバル サービスィズ ゲーエムベーハー | レガシーアプリケーションの移行 |
JPWO2009157082A1 (ja) * | 2008-06-27 | 2011-12-01 | 株式会社富士通エフサス | プログラム変換処理装置およびプログラム |
-
2002
- 2002-06-28 JP JP2002190932A patent/JP2004038297A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004362343A (ja) * | 2003-06-05 | 2004-12-24 | Internatl Business Mach Corp <Ibm> | ソースコード変換装置、ソースコード変換方法、およびプログラム |
JP4686117B2 (ja) * | 2003-06-05 | 2011-05-18 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ソースコード変換装置、ソースコード変換方法、およびプログラム |
JP2006011756A (ja) * | 2004-06-24 | 2006-01-12 | Fujitsu Ltd | プログラム変換プログラム、プログラム変換装置およびプログラム変換方法 |
JP4724387B2 (ja) * | 2004-06-24 | 2011-07-13 | 富士通株式会社 | プログラム変換プログラム、プログラム変換装置およびプログラム変換方法 |
JP2007087127A (ja) * | 2005-09-22 | 2007-04-05 | Open Stream Inc | データ生成プログラム、該プログラムを記憶した記憶媒体、オープンソースソフトウェア開発環境統合プログラム、該プログラムを記憶した記憶媒体 |
JP2008146637A (ja) * | 2006-11-20 | 2008-06-26 | Intentional Software Corp | ドメイン変換言語 |
US9158507B2 (en) | 2006-11-20 | 2015-10-13 | Intentional Software Corporation | Domain transformation languages |
JP2010530575A (ja) * | 2007-06-08 | 2010-09-09 | アクセンチュア グローバル サービスィズ ゲーエムベーハー | レガシーアプリケーションの移行 |
JP2009098751A (ja) * | 2007-10-12 | 2009-05-07 | Nomura Research Institute Ltd | コーディング支援装置 |
JP2009098750A (ja) * | 2007-10-12 | 2009-05-07 | Nomura Research Institute Ltd | コーディング支援装置 |
JPWO2009157082A1 (ja) * | 2008-06-27 | 2011-12-01 | 株式会社富士通エフサス | プログラム変換処理装置およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8464216B2 (en) | Providing assistance for editing markup document based on inferred grammar | |
US11062081B2 (en) | Creating accessible, translatable multimedia presentations | |
ES2255191T3 (es) | Metodo y aparato para conectar un ordenador para usos generales a un sistema especializado. | |
US20030034989A1 (en) | Application editing apparatus and data processing method and program | |
US20030121000A1 (en) | Method and apparatus for converting programs and source code files written in a programming language to equivalent markup language files | |
EP1630702A1 (en) | System and method for automatically generating xml schema for validating xml input documents | |
JP2006228210A (ja) | 既存のコンテンツを用いた、タスクを実行するためのアクティブコンテンツウィザード実行可能ファイルの生成 | |
US20090037801A1 (en) | Method and apparatus for automatic user manual generation | |
JP2006202277A (ja) | 非独自言語によって駆動される一般アプリケーション用シーケンス図ジェネレータ | |
CN111026931A (zh) | 一种数据查询方法、装置、设备及介质 | |
JP2004038297A (ja) | プログラム書式変換装置および変換プログラム | |
JP2007293548A (ja) | 情報処理装置および情報処理方法 | |
CN115136256A (zh) | 信息处理方法、装置、计算设备、介质和计算机程序 | |
Irwin et al. | Object oriented metrics: Precision tools and configurable visualisations | |
Dejanovic et al. | Comparison of Textual and Visual Notations of DOMMLite Domain-Specific Language. | |
US6829758B1 (en) | Interface markup language and method for making application code | |
JP2007279795A (ja) | プログラムによって表示される画面が仕様を満たすか判断するシステム | |
Duffy et al. | Design and implementation of a language-complete C++ semantic graph | |
CN102662963A (zh) | 一种元设施扩展方法及模块 | |
KR20030095026A (ko) | Xml 문서 변환장치 및 xml 문서 변환 소프트웨어를기록한 컴퓨터가 읽을 수 있는 기록매체 | |
US20060101381A1 (en) | Computer method and apparatus for implementing subsets constraints in programming models | |
JP2021179764A (ja) | 生成プログラム、生成装置、生成方法 | |
JPH11237976A (ja) | Cgiプログラム作成方法 | |
JP2006520033A (ja) | ビットストリームについてのフォーマットを一般的に記述するスキーマに基づいてビットストリームを出力する方法。 | |
JP2010152667A (ja) | ソースコード自動生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20040129 |
|
A975 | Report on accelerated examination |
Effective date: 20040205 Free format text: JAPANESE INTERMEDIATE CODE: A971005 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040302 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040629 |