JP2014191738A - ソースプログラムのプログラミング言語変換装置 - Google Patents

ソースプログラムのプログラミング言語変換装置 Download PDF

Info

Publication number
JP2014191738A
JP2014191738A JP2013068751A JP2013068751A JP2014191738A JP 2014191738 A JP2014191738 A JP 2014191738A JP 2013068751 A JP2013068751 A JP 2013068751A JP 2013068751 A JP2013068751 A JP 2013068751A JP 2014191738 A JP2014191738 A JP 2014191738A
Authority
JP
Japan
Prior art keywords
program
programming language
source
module
conversion
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.)
Granted
Application number
JP2013068751A
Other languages
English (en)
Other versions
JP5405684B1 (ja
Inventor
Shinichi Takada
紳一 高田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
VALUE KK
Original Assignee
VALUE KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by VALUE KK filed Critical VALUE KK
Priority to JP2013068751A priority Critical patent/JP5405684B1/ja
Application granted granted Critical
Publication of JP5405684B1 publication Critical patent/JP5405684B1/ja
Publication of JP2014191738A publication Critical patent/JP2014191738A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

【課題】
プログラム構造全体がオブジェクト指向型に変換される、ソースプログラムのプログラミング言語変換装置、変換方法、変換プログラム、及び、変換プログラムが記録された記録媒体を提供する。
【解決手段】
第一のプログラミング言語で記述された第一のソースプログラムを、プログラム制御記述部とビジネスロジック記述部とに分離する。分離されたビジネスロジック記述部を、第二のプログラミング言語で記述されたモジュールに置き換える。モジュールに置き換えられたビジネスロジック記述部と、分離しておいたプログラム制御記述部とを再結合させて、制御記述部のプログラム命令を第二のプログラミング言語で記述されたプログラム命令で置き換えて、第二のソースプログラムを生成する。
【選択図】 図1

Description

本発明は、手続き型プログラミング言語で記述されたソースプログラムを、オブジェクト指向プログラミング言語で記述されたソースプログラムに変換するためのプログラミング言語変換装置、変換方法、変換プログラム、及び、変換プログラムを記録した記録媒体装置に関する。
コンピュータハードウェアの性能向上は日進月歩であり、その進歩の速さには目覚ましいものがある。ハードウェアの計算・処理能力の向上に伴い、ハードウェア資源を有効活用する目的から、ソフトウェアには、より多くのデータを用い、より複雑で高度な情報処理を行うことが求められている。
こうしたソフトウェアへの要求に応えていくことは、必然的に、プログラムの拡張による大規模化やソースプログラムの複雑化を進めることとなるが、プログラムが大規模になり、ソースプログラムが複雑になればなる程、ソフトウェア開発者の負担はより大きなものとなり、またソフトウェアのメンテナンスは困難となる。
このような問題を解決するためには、従来よりも、プログラムの拡張性を高めて大規模なプログラムの開発を容易にしたり、ソースプログラムの可読性を向上させてソフトウェアのメンテナンスを容易にしたりすることが必要とされる。こうした要望に応えるために、ソフトウェアに関する技術も急速に進歩してきている。
ソフトウェアに関する技術進歩の一つとして、プログラミング技法の進歩が挙げられる。その具体例として、例えば、オブジェクト指向プログラミングの導入が挙げられる。従来のプログラミング技法に基づくプログラミング言語である、例えば、「手続き型プログラミング言語」を用いた場合に比べて、オブジェクト指向プログラミング言語を用いた場合には、大規模なプログラムの開発が容易になり、ソースプログラムの可読性が向上し、ソフトウェアの保守性や再利用性が向上することが知られている。
このように、近年ではオブジェクト指向プログラミング言語を用いたソフトウェア開発が主流となっている一方で、オブジェクト指向型でないプログラミング言語で記述されたソフトウェアも多く残されている。こうした古いソフトウェアを新しいハードウェア環境でも利用できるようにするには、オブジェクト指向型でないプログラミング言語で記述されたソースプログラムを、オブジェクト指向プログラミング言語で記述されたソースプログラムに変換することが望ましい。
このような、手続き型プログラミング言語で記述されたソースプログラムから、オブジェクト指向プログラミング言語で記述されたソースプログラムへの言語変換を支援する手段を提供するものとして、例えば、変換前ソースプログラムの内容と、これに対応する変換後のプログラム内容との変換対応情報、及び、変換後のプログラムの内容に対応する変換前プログラミング言語の文脈パターン情報を予め記憶しておき、変換前ソースプログラムの内容と文脈パターン情報とをパターン認識して、パターン認識での一致度が最も高い変換後のプログラム内容を用いてソースプログラムの言語変換を行う、ソースプログラム他言語変換支援装置(特許文献1参照)などが挙げられる。
特開2011−170556号公報
オブジェクト指向型でないプログラミング言語で記述されたソースプログラムを、オブジェクト指向プログラミング言語で記述されたソースプログラムに変換するに当たっては、プログラム構造全体がオブジェクト指向型で構築されることが好ましい。さもなくば、オブジェクト指向プログラミング言語で記述することによる利点が得られないので、言語変換する意味自体が薄れてしまう。
上記の特許文献1に記載の発明は、パターン認識を用いて、手続き型プログラミング言語でのプログラムパターンや命令を、オブジェクト指向プログラミング言語でのプログラムパターンや命令に置き換えるものである。つまり、ただ単に言語を置き換えるだけであり、プログラム全体の構造は変換元の手続き型のままであるので、ソースプログラムのプログラム構造全体をオブジェクト指向型に変換するには、更に技術者が手を加えなければならなかった。そのため、言語変換の省力化は十分なものではなく、拡張性・可読性・保守性・再利用性の向上等といった、オブジェクト指向プログラミングを用いることによる利点を得るには、技術者の多大な労力を必要とするという課題があった。
また、上記の特許文献1に記載の発明においては、置き換えるべき変換後のプログラム内容が予め記憶されていなかった場合、パターン認識を用いても置き換えるべき変換後のプログラム内容が選択できなかった場合などに、変換後のソースプログラムにはその旨をコメント行として記述した内容が記述されるのみであるため、そのままでは、変換後のソースプログラムはコンパイル時にコンパイルエラーが発生するものであり、ソフトウェアとして実行することは不可能であった。また、パターン認識で誤った結果が得られたために不適切な変換が行われた場合などでも、同様に変換後のソースプログラムは実行不可能なものであった。そのため、多くの場合において、結局は、プログラマーなどの技術者が出力されたコメント行を参照して、変換後のソースプログラムを修正しなければ、変換後のソースプログラムをコンパイルしてそのまま実行することは不可能であるという課題があった。
本発明は、上記の課題を解決するためになされたものであり、プログラム構造全体がオブジェクト指向型に変換される、ソースプログラムのプログラミング言語変換装置、変換方法、変換プログラム、及び、変換プログラムが記録された記録媒体を提供することを目的とする。また、本発明は、プログラミング言語を変換したソースプログラムのコンパイル時にコンパイルエラーが発生しない、ソースプログラムのプログラミング言語変換装置、変換方法、変換プログラム、及び、変換プログラムが記録された記録媒体を提供することを目的とする。
本発明は、第一のプログラミング言語により記述された第一のソースプログラムを、第二のプログラミング言語により記述された第二のソースプログラムに変換する、プログラミング言語変換装置であって、第一のソースプログラムの入力を受け付ける第一ソースプログラム入力受付手段と、第一のソースプログラムを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶した対応関係情報記憶手段と、第一ソースプログラム入力受付手段により受け付けられた第一のソースプログラムの構造を解析し、第一のソースプログラムをプログラム制御記述部とビジネスロジック記述部とに分離した第一中間データに変換する第一変換手段と、対応関係情報記憶手段に記憶された対応関係情報に基づいて、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するモジュール選択手段と、モジュール選択手段により選択された選択モジュールを用いて、第一中間データの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換する第二変換手段と、第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えるためのプログラム命令の対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、第二変換手段により生成された第二中間データについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二中間データを第二のソースプログラムに変換する第三変換手段とを備えることを特徴とするプログラミング言語変換装置に関する。
本発明においては、まず、第一のプログラミング言語で記述された第一のソースプログラムを、プログラム制御記述部とビジネスロジック記述部とに分離する。そして、分離されたビジネスロジック記述部を、第二のプログラミング言語で記述されたモジュールに置き換える。その後、モジュールに置き換えられたビジネスロジック記述部と、分離しておいたプログラム制御記述部とを再結合させて、制御記述部のプログラム命令を第二のプログラミング言語で記述されたプログラム命令で置き換えて、第二のソースプログラムを生成する。プログラム制御記述部とビジネスロジック記述部とを分離して、まずビジネスロジック記述部をモジュールに置き換えることにより、変換元の第一のソースプログラムのプログラム構造全体をオブジェクト指向型に変えることができる。そのため、本発明によりオブジェクト指向プログラミング言語に変換されたプログラムは、拡張性・可読性・保守性・再利用性の向上等というプログラム構造全体をオブジェクト指向型にしたことによる恩恵を、より少ない労力で得ることができる。つまり、言語変換を省力化し、技術者の負担を軽減することができる。
第三変換手段により変換された第二のソースプログラムに対して、第二のプログラミング言語における構文チェックを行うとともに、第二のソースプログラムをコンパイルして、コンパイルエラーが発生するか否かを検出するコンパイルエラー検出手段とを備え、コンパイルエラー検出手段により検出されたコンパイルエラーの原因となる第二中間データの記述を修正した後に、修正した第二中間データを第三変換手段が第二のソースプログラムに変換することが好ましい。
第二中間データが第二のソースプログラムに変換された後に、この第二のソースプログラムに対して、第二のプログラミング言語における構文チェックを行うとともに、この第二のソースプログラムをコンパイルして、コンパイルエラーが発生するか否かのチェックを行う。コンパイルエラーの発生が検出された場合には、コンパイルエラーの原因となる第二中間データの記述部分を修正して、修正した第二中間データを第二のソースプログラムに変換する。そのため、コンパイルエラーが発生せず、そのままコンパイルして実行可能な第二のソースプログラムを得ることができる。これにより、言語変換を省力化することができ、技術者の負担を軽減することもできる。
第二のプログラミング言語はオブジェクト指向プログラミング言語であることが好ましく、第一のプログラミング言語は手続き型プログラミング言語であることが好ましい。
本発明は、非オブジェクト指向プログラミング言語、例えば、手続き型プログラミング言語などで記述されたソースプログラムを、オブジェクト指向プログラミング言語に変換する際に好適に用いられる。手続き型プログラミング言語で記述されたソースプログラムを、プログラムの全体構造からオブジェクト指向型に変え、オブジェクト指向プログラミング言語で記述されたソースプログラムに変換するので、変換されたソースプログラムは、オブジェクト指向プログラミングを用いることによる、拡張性・可読性・保守性・再利用性の向上等という恩恵を得ることができる。
モジュールの機能を説明する情報であるモジュール説明情報と、プログラム制御記述部のプログラム命令を説明する情報であるプログラム命令説明情報とを予め記憶した仕様データ変換情報記憶手段と、第二中間データを構成するモジュールを、仕様データ変換情報記憶手段に記憶されたモジュール説明情報に置き換え、第二中間データを構成するプログラム制御記述部のプログラム命令を、仕様データ変換情報記憶手段に記憶されたプログラム命令説明情報に置き換えることにより、第二中間データを第二のソースプログラムの仕様に関する仕様データに変換する第四変換手段とを備えることが好ましい。
本発明によれば、ソースプログラムの言語変換を行うとともに、言語変換に伴って生成される第二中間データをもとに、変換された第二のソースプログラムの仕様書等のデータを生成することもできる。第二のソースプログラムに関する仕様書等の資料を容易に作成することができる。
第一変換手段により生成される第一中間データは、MVCモデルに基づいて、ビジネスロジック記述部からなるModelオブジェクト部と、プログラム制御記述部からなるControlオブジェクト部とに分離されたものであることが好ましい。
第一のソースプログラムをビジネスロジック記述部とプログラム制御記述部とに分離する際に、MVCモデルに基づいて、Modelオブジェクト部と、Controlオブジェクト部とに分離することにより、言語変換された第二のソースプログラムをMVCモデルに基づいたプログラム構造とすることができる。
第一のソースプログラムがデータベースを参照する場合に、第一のソースプログラムが参照するデータベースを構成する物理ファイル及び論理ファイルの入力を受け付けるデータベースファイル受付手段と、物理ファイル及び論理ファイルに含まれるキーファイルに対応するモジュールと、キーファイルからモジュールを作成する対応関係に関する情報であるモジュール作成情報とを予め記憶したモジュール作成情報記憶手段とを備え、モジュール作成情報記憶手段に記憶されたモジュール作成情報に基づいて、データベースファイル受付手段により入力された物理ファイル及び論理ファイルについて、物理ファイル及び論理ファイルに含まれるキーファイル毎にモジュールを作成することが好ましい。
第一のソースプログラムがデータベースを参照している場合に、そのデータベースを構成する物理ファイルや論理ファイルを読み込んで、変換後の第二のソースプログラムのビジネスロジック記述部を置換するモジュールを作成することで、第二のソースプログラムが既存のデータベース資産をそのまま活用できるようにすることができる。
また、本発明は、第一のプログラミング言語により記述された第一のソースプログラムを、第二のプログラミング言語により記述された第二のソースプログラムに変換する、プログラミング言語変換をコンピュータ装置において実行する方法であって、第一のソースプログラムの入力を受け付けるステップと、受け付けられた第一のソースプログラムの構造を解析し、第一のソースプログラムをプログラム制御記述部とビジネスロジック記述部とに分離した第一中間データに変換するステップと、第一のソースプログラムを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶手段に記憶しておき、記憶されていた対応関係情報に基づいて、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するステップと、選択された選択モジュールを用いて、第一中間データの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換するステップと、第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えるためのプログラム命令の対応関係に関するプログラム命令置換情報を予め記憶手段に記憶しておき、記憶されていたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二中間データを第二のソースプログラムに変換するステップとを有するプログラミング言語変換方法に関する。
また、本発明は、第一のプログラミング言語により記述された第一のソースプログラムを、第二のプログラミング言語により記述された第二のソースプログラムに変換する、プログラミング言語変換をコンピュータ装置に実行させるプログラムであって、コンピュータ装置を、第一のソースプログラムの入力を受け付ける第一ソースプログラム入力受付手段と、第一のソースプログラムを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶した対応関係情報記憶手段と、第一ソースプログラム入力受付手段により受け付けられた第一のソースプログラムの構造を解析し、第一のソースプログラムをプログラム制御記述部とビジネスロジック記述部とに分離した第一中間データに変換する第一変換手段と、対応関係情報記憶手段に記憶された対応関係情報に基づいて、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するモジュール選択手段と、モジュール選択手段により選択された選択モジュールを用いて、第一中間データの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換する第二変換手段と、第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換える対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、第二変換手段により生成された第二中間データについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二中間データを第二のソースプログラムに変換する第三変換手段として機能させる、プログラミング言語変換プログラムに関する。
また、本発明は、第一のプログラミング言語により記述された第一のソースプログラムを、第二のプログラミング言語により記述された第二のソースプログラムに変換する、プログラミング言語変換をコンピュータ装置に実行させるプログラムを記録した記録媒体であって、コンピュータ装置を、第一のソースプログラムの入力を受け付ける第一ソースプログラム入力受付手段と、第一のソースプログラムを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶した対応関係情報記憶手段と、第一ソースプログラム入力受付手段により受け付けられた第一のソースプログラムの構造を解析し、第一のソースプログラムをプログラム制御記述部とビジネスロジック記述部とに分離した第一中間データに変換する第一変換手段と、対応関係情報記憶手段に記憶された対応関係情報に基づいて、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するモジュール選択手段と、モジュール選択手段により選択された選択モジュールを用いて、第一中間データの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換する第二変換手段と、第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換える対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、第二変換手段により生成された第二中間データについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二中間データを第二のソースプログラムに変換する第三変換手段として機能させるプログラムを記録した記録媒体に関する。
本発明は、第一のプログラミング言語により記述された第一のソースコードデータを、第二のプログラミング言語により記述され、且つ、動作が可能な第二のソースプログラムに変換する、プログラミング言語変換装置であって、第一のソースコードデータが、第一のプログラミング言語により記述され、且つ、動作が可能な第一のソースプログラムを構成するプログラム制御記述部とビジネスロジック記述部を分離したデータ構造を有するものであり、第一のソースコードデータの入力を受け付ける第一ソースコードデータ入力受付手段と、第一のソースコードデータを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶した対応関係情報記憶手段と、対応関係情報記憶手段に記憶された対応関係情報に基づいて、第一ソースコードデータ入力受付手段により受け付けられた第一ソースコードデータのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するモジュール選択手段と、モジュール選択手段により選択された選択モジュールを用いて、第一ソースコードデータ入力受付手段により受け付けられた第一ソースコードデータの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一ソースコードデータを第二ソースコードデータに変換する第二変換手段と、第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えるためのプログラム命令の対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、第二変換手段により生成された第二ソースコードデータについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二ソースコードデータを第二のソースプログラムに変換する第三変換手段とを備えることを特徴とするプログラミング言語変換装置に関する。
第一のプログラミング言語で記述された第一のソースプログラムを、技術者が予めプログラム制御記述部とビジネスロジック記述部とに手動で分離しておき、この分離されたデータである第一のソースコードデータを、本発明のプログラミング言語変換装置に入力して、第二のプログラミング言語で記述された第二のソースプログラムに変換することもできる。これにより、プログラム制御記述部とビジネスロジック記述部とへの分離が困難な、複雑なソースプログラムであっても、第二のソースプログラムへの変換が容易に可能となる。
本発明は、第一のプログラミング言語により記述されたソースコードデータを、第二のプログラミング言語により記述され、且つ、動作が可能な第二のソースプログラムに変換する、プログラミング言語変換装置であって、ソースコードデータが、第一のプログラミング言語により記述され、且つ、プログラム制御記述部とビジネスロジック記述部から構成されるものであり、さらに、ビジネスロジック記述部のプログラムの一部が、モジュールに置き換えられることでオブジェクト化されたものであり、ソースコードデータの入力を受け付けるソースコードデータ入力受付手段と、第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えるためのプログラム命令の対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、ソースコードデータ入力受付手段により受け付けられたソースコードデータについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、ソースコードデータを第二のソースプログラムに変換する第三変換手段とを備えることを特徴とするプログラミング言語変換装置に関する。
また、本発明のプログラミング言語変換装置においては、第二のソースプログラムを構成するモジュールを予め登録しておき、これらとプログラム制御記述部とを組み合わせて、ソースコードデータを入力し、作成することもできる。特に、作成しようとする第二のソースプログラムが複雑である場合や長大である場合、また、もととなるソースプログラムからの変更が多い場合などにおいては、第一のソースプログラム等を用意して、これをもとに変換・修正するよりも、第一のプログラミング言語に精通した技術者がソースコードデータを入力するほうが容易である場合がある。入力したソースコードデータからは、第二のソースプログラムを容易に得ることができるため、本発明のプログラミング言語変換装置を用いることで、第二のプログラミング言語に精通していない技術者であっても、第二のソースプログラムを容易に作成することができる。
本発明の実施の形態にかかるプログラミング言語変換装置の構成を示すブロック図である。 本発明の実施の形態にかかる変換元ソースプログラムを第一中間データに変換する際のデータ構成を示す図である。 本発明の実施の形態にかかる第二中間データのデータ構成を示す図である。 本発明の実施の形態にかかる第二中間データを第二のソースプログラムに変換する際のデータ構成を示す図である。 本発明の実施の形態にかかるプログラミング言語変換処理のフローチャートである。 本発明の実施の形態にかかるRPGからJava(登録商標)へのプログラミング言語変換の変換例を示す図である。 本発明の実施の形態にかかるRPGからJava(登録商標)へのプログラミング言語変換の変換例を示す図である。
(第1の実施形態)
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本発明の実施の形態にかかるプログラミング言語変換装置の構成を示すブロック図である。図示するように、プログラミング言語変換装置1は、制御部11、RAM(Random Access Memory)12、ハードディスク・ドライブ(HDD)13、インターフェイス部14、及び、データベース15からなり、それぞれ内部バスにより接続されている。
制御部11は、CPU(Central Processing Unit)やROM(Read Only Memory)から構成される。制御部11は、HDD13に格納されたプログラムを実行し、プログラミング言語変換装置1の制御を行なう。RAM12は、制御部11のワークエリアである。HDD13は、プログラムやデータを保存するための記憶領域である。プログラミング言語変換に必要なプログラムやデータは、HDD13やデータベース15から読み出され、RAM12にロードされる。
制御部11は、プログラミング言語変換の進行に必要なプログラム及びデータをRAM12から読み出して処理を行なう。制御部11は、RAM12にロードされたプログラム及びデータを処理することで、処理結果である中間データや、最終出力であるソースプログラムをHDD13に記録する。
インターフェイス部14には、表示装置21及び入力部23(例えば、マウスやキーボード等)が接続されている。制御部11は、データ処理過程において、本願発明のプログラミング言語変換装置1の利用者(以下、利用者と略す)が確認すべき情報や、処理の終了を知らせる情報などを、インターフェイス部14に接続された表示装置21の表示画面22に表示する。利用者は、この表示画面22の表示を参照して、入力部23からプログラミング言語変換処理に関する指示を入力することができる。利用者による入力部23からの入力情報はRAM12に格納され、制御部11は入力情報をもとに各種のプログラミング言語変換処理を実行する。
データベース15には、プログラミング言語変換に必要なデータ16が予め記憶されている。データベース15に記憶されているデータ16には、プログラムパターン16a、モジュール16b、対応関係情報16c、プログラム命令置換情報16d、モジュール説明情報16e、プログラム命令説明情報16f、及び、モジュール作成情報16gが含まれる。プログラムパターン16aは、変換元のプログラミング言語で記述されたプログラムの構文に関する情報である。モジュール16bは、変換先のプログラミング言語で記述された所定の機能を担う機能単位のプログラムである。対応関係情報16cは、各プログラムパターン16aをどのモジュール16bを用いて置き換えるかの対応関係に関する情報である。プログラム命令置換情報16dは、変換元のプログラム命令を変換先のプログラム命令に置き換えるための対応情報である。モジュール説明情報16eは、モジュール16bの機能を説明する情報である。プログラム命令説明情報16fは、変換元のプログラム制御記述部のプログラム命令の内容を説明する情報である。モジュール作成情報16gは、第一のソースプログラムがデータベースを参照する場合に、参照するデータベースを構成する物理ファイルや論理ファイルに含まれるキーファイルに対応するモジュール16bを作成するための対応情報に関する情報である。これらの予め記憶されているデータ16は、必要に応じて、HDD13に一時記憶されたり、さらにRAM12にロードされたりして、制御部11によるプログラミング言語変換処理に用いられる。
次に、本発明の概要について、説明をする。本発明は、非オブジェクト指向型プログラミング言語によって記述されたソースプログラムを、オブジェクト指向プログラミング言語によって記述されたソースプログラムに変換する、プログラミング言語変換装置に関するものである。非オブジェクト指向型プログラミング言語としては、例えば、BASIC、C言語、COBOL、FORTRAN、Mathematica(登録商標)、Pascal、PHP、RPG、Visual Basic(登録商標)などの手続き型プログラミング言語、Haskell、LISP、Scheme、ML、Scalaなどの関数型プログラミング言語、Prolog、Popler、PARLOG、GHCなどの論理型プログラミング言語等が挙げられる。また、オブジェクト指向プログラミング言語としては、例えば、Simura、Smalltalk(登録商標)、C++(登録商標)、Objective−C(登録商標)、Eiffel、Self、CLOS、Python、Ruby、Perl、Java(登録商標)、JavaScript(登録商標)等が挙げられる。
本発明においては、RPG等の手続き型プログラミング言語で記述されたソースプログラムを、オブジェクト指向プログラミング言語で記述されたソースプログラムに変換することが好ましい。また、現在はオブジェクト指向言語に分類されるプログラミング言語やマルチパラダイムプログラミング言語等で記述されたソースプログラムであっても、手続き型プログラミング言語の記述方法に則って記述されたソースプログラム、例えば、2002年版以前のCOBOLで記述されたソースプログラム等であれば、本発明のプログラミング言語変換装置は、ソースプログラム全体の構造をオブジェクト指向型に変換することができるため、好適に用いることができる。また、例えば、COBOL等の場合において、プログラムの仕様やバージョンの異なるCOBOL間でソースプログラムを変換するといった、同じ言語間でのソースプログラム変換にも、本発明を好適に用いることができる。また、オブジェクト指向型プログラミング言語の考え方を用いて、ソースプログラムの構造を整理できるという観点から見れば、本発明のプログラミング言語変換は、手続き型プログラミング言語からオブジェクト指向プログラミング言語に限られるものではなく、例えば、同じ手続き型プログラミング言語に属する異なる言語間の言語変換や、同じオブジェクト指向プログラミング言語に属する異なる言語間の言語変換、またオブジェクト指向プログラミング言語から手続き型プログラミング言語への変換などにも好適に用いることができる。
本発明のプログラミング言語変換においては、まず変換元のソースプログラムを、プログラム制御記述部とビジネスロジック記述部とに分離する。図2は、本発明における、変換元のソースプログラムをプログラム記述部とビジネスロジック記述部とに分離する方法についての図である。ここでは、変換元のソースプログラムとして、手続き型プログラミング言語で記述されたソースプログラムを例に挙げ、説明するが、本発明はこれに限定されるものではなく、変換元のソースプログラムとしては、ソースプログラムをプログラム記述部とビジネスロジック記述部とに分離することのできるものであれば、手続き型プログラミング言語以外の他の言語で記述されたソースプログラムであっても良い。
手続き型プログラミング言語で記述された変換元のソースプログラムには、図2(a)のように、プログラム命令から構成される処理が一連のプロセスとして記述されている。この一連のプロセスにおいては、画面表示、画面遷移、入力受付、入力待ちなどのプログラム制御記述部と、内部演算処理を構成するビジネスロジック記述部とが交互に記述されている。プログラム制御記述部とビジネスロジック記述部とは、プログラムのユーザーによる入力イベント、例えば、Enterキーの押下やマウスによる「実行」ボタンの押下などのイベントによって、区分することができる。
つまり、入力イベントによるユーザーの演算開始指示後の内部演算処理が行われるプログラム部分が、ビジネスロジック記述部に相当する。一方、内部演算処理が終了した後から次の内部演算処理開始の指示を待つ入力待ち状態までのプログラム部分が、プログラム制御記述部に相当する。このように、変換元のソースプログラムを、入力イベントをキーにして、プログラム制御記述部とビジネスロジック記述部とに分離することができる。変換元のソースプログラムを、プログラム制御記述部とビジネスロジック記述部とに分離したデータが、第一中間データとして生成され、RAM12やHDD13に一時記憶される。
図2(b)は、このようにして生成された第一中間データの構造を例示した図である。第一中間データは、変換元のソースプログラムのプログラム制御記述部とビジネスロジック記述部とを分離して保持しているデータであれば良く、例えば、CSV形式、TSV形式などの表計算ソフトで用いられるデータ形式等で、プログラム制御記述部とビジネスロジック記述部とを異なるコラムに分離して記載したものであれば良く、またプログラム制御記述部とビジネスロジック記述部とが別々のファイルとして分離されていても良い。特に図示はしないが、この分離された第一中間データのプログラム制御記述部とビジネスロジック記述部とには、それぞれ分離される前の変換元プログラムソースの記述上の位置に関する情報が記述されており、後述するモジュールとプログラム制御記述部との再結合は、この情報をもとにして実行される。
この第一中間データが生成された時点で、後述するオブジェクト化を行う前に、オブジェクト化のための指定データを第一中間データに追記するようにしても良い。このオブジェクト化のための指定データとは、例えば、前もって、モジュールに入出力されるパラメータ設定などを、利用者が入力して修正するものである。この指定データの追記により、後述するオブジェクト化をよりスムーズに進めることができる。
なお、特に図示しないが、この第一中間データの生成にあたっては、ソースプログラムの参照するデータベースの新旧対応も完了する。ソースプログラムがデータベースを参照する場合に、変換元のソースプログラムが参照するデータベースファイルと、変換先のソースプログラムが参照するデータベースファイルとが異なる場合、例えば、変換元のソースプログラムが参照するデータベースファイルが、いくつかのデータベースファイルに分割され、分割されたそれらのデータベースファイルを変換先のソースプログラムが参照するような場合がある。このような場合、特に図示しないが、データベース15には新旧データベースファイルの対応テーブルが予め記憶されており、この対応テーブルを参照して該当部分のソースプログラム内の記述を変更することにより、データベースの新旧対応が完了した形で、第一中間データは生成される。
次に、生成された第一中間データについて、分離されたビジネスロジック記述部のみを、変換先のオブジェクト指向プログラミング言語で記述されたモジュールに置き換えるオブジェクト化を行う。図2(b)で示された第一中間データは、まず、分離されているビジネスロジック記述部を変換先のプログラミング言語で記述されたモジュール16bから選択された選択モジュールで置き換えるオブジェクト化が行われる。この選択モジュールへの置き換えであるオブジェクト化は、後述するように、予めデータベース15に記憶されている情報を基に、パターン認識を用いて、変換元のプログラミング言語で記述されたプログラムパターン16aを、変換先のプログラミング言語で記述されたモジュール16bから選択された選択モジュールで置き換える方法で行われる。パターン認識を用いたプログラムパターンのモジュールへの置き換えは、例えば、変換前のプログラムを一行ずつ読み込んでRAM12に記憶し、読み込まれた一行のプログラム記述をプログラムパターン16aと照合して一致度を点数化し、最も一致度の高いプログラムパターンを特定して、これに対応するモジュール16bを対応関係情報16cから検索して選択し、選択された選択モジュールを用いて、プログラムパターン16aを置き換える方法などを用いることができる。
オブジェクト化に必要なデータは、予め用意され、データベースに記憶されている。このオブジェクト化に必要なデータには、変換元のプログラミング言語におけるプログラムの構文に関するプログラムパターン16a、変換元のプログラムパターンに対応して変換先で同じ処理を行うモジュールであってオブジェクト指向プログラミング言語で記述されているモジュール16b、及び、記憶されたプログラムパターンとモジュールとの対応関係に関する情報である対応関係情報16cが含まれる。
ビジネスロジック記述部のプログラムパターンがモジュール16bから選択された選択モジュールによって置き換えられて変換されたデータについて、分離されていたプログラム制御記述部とオブジェクト化されたビジネスロジック記述部とを再結合させて、図3に示されるような第二中間データが生成される。この第二中間データにおいては、プログラム制御記述部はまだ言語変換されていない。
図4は、この第二中間データを第二のソースプログラムに変換する過程を示す図である。変換元のプログラミング言語で記述されたプログラム命令によって構成されているこの第二中間データのプログラム制御記述部について、変換先のプログラミング言語で記述されたプログラム命令を用いて置き換えを行うことで、プログラム全体が変換先のプログラミング言語で記述されたソースプログラムである、第二のソースプログラムへの変換が行われる。この置き換えは、第一のプログラミング言語のプログラム命令を、第二のプログラミング言語のプログラム命令に置き換える対応関係に関するプログラム命令置換情報16dを、予めデータベース15に記憶しておき、この情報を参照して、上述したプログラムパターンのモジュールへの置き換えのような、パターン認識を用いた置き換え方法等の方法によって実行される。ここで生成された第二のソースプログラムは、HDD13に記憶される。また、変換完了メッセージが表示装置21の表示画面22に表示される。
次に、本発明のプログラミング言語変換方法について、図を参照しつつ説明する。図5は、本発明のプログラミング言語変換方法に関するフローチャート図である。
まず、第一のプログラミング言語で記述されたソースプログラムである、第一のソースプログラムが入力部23から入力される(ステップS11)。入力された第一のソースプログラムは、HDD13に記憶され、必要に応じてソースプログラムの一部又は全部がRAM12にロードされ、制御部11によって演算処理が行われる。
次に、制御部11は、入力された第一のソースプログラムについて、プログラム構造を解析する。この解析により、入力イベントや画面遷移などをキーとして、プログラム制御記述部とビジネスロジック記述部との境界を検出し、上述した方法により、第一のソースプログラムを、プログラム制御記述部とビジネスロジック記述部とに分離したデータである第一中間データに変換する(ステップS12)。第一中間データは、HDD13に一時記憶される。
次に、制御部11は、データベース15に記憶されたプログラムパターン16a、モジュール16b、及び、対応関係情報16cを参照して、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュール16bを選択する(ステップS13)。
次に、制御部11は、選択された選択モジュールを用いて、第一中間データのビジネスロジック記述部のプログラムパターンを、対応する選択モジュールに置き換える(オブジェクト化)。この選択モジュールへの置き換えにより、プログラムの全体構造がオブジェクト化される。そして、制御部11は、オブジェクト化されたビジネスロジック記述部と、オブジェクト化されていないプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換する(ステップS14)。再結合の方法は、第一中間データへの変換時に、プログラム制御記述部とビジネスロジック記述部とのそれぞれに記述された、分離される前の変換元プログラムソースの記述上の位置に関する情報を参照し、元の位置関係を維持するようにして、再結合が実行される。この再結合により、図2(b)のような構造であった第一中間データは、図3のような構造の第二中間データに変換される。第二中間データは、HDD13に記憶される。
次に、制御部11は、第二中間データのプログラム制御記述部を、第二のプログラミング言語のプログラム命令で置き換える(ステップS15)。このステップで、第二中間データは全体が第二のプログラミング言語で記述された状態となる。この置き換えは、上述したステップS14と同様に、第一のプログラミング言語のプログラム命令を、第二のプログラミング言語のプログラム命令に置き換える対応関係に関するプログラム命令置換情報16dを、予めデータベース15に記憶しておき、この情報を参照して実行される。
次に、ステップS15で生成された、第二のプログラミング言語で記述された第二中間データについて、制御部11のROMに予め記憶された構文チェックツールを用いて、第二中間データの構文チェックを実行し(ステップS16)、コンパイルエラーの有無を判定する(ステップS17)。この構文チェックは、変数を比較、移動する際に、変数同士の型が同じであるかどうか、変数が存在するものであるかどうか、他のモジュール16bを実行する際に、実行するモジュール16bが受け取るパラメータと、実行を指定した部品が指示するパラメータとに差がないかどうか、モジュール16b内で参照されている変数が宣言されているかどうか等といった項目をチェックすることで行われる。構文チェックにより、コンパイルエラーが検出された場合には、第二中間データの形式で記述されたチェックリストが出力される(ステップS18)。第二中間データの形式とは、例えば、変換元のプログラミング言語と変換先のプログラミング言語との中間言語などであって、出力されたチェックリストが、変換元のプログラミング言語を知る技術者によりチェックできるものであることが好ましい。このチェックリストを参照して、制御部11のROMに予め記憶されたコンパイルエラー修正ツールを用いて、検出されたコンパイルエラーに該当する第二中間データの記述部分が修正される(ステップS19)。これらの構文チェックツールやコンパイルエラー修正ツールとしては、一般によく知られているものを用いることもでき、例えば、第二のプログラミング言語がJavaである場合には、Eclipse(登録商標)などの統合開発環境ツールを用いることもできる。
第二中間データについて、ステップS17の構文チェックによりコンパイルエラーが検出されない場合には、制御部11は、第二中間データを第二のソースプログラムに変換する(ステップS20)。得られた第二のソースプログラムはHDD13に記憶され、表示装置21の表示画面22には、プログラミング言語変換処理が完了した旨のメッセージが表示される。
次に、本発明のプログラミング言語変換装置によって生成される、第二のソースプログラムの仕様に関する仕様データの生成に関して説明する。データベース15には、モジュールの機能に関するモジュール説明情報16eと、変換元のプログラミング言語で記述されているプログラム制御記述部のプログラム命令に関するプログラム命令説明情報16fとが、予め記憶されている。本発明のプログラミング言語変換装置による変換の過程で生成された第二中間データは、変換先のプログラミング言語で記述されたモジュール16bから選択された選択モジュールと、変換元のプログラミング言語で記述されたプログラム制御記述部とが含まれ、図3のような構造を有している。制御部11は、この第二中間データの選択モジュールを、モジュール説明情報16eに置き換える。また、制御部11は、この第二中間データのプログラム制御記述部のプログラム命令を、プログラム命令説明情報16fに置き換える。これらの置き換えによって、第二中間データは、プログラム全体の構造を保ったまま、プログラムを構成するモジュールの機能に関する情報とプログラム制御を行うプログラム命令に関する情報とからなる、第二のソースプログラムの仕様に関する仕様データに変換される。この仕様データから、技術者は、第二のソースプログラムのプログラム構造や機能などといった仕様に関する資料である仕様書や、各業務機能のオブジェクト構造図などを容易に作成することができる。また、予め仕様書に関するフォーマットを決めておき、そのフォーマットに関する情報をデータベース15に記憶させておき、そのフォーマットに仕様データを整形することで、仕様書や各業務機能のオブジェクト構造図そのものを自動生成することもできる。
なお、本実施形態においては、本発明のプログラミング言語変換装置に入力されるデータの例として、第一のソースプログラムを挙げて説明したが、本発明はこれに限定されることはなく、例えば、技術者が予め第一のソースプログラムを、プログラム制御記述部とビジネスロジック記述部とに手動で分離したデータである、第一のソースコードデータ(上記の「第一中間データ」に相当する)を入力するようにして、この第一のソースコードデータを第二のソースプログラムに変換する目的にも、好適に用いることができる。また、第一のプログラミング言語で記述されたプログラム制御記述部と、第二のソースプログラムを構成するモジュールによりオブジェクト化されたビジネスロジック部とからなるデータである、ソースコードデータ(上記の「第二中間データ」に相当する)を、本発明のプログラミング言語変換装置を用いて初めから入力するようにして、このソースコードデータを第二のソースプログラムに変換する目的で用いることもできる。本発明はこれらのような構成を取ることで、複雑なソースプログラムや長大なソースプログラム、元のソースプログラムからの変更の多いソースプログラム等の作成を容易にすることが可能となる。特に、第一のプログラミング言語には精通していても、第二のプログラミング言語を扱えない技術者であっても、本発明のプログラミング言語変換装置を用いることで、第二のプログラミング言語で記述された第二のソースプログラムを容易に作成することが可能となる。
次に、本発明におけるプログラミング言語変換の例について、図を参照しつつ説明する。図6は、第一のプログラミング言語がRPGであり、第二のプログラミング言語がJavaである場合に、RPGで記述された「MOVE」命令のプログラミング言語変換について説明する図である。
変換前のソースプログラムにおける記述、すなわち、第一中間データ、又は、第一のソースコードデータにおける記述は、図6(a)のように、RPGによって「MOVE ‘A99’ RETURNCODE」となっている。この記述は、プログラム命令61(「MOVE」)、定数である左辺62(「‘A99’」)、変数である右辺63(「RETURNCODE」)から構成されている。
制御部11は、第一中間データを第二中間データに変換する、又は、第一のソースコードデータを第二ソースコードデータに変換する処理を行う。第一中間データ及び第一のソースコードデータは、第一のプログラミング言語で記述されているが、この制御部11の変換処理によって、図6(b)に示すように、RPGとJavaの中間言語のような表現によって「FIELD SET ‘A99’ MOVE→ this.RETURNCODE」という記述からなるデータに変換される。このデータは、処理コマンド64(「FIELD SET」)、左辺62、右辺66(「this.RETURNCODE」)、演算子65(「MOVE→」)から構成される。右辺66には、変数「RETURNCODE」が、この変換処理によってオブジェクト化され置き換えられた部品(選択モジュール)である「この部品」に属していることが記憶されている。処理コマンド64の「FIELD SET」は、左辺62から右辺66への変数の移動を意味している。また、演算子65(「MOVE→」)は、左辺62から右辺66への単純移動を意味している。
この記述に基づき、制御部11は、予めデータベース15に記憶しているプログラム命令変換情報16dを参照し、この情報に基づいて、プログラム命令の変換を行う。この例においては、図6(b)に示された記述を、図6(c)に示されるようなJavaでの記述に変換する。Javaにおいては、左辺62と右辺66が逆になるというルールが予めプログラム命令変換情報16dに記憶されている。次に、左辺62と右辺66の変数型が調べられ、型に最適なソースが構築される。この例においては、左辺62と右辺66とは共にアクセサを使用していない変数であるので、Javaソースは、図6(c)に示すように「returncodeResultBean = “A99”」となる。なお、変数は、Javaのルールに従うように成形される、すなわち、この例においては、アンダースコア区切りをキャメルケース表記とし、変数情報により変数名称に特定の文字を付加するというルールが予め記憶されている。このルールにより、図6(b)の右辺66(「this.RETURNCODE」)は、図6(c)の左辺67(「returncodeResultBean」)に成形され、図6(b)の左辺62(‘A99’)は、図6(c)の右辺68(「“A99”」)に成形される。
次に、本発明におけるプログラミング言語変換の別の例について、図を参照しつつ説明する。図7は、第一のプログラミング言語がRPGであり、第二のプログラミング言語がJavaである場合に、RPGで記述された「ADD」命令のプログラミング言語変換について説明する図である。
変換前のソースプログラムにおける記述、すなわち、第一中間データ、又は、第一のソースコードデータにおける記述は、図7(a)のように、RPGによって「ADD 1 FLD01」となっている。この記述は、プログラム命令71(「ADD」)、左辺72(「1」)、右辺73(「FLD01」)から構成されている。
制御部11は、第一中間データを第二中間データに変換する、又は、第一のソースコードデータを第二ソースコードデータに変換する処理を行う。この制御部11の変換処理によって、図7(b)に示すように、RPGとJavaの中間言語のような表現によって「FIELD SET this.FILE01.FLD01 ADD(加算) 1」という記述からなるデータに変換される。このデータは、処理コマンド74(「FIELD SET」)、左辺76(「this.FILE01.FLD01」)、右辺77、演算子75(「ADD(加算)」)から構成される。左辺76には、変数「FLD01」が、この変換処理によってオブジェクト化され置き換えられた部品(選択モジュール)である「この部品」に属しているエンティティ「FILE01」に属していることが記憶されている。処理コマンド74の「FIELD SET」は、左辺76から右辺77への変数の移動を意味している。また、演算子75(「ADD(加算)」)は、移動方法を意味しており、ここでは移動先を変更し、左辺76へ左辺76の値に右辺77の値を加算した値を移動することを意味している。
この記述に基づき、制御部11は、予めデータベース15に記憶しているプログラム命令変換情報16dを参照し、この情報に基づいて、プログラム命令の変換を行う。この例においては、図7(b)に示された記述を、図7(c)に示されるようなJavaでの記述に変換する。この例においては、値を取り出す変数と値を移動する変数が同一で、Entity変数であるので、アクセサが設定される。従って、変数にアクセサが設定され、移動方法に演算子75で指定した四則演算を行うことで、図7(c)に示すようなJavaでの記述に変換する。この変換においては、左辺76と右辺77の変数型が調べられ、右辺77の定数の型に合わせた変数の型変換が行われる。この例においては、右辺77の定数「1」に合わせた型は、BigDecimal型であるので、「BigDecimal.valueOf」を用いた型変換78が行われ、Javaソースは、図7(c)に示すように「file01.setFld01(file01.getFld01().add( BigDecimal.valueOf(1)));」となる。
(第2の実施形態)
本発明の第2の実施形態として、System i上で実行される、RPGで記述されたデータベース管理システムを、Javaで記述されたオブジェクト指向型のシステムに変換する例について、説明する。
System i上で実行されるデータベース管理システムは、RPGで記述されたプログラムソース、ディスプレイファイル(DSPF)やプリンターファイル(PRTF)といったファイル、CLプログラム、及び、データベースなどから構成されている。本発明のプログラミング言語変換装置は、これらシステムを構成する要素を解析して、MVCモデル(Modelオブジェクト部・Viewオブジェクト部・Controlオブジェクト部)とData Access Object(以下、DAOと称する)からなる4つのオブジェクト部に分割する。
MVCモデルに基づいた、各オブジェクト部への分割について説明する。RPGで記述されたプログラムソースの内部処理、すなわちビジネスロジック記述部は、MVCモデルのModelオブジェクト部として分割される。DSPFやPRTFといった、表示や出力に関するファイルは、MVCモデルのViewオブジェクト部として分割される。プログラムソースの画面制御に関するプログラム制御記述部と、CLプログラム等の画面制御ロジックとは、MVCモデルのControlオブジェクト部として分割される。また、プログラムソースが参照するデータベースに関するファイルは、DAO(基底部品)として再定義される。
まず、DAOの生成について説明する。本発明のプログラミング言語変換装置には、System iで作成された、データベースを構成するファイルである物理ファイルや論理ファイルが入力される。物理ファイルとは、実際にデータレコードを格納しているデータベースファイルである。一方、論理ファイルとは、1又は複数の物理ファイルに格納されているデータレコードを、RPGで記述されたプログラムに渡す方法を記述したファイルであり、例えば、VSAMでのインデックス又は代替インデックスに相当するものである。入力されたデータベースに関するファイルは、制御部11により解析され、DAO(基底部品)として再定義される。
この再定義とは、以下のようなものである。データベース15には、物理ファイルや論理ファイルに含まれるキーファイルに対応するモジュール16bと、キーファイルからモジュールを作成する対応関係に関する情報であるモジュール作成情報16gとが、予め記憶されている。制御部11は、入力された物理ファイルや論理ファイルに含まれるキーファイルを特定し、記憶されているこのモジュール作成情報16gを参照して、キーファイルそれぞれに対応するモジュール16bを用いて、DAO(基底部品)であるモジュールをキーファイル毎に作成する。ここで作成されたモジュールは、S2JDBCのエンティティやサービスクラスを内包したData Access Objectクラスで構成される。再定義された基底部品は、本発明によりJavaに変換されたシステムから使用することが可能であり、後述するModelオブジェクト部を構成するモジュールとして利用することができる。
次に、Viewオブジェクト部の生成について説明する。本発明のプログラミング言語変換装置には、表示装置への表示レイアウトに関するファイルであるDSPFやPRTFが入力される。制御部11は、入力されたこれらのファイルを解析し、レイアウトデータが構築される。このレイアウトデータは、例えば、HTMLなどのデータであり、レコード様式の単位で作成されるため、レコード様式を組み合わせることで、webページの表示レイアウトを作成し、画面ファイルを作成することができる。
次に、Controlオブジェクト部の生成について説明する。本発明のプログラミング言語変換装置には、プログラムソースと、CLプログラム等が入力され、これらを制御部11が解析し、プログラムソースの画面制御に関するプログラム制御記述部と、画面制御ロジックとからなるControlオブジェクト部が生成される。Controlオブジェクト部は、Viewオブジェクト部により作成された画面ファイルについて、イベントが登録され、そのイベントに対する制御ロジックが登録されている。本発明のプログラミング言語変換装置は、この制御ロジックを、上述したようなプログラム命令の置き換えによって、Javaのソースに変換する。Javaへの変換により、このControlオブジェクト部は、JSP(JavaServer Pages)ファイル、ActionForm、ActionClass、DTO(Data Transfer Object)からなるものとなる。
次に、Modelオブジェクト部の生成について説明する。本発明のプログラミング言語変換装置には、RPGで記述されたプログラムソースが入力される。制御部11は、上述したような方法でこれを解析し、ビジネスロジック記述部を分離し、予め用意されているJavaで記述されたモジュールに置き換え、Modelオブジェクト部を生成する。このModelオブジェクト部からは、上述した再定義によって作成されたモジュールも利用することができる。
本発明のプログラミング言語変換装置は、非オブジェクト指向プログラミング言語で記述されたソースプログラムについて、プログラムの全体構造をオブジェクト指向型に変換し、オブジェクト指向プログラミング言語で記述されたソースプログラムに変換することができる。そのため、単にプログラム命令を逐語変換するようなプログラミング言語変換とは異なり、拡張性・可読性・保守性・再利用性の向上等といった、オブジェクト指向プログラミングを用いることによる利点を十分に享受することができる。
また、本発明のプログラミング言語変換装置によれば、非オブジェクト指向プログラミング言語で記述された、既存のシステムやデータベースといった資産を、オブジェクト指向プログラミング言語に書き換えて、新しいハードウェア環境であっても活用することができる。また、オブジェクト指向プログラミング言語への言語変換を大幅に省力化することができるため、例えば、手続き型プログラミング言語を専門に取り扱ってきた技術者であっても、容易にオブジェクト指向型のシステムを構築することができる。
また、本発明のプログラミング言語変換装置によれば、システム全体がオブジェクト指向型に変換されるため、仕様書や各業務機能のオブジェクト構造図などのプログラム仕様に関するデータを容易に生成することもできる。
1 プログラミング言語変換装置
11 制御部
12 RAM
13 HDD
14 インターフェイス部
15 データベース
21 表示装置
22 表示画面
23 入力部

Claims (12)

  1. 第一のプログラミング言語により記述された第一のソースプログラムを、第二のプログラミング言語により記述された第二のソースプログラムに変換する、プログラミング言語変換装置であって、
    第一のソースプログラムの入力を受け付ける第一ソースプログラム入力受付手段と、
    第一のソースプログラムを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶した対応関係情報記憶手段と、
    第一ソースプログラム入力受付手段により受け付けられた第一のソースプログラムの構造を解析し、第一のソースプログラムをプログラム制御記述部とビジネスロジック記述部とに分離した第一中間データに変換する第一変換手段と、
    対応関係情報記憶手段に記憶された対応関係情報に基づいて、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するモジュール選択手段と、
    モジュール選択手段により選択された選択モジュールを用いて、第一中間データの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換する第二変換手段と、
    第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えるためのプログラム命令の対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、
    第二変換手段により生成された第二中間データについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二中間データを第二のソースプログラムに変換する第三変換手段
    とを備えることを特徴とするプログラミング言語変換装置。
  2. 第三変換手段により変換された第二のソースプログラムに対して、第二のプログラミング言語における構文チェックを行うとともに、第二のソースプログラムをコンパイルして、コンパイルエラーが発生するか否かを検出するコンパイルエラー検出手段とを備え、
    コンパイルエラー検出手段により検出されたコンパイルエラーの原因となる第二中間データの記述を修正した後に、修正した第二中間データを第三変換手段が第二のソースプログラムに変換する
    ことを特徴とする請求項1に記載のプログラミング言語変換装置。
  3. 第二のプログラミング言語がオブジェクト指向プログラミング言語である請求項1又は2に記載のプログラミング言語変換装置。
  4. 第一のプログラミング言語が手続き型プログラミング言語である請求項1〜3のいずれかに記載のプログラミング言語変換装置。
  5. モジュールの機能を説明する情報であるモジュール説明情報と、プログラム制御記述部のプログラム命令を説明する情報であるプログラム命令説明情報とを予め記憶した仕様データ変換情報記憶手段と、
    第二中間データを構成するモジュールを、仕様データ変換情報記憶手段に記憶されたモジュール説明情報に置き換え、第二中間データを構成するプログラム制御記述部のプログラム命令を、仕様データ変換情報記憶手段に記憶されたプログラム命令説明情報に置き換えることにより、第二中間データを第二のソースプログラムの仕様に関する仕様データに変換する第四変換手段
    とを備えることを特徴とする請求項1〜4のいずれかに記載のプログラミング言語変換装置。
  6. 第一変換手段により生成される第一中間データが、MVCモデルに基づいて、
    ビジネスロジック記述部からなるModelオブジェクト部と、
    プログラム制御記述部からなるControlオブジェクト部
    とに分離されたものであることを特徴とする請求項1〜5のいずれかに記載のプログラミング言語変換装置。
  7. 第一のソースプログラムがデータベースを参照する場合に、第一のソースプログラムが参照するデータベースを構成する物理ファイル及び論理ファイルの入力を受け付けるデータベースファイル受付手段と、
    物理ファイル及び論理ファイルに含まれるキーファイルに対応するモジュールと、キーファイルからモジュールを作成する対応関係に関する情報であるモジュール作成情報とを予め記憶したモジュール作成情報記憶手段とを備え、
    モジュール作成情報記憶手段に記憶されたモジュール作成情報に基づいて、データベースファイル受付手段により入力された物理ファイル及び論理ファイルについて、物理ファイル及び論理ファイルに含まれるキーファイル毎にモジュールを作成する
    ことを特徴とする請求項1〜6のいずれかに記載のプログラミング言語変換装置。
  8. 第一のプログラミング言語により記述された第一のソースプログラムを、第二のプログラミング言語により記述された第二のソースプログラムに変換する、プログラミング言語変換をコンピュータ装置において実行する方法であって、
    第一のソースプログラムの入力を受け付けるステップと、
    受け付けられた第一のソースプログラムの構造を解析し、第一のソースプログラムをプログラム制御記述部とビジネスロジック記述部とに分離した第一中間データに変換するステップと、
    第一のソースプログラムを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶手段に記憶しておき、記憶されていた対応関係情報に基づいて、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するステップと、
    選択された選択モジュールを用いて、第一中間データの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換するステップと、
    第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えるためのプログラム命令の対応関係に関するプログラム命令置換情報を予め記憶手段に記憶しておき、記憶されていたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二中間データを第二のソースプログラムに変換するステップ
    とを有するプログラミング言語変換方法。
  9. 第一のプログラミング言語により記述された第一のソースプログラムを、第二のプログラミング言語により記述された第二のソースプログラムに変換する、プログラミング言語変換をコンピュータ装置に実行させるプログラムであって、
    コンピュータ装置を、
    第一のソースプログラムの入力を受け付ける第一ソースプログラム入力受付手段と、
    第一のソースプログラムを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶した対応関係情報記憶手段と、
    第一ソースプログラム入力受付手段により受け付けられた第一のソースプログラムの構造を解析し、第一のソースプログラムをプログラム制御記述部とビジネスロジック記述部とに分離した第一中間データに変換する第一変換手段と、
    対応関係情報記憶手段に記憶された対応関係情報に基づいて、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するモジュール選択手段と、
    モジュール選択手段により選択された選択モジュールを用いて、第一中間データの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換する第二変換手段と、
    第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換える対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、
    第二変換手段により生成された第二中間データについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二中間データを第二のソースプログラムに変換する第三変換手段
    として機能させる、プログラミング言語変換プログラム。
  10. 第一のプログラミング言語により記述された第一のソースプログラムを、第二のプログラミング言語により記述された第二のソースプログラムに変換する、プログラミング言語変換をコンピュータ装置に実行させるプログラムを記録した記録媒体であって、
    コンピュータ装置を、
    第一のソースプログラムの入力を受け付ける第一ソースプログラム入力受付手段と、
    第一のソースプログラムを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶した対応関係情報記憶手段と、
    第一ソースプログラム入力受付手段により受け付けられた第一のソースプログラムの構造を解析し、第一のソースプログラムをプログラム制御記述部とビジネスロジック記述部とに分離した第一中間データに変換する第一変換手段と、
    対応関係情報記憶手段に記憶された対応関係情報に基づいて、第一中間データのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するモジュール選択手段と、
    モジュール選択手段により選択された選択モジュールを用いて、第一中間データの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一中間データを第二中間データに変換する第二変換手段と、
    第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換える対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、
    第二変換手段により生成された第二中間データについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二中間データを第二のソースプログラムに変換する第三変換手段
    として機能させるプログラムを記録した記録媒体。
  11. 第一のプログラミング言語により記述された第一のソースコードデータを、第二のプログラミング言語により記述され、且つ、動作が可能な第二のソースプログラムに変換する、プログラミング言語変換装置であって、
    第一のソースコードデータが、第一のプログラミング言語により記述され、且つ、動作が可能な第一のソースプログラムを構成するプログラム制御記述部とビジネスロジック記述部を分離したデータ構造を有するものであり、
    第一のソースコードデータの入力を受け付ける第一ソースコードデータ入力受付手段と、
    第一のソースコードデータを構成するプログラムに関するプログラムパターンと、第二のソースプログラムを構成するモジュールと、プログラムパターンとモジュールとの対応関係に関する対応関係情報とを予め記憶した対応関係情報記憶手段と、
    対応関係情報記憶手段に記憶された対応関係情報に基づいて、第一ソースコードデータ入力受付手段により受け付けられた第一ソースコードデータのビジネスロジック記述部のプログラムパターンに対応するモジュールを選択するモジュール選択手段と、
    モジュール選択手段により選択された選択モジュールを用いて、第一ソースコードデータ入力受付手段により受け付けられた第一ソースコードデータの該ビジネスロジック記述部のプログラムを該選択モジュールに置き換えるオブジェクト化を行い、オブジェクト化されたビジネスロジック記述部とプログラム制御記述部とを再結合させて、第一ソースコードデータを第二ソースコードデータに変換する第二変換手段と、
    第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えるためのプログラム命令の対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、
    第二変換手段により生成された第二ソースコードデータについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、第二ソースコードデータを第二のソースプログラムに変換する第三変換手段
    とを備えることを特徴とするプログラミング言語変換装置。
  12. 第一のプログラミング言語により記述されたソースコードデータを、第二のプログラミング言語により記述され、且つ、動作が可能な第二のソースプログラムに変換する、プログラミング言語変換装置であって、
    ソースコードデータが、第一のプログラミング言語により記述され、且つ、プログラム制御記述部とビジネスロジック記述部から構成されるものであり、さらに、
    ビジネスロジック記述部のプログラムの一部が、モジュールに置き換えられることでオブジェクト化されたものであり、
    ソースコードデータの入力を受け付けるソースコードデータ入力受付手段と、
    第一のプログラミング言語により記述されたプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えるためのプログラム命令の対応関係に関するプログラム命令置換情報を予め記憶したプログラム命令置換情報記憶手段と、
    ソースコードデータ入力受付手段により受け付けられたソースコードデータについて、プログラム命令置換情報記憶手段に記憶されたプログラム命令置換情報に基づいて、第一のプログラミング言語により記述された前記プログラム制御記述部のプログラム命令を、第二のプログラミング言語により記述されたプログラム命令に置き換えて、ソースコードデータを第二のソースプログラムに変換する第三変換手段
    とを備えることを特徴とするプログラミング言語変換装置。
JP2013068751A 2013-03-28 2013-03-28 ソースプログラムのプログラミング言語変換装置 Active JP5405684B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013068751A JP5405684B1 (ja) 2013-03-28 2013-03-28 ソースプログラムのプログラミング言語変換装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013068751A JP5405684B1 (ja) 2013-03-28 2013-03-28 ソースプログラムのプログラミング言語変換装置

Publications (2)

Publication Number Publication Date
JP5405684B1 JP5405684B1 (ja) 2014-02-05
JP2014191738A true JP2014191738A (ja) 2014-10-06

Family

ID=50202584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013068751A Active JP5405684B1 (ja) 2013-03-28 2013-03-28 ソースプログラムのプログラミング言語変換装置

Country Status (1)

Country Link
JP (1) JP5405684B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7126637B1 (ja) * 2022-01-14 2022-08-26 三菱電機株式会社 プログラミング支援プログラム、プログラミング支援方法及びプログラミング支援装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110879710B (zh) * 2019-07-24 2023-07-07 中信银行股份有限公司 一种rpg程序自动转成java程序的方法
CN113010161A (zh) * 2019-12-20 2021-06-22 湖南奥森伯特科技有限公司 视图转换方法、视图转换装置和存储介质
CN111427578B (zh) * 2020-04-15 2023-08-29 赞同科技股份有限公司 一种数据转换方法、装置及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63314645A (ja) * 1987-06-17 1988-12-22 Mitsubishi Electric Corp プログラム言語トランスレ−タ
JP2004118374A (ja) * 2002-09-25 2004-04-15 Keio Gijuku 変換装置及び変換方法及び変換プログラム及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004362343A (ja) * 2003-06-05 2004-12-24 Internatl Business Mach Corp <Ibm> ソースコード変換装置、ソースコード変換方法、およびプログラム
JP2005165584A (ja) * 2003-12-02 2005-06-23 Hitachi Software Eng Co Ltd プログラム作成システム及び方法
JP2007004503A (ja) * 2005-06-24 2007-01-11 Mitsubishi Electric Corp プログラム変換方式およびプログラム変換方法およびコード変換プログラム
JP2011096083A (ja) * 2009-10-30 2011-05-12 Nippon Steel Corp 言語変換装置、言語変換方法およびプログラム
JP2011170556A (ja) * 2010-02-17 2011-09-01 Nec Software Kyushu Ltd ソースプログラム他言語変換支援装置、変換支援方法および変換支援プログラム
JP2013050868A (ja) * 2011-08-31 2013-03-14 Mitsubishi Electric Corp 情報処理装置および情報処理方法およびプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63314645A (ja) * 1987-06-17 1988-12-22 Mitsubishi Electric Corp プログラム言語トランスレ−タ
JP2004118374A (ja) * 2002-09-25 2004-04-15 Keio Gijuku 変換装置及び変換方法及び変換プログラム及び変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2004362343A (ja) * 2003-06-05 2004-12-24 Internatl Business Mach Corp <Ibm> ソースコード変換装置、ソースコード変換方法、およびプログラム
JP2005165584A (ja) * 2003-12-02 2005-06-23 Hitachi Software Eng Co Ltd プログラム作成システム及び方法
JP2007004503A (ja) * 2005-06-24 2007-01-11 Mitsubishi Electric Corp プログラム変換方式およびプログラム変換方法およびコード変換プログラム
JP2011096083A (ja) * 2009-10-30 2011-05-12 Nippon Steel Corp 言語変換装置、言語変換方法およびプログラム
JP2011170556A (ja) * 2010-02-17 2011-09-01 Nec Software Kyushu Ltd ソースプログラム他言語変換支援装置、変換支援方法および変換支援プログラム
JP2013050868A (ja) * 2011-08-31 2013-03-14 Mitsubishi Electric Corp 情報処理装置および情報処理方法およびプログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
WEBSPHERE DEVELOPMENT STUDIO:ILE RPGプログラマーの手引き バージョン, vol. 第1版, JPN6013030245, February 2006 (2006-02-01), JP, pages 189 - 194, ISSN: 0002660124 *
木村茂樹、千田正一、宇田真奈美: "TransMigrationサービス", FUJITSU, vol. Vol.57,No.1(通巻332号), JPN6013030243, 10 January 2006 (2006-01-10), JP, pages 45 - 51, ISSN: 0002660123 *
梶尾義規、魚田勝臣、永田守男: "レガシープログラム変換法の実務プログラムへの適用", 情報処理学会研究報告, vol. 2003, no. 22, JPN6013030239, 6 March 2003 (2003-03-06), JP, pages 47 - 53, ISSN: 0002660122 *
米谷雅樹: "Visual BasicからJ2EE環境への移行支援ツール", 第66回(平成16年)全国大会講演論文集(1), JPN6013030235, 9 March 2004 (2004-03-09), JP, pages 1 - 219, ISSN: 0002561893 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7126637B1 (ja) * 2022-01-14 2022-08-26 三菱電機株式会社 プログラミング支援プログラム、プログラミング支援方法及びプログラミング支援装置
WO2023135735A1 (ja) * 2022-01-14 2023-07-20 三菱電機株式会社 プログラミング支援プログラム、プログラミング支援方法及びプログラミング支援装置

Also Published As

Publication number Publication date
JP5405684B1 (ja) 2014-02-05

Similar Documents

Publication Publication Date Title
JP4667386B2 (ja) 業務モデル図作成支援プログラム、業務モデル図作成支援方法、および業務モデル図作成支援装置
US7624380B2 (en) Generating functional test scripts
Lämmel et al. Semi‐automatic grammar recovery
US10169215B2 (en) Method and system for analyzing test cases for automatically generating optimized business models
JP5005510B2 (ja) ソフトウェアの設計支援方法、設計支援装置及び設計支援プログラム
US20060130002A1 (en) Requirement defining method, method for developing software, and method for changing requirement word, and newly defining method
JP5405684B1 (ja) ソースプログラムのプログラミング言語変換装置
US8145992B2 (en) Validation assisted document conversion design
Strüber et al. Scalability of Model Transformations: Position Paper and Benchmark Set.
JP2830354B2 (ja) 同値データ項目検出方法
WO2010050128A1 (ja) コンパイル方法及びコンパイルプログラム
JP6044960B2 (ja) シリアライザを特化する方法、装置及びコンピュータプログラム
CN104484156A (zh) 多语言公式的编辑方法、编辑系统和多语言公式编辑器
CN110889574A (zh) 用于智能合约的不确定性因素检测装置、方法及介质
JP5702265B2 (ja) プログラム自動生成装置およびプログラム自動生成方法
JP6748357B2 (ja) 解析装置、解析プログラムおよび解析方法
JP2011204069A (ja) テスト方法およびテスト仕様書テストデータ自動生成装置
JP2016042317A (ja) ソフトウェア設計支援装置、および方法
Hlad et al. IsiSPL: Toward an Automated Reactive Approach to build Software Product Lines
JP2019139675A (ja) ソースコード最適化装置、プログラムおよび方法
JP6993284B2 (ja) Webブラウザ間の動作差異情報生成装置及び動作差異情報生成方法
JP5962350B2 (ja) プログラム、情報処理装置およびテスト方法
JP5516277B2 (ja) テストケース関係抽出方法、テストケース関係抽出装置及びテストケース関係抽出プログラム
JPS6284337A (ja) 仕様書情報解析方式
JP4663526B2 (ja) 帳票作成支援装置、帳票作成支援方法、および帳票作成支援プログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131030

R150 Certificate of patent or registration of utility model

Ref document number: 5405684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250