(57)【要約】【課題】単純な予約語の変換では対応できない場合にも変換作業を効率的に行えるよう支援することを可能とするソースプログラム他言語変換支援装置等を提供する。【解決手段】本実施形態に係るプログラム変換支援装置１０は、ユーザに入力された入力文章を一時的に保存する一時記憶手段１４と、変換対応情報２３および文脈パターン情報２４が予め記憶されている固定記憶手段１２と、変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を一時記憶手段に記憶させる一時記憶制御部２１Ａと、入力文章と一致する入力内容が変換対応情報に含まれているか否かを判断する入力内容比較部２１Ｂと、一時記憶手段に記憶されている内容を文脈パターン情報と比較して一致する行数を点数として算出する文脈比較部２１Ｃと、点数が最も高い変換内容を入力文章に対して出力する変換出力部２１Ｄとを有する。【選択図】図１
2011170556.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラミング言語によって記述された変換前ソースプログラムを、第２のプログラミング言語によって記述された変換後ソースプログラムに変換する作業を行うソースプログラム他言語変換支援装置であって、
ユーザによって入力された入力文章を一時的に保存する一時記憶手段と、
前記第１のプログラミング言語による入力内容に対応する前記第２のプログラミング言語による単数または複数の変換内容である変換対応情報および前記複数の変換内容の各々に対応する前記第１のプログラミング言語のパターンである文脈パターン情報が予め記憶されている固定記憶手段と、
前記変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を前記一時記憶手段に記憶させる一時記憶制御部と、
前記入力文章と一致する入力内容が前記変換対応情報に含まれているか否かを判断する入力内容比較部と、
前記入力文章と一致する入力内容が前記変換対応情報に含まれている場合に、前記一時記憶手段に記憶されている内容を前記入力内容に対応する変換内容の各々に対応する前記文脈パターン情報と比較して一致する行数を点数として算出する文脈比較部と、
前記点数が最も高い前記変換内容を前記入力文章に対して出力する変換出力部とを有することを特徴とする変換支援装置。
【請求項２】
前記変換出力部が、前記点数が最も高い前記変換内容と共に、これ以外の前記点数があらかじめ与えられた閾値を超える前記変換内容をその旨を表示するコメント行として同時に出力することを特徴とする、請求項１に記載の変換支援装置。
【請求項３】
前記入力文章と一致する入力内容が前記変換対応情報に記憶されていない場合に、前記変換出力部が前記入力文章をそのままその旨を表示するコメント行として出力することを特徴とする、請求項１に記載の変換支援装置。
【請求項４】
前記一時記憶制御部が、ユーザが入力した前記変換前ソースプログラムの全文を前記一時記憶手段に記憶させ、
前記文脈比較部が前記変換前ソースプログラムの全文を前記文脈パターン情報と比較して一致する行数を点数として算出することを特徴とする、請求項１に記載の変換支援装置。
【請求項５】
ユーザによって入力された入力文章を一時的に保存する一時記憶手段と、第１のプログラミング言語による入力内容に対応する第２のプログラミング言語による単数または複数の変換内容である変換対応情報および前記複数の変換内容の各々に対応する前記第１のプログラミング言語のパターンである文脈パターン情報とを予め記憶している固定記憶手段を備え、前記第１のプログラミング言語によって記述された変換前ソースプログラムを、前記第２のプログラミング言語によって記述された変換後ソースプログラムに変換する作業を行うソースプログラム他言語変換支援装置にあって、
前記変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を一時記憶制御部が前記一時記憶手段に記憶させ、
前記入力文章と一致する入力内容が前記変換対応情報に含まれているか否かを入力内容比較部が判断し、
前記入力文章と一致する入力内容が前記変換対応情報に含まれている場合に、前記一時記憶手段に記憶されている内容を前記入力内容に対応する変換内容の各々に対応する前記文脈パターン情報と比較して一致する行数を文脈比較部が点数として算出し、
前記点数が最も高い前記変換内容を前記入力文章に対して変換出力部が出力することを特徴とする変換支援方法。
【請求項６】
ユーザによって入力された入力文章を一時的に保存する一時記憶手段と、第１のプログラミング言語による入力内容に対応する第２のプログラミング言語による単数または複数の変換内容である変換対応情報および前記複数の変換内容の各々に対応する前記第１のプログラミング言語のパターンである文脈パターン情報とを予め記憶している固定記憶手段を備え、前記第１のプログラミング言語によって記述された変換前ソースプログラムを、前記第２のプログラミング言語によって記述された変換後ソースプログラムに変換する作業を行うソースプログラム他言語変換支援装置にあって、
コンピュータに、
前記変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を前記一時記憶手段に記憶させる手順、
前記入力文章と一致する入力内容が前記変換対応情報に含まれているか否かを判断する手順、
前記入力文章と一致する入力内容が前記変換対応情報に含まれている場合に、前記一時記憶手段に記憶されている内容を前記入力内容に対応する変換内容の各々に対応する前記文脈パターン情報と比較して一致する行数を点数として算出する手順、
および前記点数が最も高い前記変換内容を前記入力文章に対して出力する手順を実行させることを特徴とする変換支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソースプログラム他言語変換支援装置、変換支援方法および変換支援プログラムに関し、特に文脈上一意の変換が困難であるソースプログラムを変換する作業を効率化しうるソースプログラム他言語変換支援装置、変換支援方法および変換支援プログラムに関する。
【背景技術】
【０００２】
コンピュータのハードウェアについての技術と同様に、ソフトウェアについての技術も急速に進歩している。当然、プログラミングに使用される言語も頻繁にバージョンアップを繰り返しているだけでなく、プログラミングそのものの基本的思想も変化してきている。
【０００３】
その中でも特に大きい変化が、処理の流れに沿ってコードを記述していく「手続き型プログラミング言語（たとえばＣ言語、ＣＯＢＯＬ、ＰＡＳＣＡＬ、ＦＯＲＴＲＡＮなど）」から、オブジェクトの振る舞いとしてコードを記述し、そのオブジェクトの組み合わせとしてより大きなプログラムを記述する「オブジェクト指向型プログラミング言語（たとえばＳＭＡＬＬＴＡＬＫ、Ｃ＋＋、ＪＡＶＡ（ＪＡＶＡは登録商標）など）」への変化である。
【０００４】
手続き型と比べてオブジェクト指向型の方が、大規模なプログラムを容易に作成でき、また保守性や再利用性を高めることが可能であるので、現在はオブジェクト指向型のプログラミング言語が主流となっている。
【０００５】
ある言語で記述されたソースプログラムを別の言語に変換する他言語変換について、次のような技術文献がある。その中でも特許文献１には、「必ずしも１対１では対応しないプログラム」について、前方もしくは後方の特徴的な部分を用いて場合分けして変換するというプログラム変換装置が記載されている。特許文献２には、同一の言語間で表現形式の異なるプログラムを、別の表現形式に変換するというプログラムコンバートシステムが記載されている。
【０００６】
特許文献３には、変換前後の「命令パターン情報」に基づいて他言語変換を行うというプログラム解析装置が記載されている。特許文献４には、ある言語で開発中のプログラムを、別の言語でも開発できるようにコードの作成例を表示するというプログラム作成支援装置が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０１−０３１２３３号公報
【特許文献２】特開平０５−３２４３４３号公報
【特許文献３】特開２００４−１８５５０８号公報
【特許文献４】特開２００５−１００１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
たとえば業務上の定型化された処理などで、古いプログラミング言語で作成されたプログラムを、新しいコンピュータ装置で動作させる必要のある場面が多くなっている。そのような場合に、古い手続き型プログラミング言語で作成されたソースプログラムを、新しいオブジェクト指向型プログラミング言語に変換することが必要となる。一つの言語で作成されたソースプログラムを変換装置に入力し、そこから出力された変換後のソースプログラムをそのまま変換先の言語で実行可能であることが最も理想的ではある。
【０００９】
しかしながら、前述の特許文献１に記載された技術は、修正前および修正後のソースプログラムをあらかじめ準備して、修正前と修正後の特徴点を抽出し、その特徴点を利用して他言語変換を行うものである。さらに特許文献２〜４に記載された技術は、各プログラミング言語で定義されている予約語を変換前の予約語を変換後の予約語に単純に置き換えるという方法で他言語変換を行うものである。
【００１０】
これらの技術だと、ソースプログラムが利用する関数群、前提となるソフトウェアの違い、そして手続き型とオブジェクト指向型などのようなプログラミングの基本的思想の違いなどがあるため、変換装置から出力された変換後のソースプログラムをそのまま変換先の言語で実行可能とすることは、事実上ほとんど不可能である。
【００１１】
手続き型からオブジェクト指向型へのプログラミング言語の変換は、単純な予約語の変換では対応できないものであるのに加えて、同じ特徴点を持っていても時と場合に応じて異なる変換を必要とするような場合が多くある。そのような場合、技術者がどのような変換をするかを判断して、適切にソースプログラムを書き換える必要がある。
【００１２】
特許文献１〜４に記載の技術では、変換後のソースプログラムがそのままでは正常に動作しないものであることはもちろん、単純な予約語の変換などによって不適切な変換が行われてしまうので、技術者がこれを書き換えて正常に動作しうるものにする作業で、かえって障害になることが多くある。
【００１３】
本発明の目的は、単純な予約語の変換では対応できない場合にも変換作業を効率的に行えるよう支援することを可能とするソースプログラム他言語変換支援装置、変換支援方法および変換支援プログラムを提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明に係るソースプログラム他言語変換支援装置は、第１のプログラミング言語によって記述された変換前ソースプログラムを、第２のプログラミング言語によって記述された変換後ソースプログラムに変換する作業を行うソースプログラム他言語変換支援装置であって、ユーザによって入力された入力文章を一時的に保存する一時記憶手段と、第１のプログラミング言語による入力内容に対応する第２のプログラミング言語による単数または複数の変換内容である変換対応情報および複数の変換内容の各々に対応する第１のプログラミング言語のパターンである文脈パターン情報が予め記憶されている固定記憶手段と、変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を一時記憶手段に記憶させる一時記憶制御部と、入力文章と一致する入力内容が変換対応情報に含まれているか否かを判断する入力内容比較部と、入力文章と一致する入力内容が変換対応情報に含まれている場合に、一時記憶手段に記憶されている内容を入力内容に対応する変換内容の各々に対応する文脈パターン情報と比較して一致する行数を点数として算出する文脈比較部と、点数が最も高い変換内容を入力文章に対して出力する変換出力部とを有することを特徴とする。
【００１５】
上記目的を達成するため、本発明に係るソースプログラム他言語変換支援方法は、ユーザに入力された入力文章を一時的に保存する一時記憶手段と、第１のプログラミング言語による入力内容に対応する第２のプログラミング言語による単数または複数の変換内容である変換対応情報および複数の変換内容の各々に対応する第１のプログラミング言語のパターンである文脈パターン情報とを予め記憶している固定記憶手段を備え、第１のプログラミング言語によって記述された変換前ソースプログラムを、第２のプログラミング言語によって記述された変換後ソースプログラムに変換する作業を行うソースプログラム他言語変換支援装置にあって、変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を一時記憶制御部が一時記憶手段に記憶させ、入力文章と一致する入力内容が変換対応情報に含まれているか否かを入力内容比較部が判断し、入力文章と一致する入力内容が変換対応情報に含まれている場合に、一時記憶手段に記憶されている内容を入力内容に対応する変換内容の各々に対応する文脈パターン情報と比較して一致する行数を文脈比較部が点数として算出し、点数が最も高い変換内容を入力文章に対して変換出力部が出力することを特徴とする。
【００１６】
上記目的を達成するため、本発明に係るソースプログラム他言語変換支援プログラムは、ユーザに入力された入力文章を一時的に保存する一時記憶手段と、第１のプログラミング言語による入力内容に対応する第２のプログラミング言語による単数または複数の変換内容である変換対応情報および複数の変換内容の各々に対応する第１のプログラミング言語のパターンである文脈パターン情報とを予め記憶している固定記憶手段を備え、第１のプログラミング言語によって記述された変換前ソースプログラムを、第２のプログラミング言語によって記述された変換後ソースプログラムに変換する作業を行うソースプログラム他言語変換支援装置にあって、コンピュータに、変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を一時記憶手段に記憶させる手順、入力文章と一致する入力内容が変換対応情報に含まれているか否かを判断する手順、入力文章と一致する入力内容が変換対応情報に含まれている場合に、一時記憶手段に記憶されている内容を入力内容に対応する変換内容の各々に対応する文脈パターン情報と比較して一致する行数を点数として算出する手順、および点数が最も高い変換内容を入力文章に対して出力する手順を実行させることを特徴とする。
【発明の効果】
【００１７】
上述したように本発明は、一時記憶手段に記憶されている内容を文脈パターン情報と比較して点数化して、点数が最も高い変換内容を出力する構成としたので、現在入力されている入力文章のみならずその前の行の内容に基づいて文脈パターンを判断することができ、これによって単純な予約語の変換では対応できない場合にも変換作業を効率的に行えるよう支援することが可能であるソースプログラム他言語変換支援装置、変換支援方法および変換支援プログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態に係るソースプログラム他言語変換支援装置の構成を示す説明図である。
【図２】図１に示した変換支援ソフトの動作を示すフローチャートである。
【図３】図１に示した変換対応情報および文脈パターン情報に予め記憶されているデータの例を示す説明図である。
【図４】図１に示したプログラム変換支援装置にユーザが入力する変換前プログラムの一例を示す説明図である。
【図５】図４に例示した変換前プログラムを変換する際の、図２のステップＳ１０５として示した採点処理の実際の例を示す説明図である。
【図６】図４に例示した変換前プログラムを、図３に例示した変換対応情報および文脈パターン情報を用いて変換して出力された変換後プログラムの一例を示す説明図である。
【図７】本発明の第２の実施形態に係るソースプログラム他言語変換支援装置の構成を示す説明図である。
【図８】図７に示したプログラム変換支援装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１９】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るソースプログラム他言語変換支援装置１０は、第１のプログラミング言語によって記述された変換前ソースプログラムを、第２のプログラミング言語によって記述された変換後ソースプログラムに変換する作業を行うソースプログラム他言語変換支援装置であって、ユーザに入力された入力文章を一時的に保存する一時記憶手段１４と、第１のプログラミング言語による入力内容に対応する第２のプログラミング言語による単数または複数の変換内容である変換対応情報２３および複数の変換内容の各々に対応する第１のプログラミング言語のパターンである文脈パターン情報２４が予め記憶されている固定記憶手段１２と、変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を一時記憶手段に記憶させる一時記憶制御部２１Ａと、入力文章と一致する入力内容が変換対応情報に含まれているか否かを判断する入力内容比較部２１Ｂと、入力文章と一致する入力内容が変換対応情報に含まれている場合に、一時記憶手段に記憶されている内容を入力内容に対応する変換内容の各々に対応する文脈パターン情報と比較して一致する行数を点数として算出する文脈比較部２１Ｃと、点数が最も高い変換内容を入力文章に対して出力する変換出力部２１Ｄとを有する。
【００２０】
ここで、変換出力部２１Ｄは、点数が最も高い変換内容と共に、点数があらかじめ与えられた閾値を超える変換内容をその旨を表示するコメント行として同時に出力する。
また、入力文章と一致する入力内容が変換対応情報２３に記憶されていない場合に、変換出力部２１Ｄは入力文章をそのままその旨を表示するコメント行として出力する。
【００２１】
以上の構成を備えることにより、この装置は単純な予約語の変換では対応できない場合にも変換作業を効率的に行えるよう支援することが可能となる。
以下、これをより詳細に説明する。
【００２２】
図１は、本発明の第１の実施形態に係るソースプログラム他言語変換支援装置１０（以後プログラム変換支援装置１０という）の構成を示す説明図である。プログラム変換支援装置１０は、一般的なコンピュータ装置であり、コンピュータプログラムを実行する主体となる主演算制御手段（ＣＰＵ: Central Processing Unit）１１と、データを記憶する固定記憶手段１２と、ユーザ（この場合はプログラミング技術者）ユーザからの入力操作を受け付ける入力手段１３と、ユーザから入力された内容を一時的に保存する一時記憶手段１４と、ユーザに対して処理結果を提示する出力手段１５とを備える。
【００２３】
ユーザは、入力手段１３を介して変換前プログラム１６を入力し、これから説明する動作を通じて変換されて出力手段１５を介して出力された変換後プログラム１７を得る。
【００２４】
主演算制御手段１１では、変換支援ソフト動作部２１が変換支援ソフトをコンピュータプログラムとして動作させる。そして固定記憶手段１２には、変換対応情報２３および文脈パターン情報２４が予め記憶されている。これらについての詳細は後述する。
【００２５】
変換支援ソフト動作部２１で動作する変換支援ソフトは、一時記憶制御部２１Ａと、入力内容比較部２１Ｂと、文脈比較部２１Ｃと、変換出力部２１Ｄを有する。一時記憶制御部２１Ａは、一時記憶手段１４を制御し、そこにデータを送り込んで記憶させる。入力内容比較部２１Ｂは、ユーザに入力された変換前プログラム１６の１行分の入力（入力文章）の内容と、変換対応情報２３の内容とを比較する。
【００２６】
文脈比較部２１Ｃは、一時記憶手段１４に記憶された内容と、文脈パターン情報２４の内容とを比較する。変換出力部２１Ｄは、後述した方法に基づいて、変換前プログラム１６の内容を変換して、変換後プログラム１７として出力手段１５を介して出力する。
【００２７】
図２は、図１に示した変換支援ソフト動作部２１の動作を示すフローチャートである。まず入力手段１３を介して入力された変換前プログラム１６の１行分の入力（入力文章）を受け取った一時記憶制御部２１Ａは（ステップＳ１０１）、これを一時記憶手段１４に記憶させる（ステップＳ１０２）。
【００２８】
続いて入力内容比較部２１Ｂは、入力文章を変換対応情報２３の中から検索し（ステップＳ１０３）、この入力文章に対応する情報が変換対応情報２３内に存在するか否かを判断する（ステップＳ１０４）。存在しなければ、この文は人手によって変換することが必要であるということになるが、そのための参考情報として変換出力部２１Ｄがこの文をコメント行に変換して出力手段１５を介して出力させ（ステップＳ１０８）、処理を終了する。
【００２９】
ステップＳ１０４で、入力文章に対応する情報が変換対応情報２３内に存在する場合、文脈比較部２１Ｃが一時記憶手段１４に記憶されていた変換前プログラム１６と文脈パターン情報２４とを１文ずつ比較し、合致する文が存在する場合を１点として点数化する。これを変換候補の文の数だけ繰り返す（ステップＳ１０５）。
【００３０】
その後で、変換出力部２１Ｄが最も点数が高い変換後の文を出力手段１５を介して出力させ（ステップＳ１０６）、かつ予め与えられた閾値以上の文が他にあれば、これをこの文をコメントに変換して出力手段１５を介して出力させ（ステップＳ１０７）、処理を終了する。
【００３１】
図３は、図１に示した変換対応情報２３および文脈パターン情報２４に予め記憶されているデータの例を示す説明図である。変換対応情報２３は、ソースプログラムを変換する前の文と変換した後の文の組み合わせについてのデータである。文脈パターン情報２４は、変換対応情報２３に記憶される文の組み合わせ１つ毎に前後の文脈を示す文についてのデータである。
【００３２】
変換対応情報２３には、文章番号２３ａ、変換前文章２３ｂ（入力内容）、変換後文章２３ｃ（変換内容）の各々のデータが記憶されている。文章番号２３ａは、各データ行を一意に識別する番号である。変換前文章２３ｂは変換前の言語で記述された文章であり、変換後文章２３ｃはこれに対応する変換後の言語で記述された文章である。ただし、変換前文章２３ｂと変換後文章２３ｃとの対応は、必ずしも一対一であるとは限らない。
【００３３】
図３に示した例で変換対応情報２３に記憶されている情報は、変換前文章２３ｂとしてＣＯＢＯＬで「ＣＡＬＬ  ＨＥＮＫＡＮ−ＰＲＧ  ＵＳＩＮＧ  Ｌ−ＰＡＲＡ．」という文章が記憶されており、これに対応する変換後文章２３ｃとして「ｈｅｎｋａｎ＿ｐｒｇ．ｍｅｔｈｏｄ１（ｋｏｊｉｎ＿ｎｏ）；」と「ｈｅｎｋａｎ＿ｐｒｇ．ｍｅｔｈｏｄ２（ｋｏｊｉｎ＿ｎｏ）；」の２通りの変換候補が記憶されていることを示している。前者には「１」、後者には「２」という文章番号２３ａが振られている。
【００３４】
文脈パターン情報２４は、対応情報２４ａ、行番号２４ｂ、変換前パターン２４ｃの各データが記憶されている。対応情報２４ａは、変換対応情報２３の文章番号２３ａと対応する情報である。行番号２４ｂは、対応情報２４ａの中で各データ行を一意に識別する。変換前パターン２４ｃは、変換前の言語で記述された文章であり、一時記憶手段１４に記憶されていた変換前プログラム１６との比較対象となる。
【００３５】
図３に示した例で変換前パターン２４ｃとして記憶されている情報は、変換前プログラム１６で１行目に「ＭＯＶＥ１  ＴＯ  Ｌ−ＤＯＵＳＡ−ＰＡＲＡ」、２行目に「ＭＯＶＥ  ＊  ＴＯ  Ｌ−ＫＯＪＩＮ−ＮＯ」となった後の３行目に「ＣＡＬＬ  ＨＥＮＫＡＮ−ＰＲＧ  ＵＳＩＮＧ  Ｌ−ＰＡＲＡ．」となった場合、対応情報２４ａ（＝図３の文章番号２３ａ）＝「１」に対応するので、この３行目を「ｈｅｎｋａｎ＿ｐｒｇ．ｍｅｔｈｏｄ１（ｋｏｊｉｎ＿ｎｏ）；」と変換することが適切であることを示している。
【００３６】
ちなみに、「＊」の記号はいわゆるワイルドカードであり、この部分に相当する文字は「任意の字数」の「任意の文字」に対して一致すると判断することを示す。
【００３７】
変換前パターン２４ｃにはまた、変換前プログラム１６で１行目に「ＭＯＶＥ２  ＴＯ  Ｌ−ＤＯＵＳＡ−ＰＡＲＡ」、２行目に「ＭＯＶＥ  ＊  ＴＯ  Ｌ−ＫＯＪＩＮ−ＮＯ」となった後の３行目に「ＣＡＬＬ  ＨＥＮＫＡＮ−ＰＲＧ  ＵＳＩＮＧ  Ｌ−ＰＡＲＡ．」となった場合、対応情報２４ａ（＝図３の文章番号２３ａ）＝「２」に対応するので、この３行目を「ｈｅｎｋａｎ＿ｐｒｇ．ｍｅｔｈｏｄ２（ｋｏｊｉｎ＿ｎｏ）；」と変換することが適切であることを示す情報も記憶されている。
【００３８】
変換対応情報２３の記憶内容で、入力文章が変換前文章２３ｂと一致していた場合は、その一致していたデータの文章番号２３ａと一致する対応情報２４ａの各々について、文脈比較部２１Ｃが一時記憶手段１４に記憶されていた変換前プログラム１６と変換前パターン２４ｃとを比較して、一致した行があれば＋１点という形で点数化する。
【００３９】
図４は、図１に示したプログラム変換支援装置１０にユーザが入力する変換前プログラム１６の一例を示す説明図である。ここに記載した変換前プログラム１６の例は、手続き型プログラム言語であるＣＯＢＯＬで記載されたソースプログラムの一部である。プログラム変換支援装置１０は、これをオブジェクト指向型言語のＪａｖａに変換して変換後プログラム１７として出力する。
【００４０】
図４に例示した変換前プログラム１６を、図３に例示した変換対応情報２３および文脈パターン情報２４を用いて変換する動作について今から説明する。ユーザは、図４に例示した変換前プログラム１６を１行ずつ入力手段１３を介して入力していく（ステップＳ１０１）。
【００４１】
変換前プログラム１６の１行目および２行目は、一時記憶制御部２１Ａがそのまま一時記憶手段１４に記憶させ（ステップＳ１０２）、かつ変換対応情報２３内に対応する情報が存在しないと入力内容比較部２１Ｂが判断するので（ステップＳ１０３〜１０４）、変換出力部２１Ｄがそのままコメント行に変換して出力する（ステップＳ１０８）。
【００４２】
そして変換前プログラム１６の３行目が入力されると、一時記憶制御部２１Ａがそのまま一時記憶手段１４に記憶させ（ステップＳ１０２）、かつ変換対応情報２３内に対応する情報が存在する入力内容比較部２１Ｂが判断するので（ステップＳ１０３〜１０４）、文脈比較部２１Ｃがここまでの処理で一時記憶手段１４に記憶された内容、即ち図４に例示した変換前プログラム１６の１〜３行目の内容を文脈パターン情報２４と１行ずつ比較して、一致した行数をそのまま点数として算出する（ステップＳ１０５）。
【００４３】
図４に例示した変換前プログラム１６の３行目「ＣＡＬＬ  ＨＥＮＫＡＮ−ＰＲＧ  ＵＳＩＮＧ  Ｌ−ＰＡＲＡ．」に対応する情報は、図３に例示した変換対応情報２３内には「ｈｅｎｋａｎ＿ｐｒｇ．ｍｅｔｈｏｄ１（ｋｏｊｉｎ＿ｎｏ）；」と「ｈｅｎｋａｎ＿ｐｒｇ．ｍｅｔｈｏｄ２（ｋｏｊｉｎ＿ｎｏ）；」の２通りが存在する。これは、一時記憶手段１４に記憶された内容に応じて変換方法が異なることを示している。以後、前者を第１候補、後者を第２候補という。
【００４４】
図５は、図４に例示した変換前プログラム１６を変換する際の、図２のステップＳ１０５として示した採点処理の実際の例を示す説明図である。文脈比較部２１Ｃは、一時記憶手段１４に記憶された変換前プログラム１６の１〜３行目の内容を、文脈パターン情報２４と１行ずつ比較する。第１候補（対応情報２４ａ＝１）の場合、一時記憶手段１４に記憶された内容の１〜３行目が全て変換前パターン２４ｃと一致するので、一致した行数は３行、即ち点数は３点となる。第２候補（対応情報２４ａ＝２）の場合、一時記憶手段１４に記憶された内容の２行目と３行目が変換前パターン２４ｃと一致するので、一致した行数は２行、即ち点数は２点となる。
【００４５】
従って、変換出力部２１Ｄはより点数の高い第１候補を、実行可能な行として出力手段１５を介して出力させる（ステップＳ１０６）。そしてここでは閾値を「２点」としているので、第２候補も閾値を超える点数を得たことになる。従って、第２候補もコメント行として出力手段１５を介して出力させて（ステップＳ１０７）、処理を終了する。
【００４６】
図６は、図４に例示した変換前プログラム１６を、図３に例示した変換対応情報２３および文脈パターン情報２４を用いて変換して出力された変換後プログラム１７の一例を示す説明図である。変換前プログラム１６の１〜２行目は、変換対応情報２３内に対応する情報が存在しないので、その旨の表示と共にコメント行として出力されている。変換前プログラム１６の３行目は、第１候補を実行可能な行として、第２候補をコメント行として出力されている。
【００４７】
ユーザは、コメント行として出力されたこれらの情報に基づいて、変換前プログラム１６の３行目に対応する部分について、第１候補と第２候補のうちより適切な変換候補を選択して変換後プログラム１７を編集する。また、変換前プログラム１６の１〜２行目に対応する部分についても、より適切に動作しうるプログラムになるように編集する。それらの作業を行う際、プログラム変換支援装置１０によって行われた動作の内容とその意図がコメント行として同時に出力されているので、ユーザはその編集作業を効率的に行うことができる。
【００４８】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本実施形態に係る変換支援方法は、ユーザに入力された入力文章を一時的に保存する一時記憶手段と、第１のプログラミング言語による入力内容に対応する第２のプログラミング言語による単数または複数の変換内容である変換対応情報および複数の変換内容の各々に対応する第１のプログラミング言語のパターンである文脈パターン情報とを予め記憶している固定記憶手段を備え、第１のプログラミング言語によって記述された変換前ソースプログラムを、第２のプログラミング言語によって記述された変換後ソースプログラムに変換する作業を行うソースプログラム他言語変換支援装置にあって、変換前ソースプログラムが１行ずつ入力されるたびにこの入力文章を一時記憶制御部が一時記憶手段に記憶させ（図２・ステップＳ１０１〜１０２）、入力文章と一致する入力内容が変換対応情報に含まれているか否かを入力内容比較部が判断し（図２・ステップＳ１０３〜１０４）、入力文章と一致する入力内容が変換対応情報に含まれている場合に、一時記憶手段に記憶されている内容を入力内容に対応する変換内容の各々に対応する文脈パターン情報と比較して一致する行数を文脈比較部が点数として算出し（図２・ステップＳ１０５）、点数が最も高い変換内容を入力文章に対して変換出力部が出力する（図２・ステップＳ１０６）。
【００４９】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するコンピュータであるソースプログラム他言語変換支援装置１０に実行させるようにしてもよい。
この構成および動作により、本実施形態は以下のような効果を奏する。
【００５０】
本実施形態に係るプログラム変換支援装置１０は、複数の変換候補の中から前後の文脈を判断し、最も適していると考えられる文脈を、実行可能な状態で変換後プログラム１７として出力する。さらに、それ以外でも適していると考えられる文脈も、コメント行として変換後プログラム１７に含めて出力する。そのため、変換前プログラム１６で１つの行から判断される変換候補が複数存在する場合にも、変換後の内容として考えられる情報を複数含めて出力されるので、技術者による変換後プログラム１７の編集作業をより効率的なものとすることができる。
【００５１】
（第２の実施形態）
本発明の第２の実施形態に係るソースプログラム他言語変換支援装置２１０は、一時記憶制御部２２１Ａが、ユーザが入力した変換前ソースプログラムの全文を一時記憶手段に記憶させ、文脈比較部２２１Ｃが変換前ソースプログラムの全文を文脈パターン情報と比較して一致する行数を点数として算出する。
【００５２】
これによって、入力中の行よりも前の行だけでなく、後の行についても文脈パターン情報と比較して、より適切に文脈について判断することができる。
以下、これをより詳細に説明する。
【００５３】
図７は、本発明の第２の実施形態に係るソースプログラム他言語変換支援装置２１０（以後プログラム変換支援装置２１０という）の構成を示す説明図である。プログラム変換支援装置２１０は、前述の第１の実施形態に係るプログラム変換支援装置１０とハードウェアとしては同一の構成を有するコンピュータ装置であり、プログラム変換支援装置１０と同じく主演算制御手段１１と、固定記憶手段１２と、ユーザ入力手段１３と、一時記憶手段１４と、出力手段１５とを有する。
【００５４】
ただし、主演算制御手段１１では変換支援ソフト動作部２２１が、第１の実施形態に係る変換支援ソフト動作部２１とは異なる動作を行う変換支援ソフトをコンピュータプログラムとして動作させる。固定記憶手段１２に予め記憶されている変換対応情報２３および文脈パターン情報２４は、第１の実施形態と同一である。変換支援ソフト２２１はさらに、一時記憶制御部２２１Ａと、入力内容比較部２２１Ｂと、文脈比較部２２１Ｃと、変換出力部２１Ｄを有する。
【００５５】
一時記憶制御部２２１Ａ、入力内容比較部２２１Ｂおよび文脈比較部２２１Ｃの機能は各々、第１の実施形態の一時記憶制御部２１Ａ、入力内容比較部２１Ｂおよび文脈比較部２１Ｃと同一である。
【００５６】
しかしながら、第１の実施形態では変換前プログラム１６が１行入力されるたびに、それを変換対応情報２３の内容と比較し、対応する情報があれば一時記憶手段１４に記憶された入力済の変換前プログラム１６を文脈パターン情報２４と比較していた。即ち、変換前プログラム１６の入力された行よりも前の行のみを文脈パターン情報２４と比較する対象としていた。
【００５７】
これに対して本実施形態では、一時記憶制御部２２１Ａがユーザに変換前プログラム１６の全文を入力させて、これを一時記憶手段１４に記憶させ、入力が完了したら入力内容比較部２２１Ｂが一時記憶手段１４の記憶内容の１行目から１行ずつ変換対応情報２３の内容と比較し、対応する情報があれば文脈比較部２２１Ｃが一時記憶手段１４に記憶された入力済の変換前プログラム１６全体を文脈パターン情報２４と比較する。
【００５８】
即ち、本実施形態では入力中の行よりも前の行だけでなく、後の行についても文脈パターン情報２４と比較する対象としている。これによって、第１の実施形態と比べて文脈を比較して点数化するという動作の精度を向上させるものである。上記の相違点以外は、プログラム変換支援装置２１０の構成は第１の実施形態に係るプログラム変換支援装置１０と同一であるので、同一の部分については参照番号も同一とする。
【００５９】
図８は、図７に示した変換支援ソフト２２１の動作を示すフローチャートである。図８のフローチャートに示す各ステップで、図２に示した第１の実施形態に係る動作と同一の動作については、参照番号も同一とする。
【００６０】
まず入力手段１３を介して入力された変換前プログラム１６の入力を受け取った一時記憶制御部２２１Ａは（ステップＳ１０１）、これを一時記憶手段１４に記憶させる（ステップＳ１０２）。一時記憶制御部２２１Ａは、変換前プログラム１６が全文入力されたか否かを確認し（ステップＳ３０１）、全文入力されていなければ入力をステップＳ１０１に戻って入力を継続させ、全文入力されていれば変数ｉの初期値を１として（ステップＳ３０２）次に進む。
【００６１】
続いて入力内容比較部２１Ｂは、入力された変換前プログラム１６のｉ行目の文を変換対応情報２３の中から検索し（ステップＳ３０３）、この文が変換対応情報２３内に存在するか否かを判断する（ステップＳ１０４）。存在しなければ、この文は人手によって変換することになるが、そのための参考情報として変換出力部２１Ｄがこの文をコメント行に変換して出力手段１５を介して出力させ（ステップＳ１０８）、次の行に進む（ステップＳ３０４〜３０５）。次の行がなければ処理を終了する。
【００６２】
ステップＳ１０４で、ｉ行目の文が変換対応情報２３内に存在する場合、文脈比較部２１Ｃが一時記憶手段１４に記憶されていた変換前プログラム１６の全文と文脈パターン情報２４とを１文ずつ比較し、合致する文が存在する場合を１点として点数化する。これを変換候補の文の数だけ繰り返す（ステップＳ１０５）。
【００６３】
その後で、変換出力部２１Ｄが最も点数が高い変換後の文を出力手段１５を介して出力させ（ステップＳ１０６）、かつ予め与えられた閾値以上の文が他にあれば、これをこの文をコメントに変換して出力手段１５を介して出力させ（ステップＳ１０７）、次の行に進む（ステップＳ３０４〜３０５）。次の行がなければ処理を終了する。
【００６４】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【００６５】
本発明は、ある言語で記述されたソースプログラムを別の言語に変換するプログラム変換に適用可能である。
【符号の説明】
【００６６】
１０、２１０  プログラム変換支援装置
１１  主演算制御手段
１２  固定記憶手段
１３  入力手段
１４  一時記憶手段
１５  出力手段
１６  変換前プログラム
１７  変換後プログラム
２１、２２１  変換支援ソフト動作部
２１Ａ、２２１Ａ  一時記憶制御部
２１Ｂ、２２１Ｂ  入力内容比較部
２１Ｃ、２２１Ｃ  文脈比較部
２１Ｄ  変換出力部
２３  変換対応情報
２４  文脈パターン情報
【図１】
2011170556.tif 000003
【図２】
2011170556.tif 000004
【図３】
2011170556.tif 000005
【図４】
2011170556.tif 000006
【図５】
2011170556.tif 000007
【図６】
2011170556.tif 000008
【図７】
2011170556.tif 000009
【図８】
2011170556.tif 000010