説明

プログラムソース変換装置

【課題】プログラムソースをこれと異なるプログラムソースに変換した際に、変換前と変換後のプログラムソースを容易に比較することができ、変換後にコメントも付すことができ、これによって変換後のプログラムソースを人が読み易くしてメンテナンス及び改善を容易に行うこと。
【解決手段】スプレッドシートを用いた変換処理部12によって、プログラムソースをこれと異なるプログラムソースに自動で変換し、表示制御部14で、その変換後のプログラムソースに変換不適正部分が有る場合、表示部16に、その変換不適正部分である変換前と変換後のプログラムソースの対応部分を同一行毎に左右に対応付けて表示すると共に、これと同一行に当該変換不適正を表すコメントを表示し、変換不適正部分が無い場合、変換前と変換後のプログラムソースの対応部分を同一行毎に左右に対応付けて表示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータのプログラムの変換技術であって、ある言語のプログラムソースをこれと異なる言語のプログラムソースに変換するプログラムソース変換装置に関する。
【背景技術】
【0002】
従来、テキストファイル形式でプログラムが記述されるプログラムソースである例えばFortran(フォートラン)言語を、これと異なるプログラムソースのC(シー)言語に変換(コンバート)する場合、人手による方法がある。しかし、人手ではプログラムの記述が長い場合、作業時間並びに労力が掛かり、変換ミス等のエラーも生じ易い。そこで、変換手段(コンバータ)として「F2C」等のフリーのソフトウェアであるフリーウェアを用いて自動的に変換する方法が採られている。なお、「F2C」は世界中で活用されており性能及び使用実績の面で優れたコンバータである。
【0003】
また、この種のプログラムの変換を行う技術として、特許文献1に記載のプログラムのスクロール表示方式がある。
この内容は、原始プログラムと、原始プログラムから自動生成される目的プログラムとのスクロール表示方式に関し、原始プログラムの行とそこから自動生成した目的プログラムの対応する行とを同時に自動的に表示することを目的としている。これを達成するため、表示装置とメモリを含む編集装置及び原始プログラム、目的プログラム及び行対応情報の各格納部を備える。メモリを含む編集装置は、原始プログラムと目的プログラムを同時に表示する手段と、一方のウィンドウのプログラムに対し指定された行を表示する手段と、一方のプログラムの指定行に対応する他方のプログラムの行を識別する手段と、識別した他方のプログラムの行をスクロールにより表示するスクロール表示手段とを備える編集部を備えて構成されている。
【0004】
そして、原始プログラムを翻訳して得られた目的プログラムを同時に表示し、一方のプログラムの行(文)を指定すると行対応情報を用いて対応する他方のプログラムの行をスクロール表示できるようになっている。
【特許文献1】特開平5−35455号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、上述したようにフリーウェアを用いてプログラムソースをこれと異なるプログラムソースに変換した場合、変換後のプログラムソースの構成が一部崩れ、変換前と変換後のプログラムソースの対応関係が判らなくなり双方の比較が困難となり、また、変換前に記述されていたコメントがフリーウェアでは変換されないので変換後に消去されてしまう。このため、変換後のプログラムソースを、人が非常に読みづらくなりメンテナンス及び改善が非常に困難となるという問題がある。
【0006】
上記特許文献1は、プログラムの変換技術に係るが、原始プログラム(ソースプログラム)を目的プログラム(機械語に置換えたプログラム)に変換する技術であって、この変換では、変換後が機械語なので両者の対応関係が人では読み取れなくなる。このため、両者を画面表示してスクロールしながら両者の対応場所を画面表示するようになっているが、プログラムソースをこれと異なるプログラムソースに変換する場合には適用できないという問題がある。
【0007】
本発明は、このような課題に鑑みてなされたものであり、プログラムソースをこれと異なるプログラムソースに変換した際に、変換前と変換後のプログラムソースを容易に比較することができ、変換後にコメントも付すことができ、これによって変換後のプログラムソースを人が読み易くしてメンテナンス及び改善を容易に行うことを可能とするプログラムソース変換装置を提供することを目的としている。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明の請求項1によるプログラムソース変換装置は、表計算プログラムを用いてプログラムソースを、これと異なるプログラムソースに自動で変換する変換処理手段と、前記変換処理手段での変換後のプログラムソースに変換不適正部分が有る場合、表示手段に、その変換不適正部分である変換前と変換後のプログラムソースの対応部分を同一行毎に左右に対応付けて表示すると共に、これと同一行に当該変換不適正を表すコメントを表示し、前記変換不適正部分が無い場合、変換前と変換後のプログラムソースの対応部分を同一行毎に左右に対応付けて表示する表示制御手段とを備えたことを特徴とする。
【0009】
この構成によれば、プログラムソースをこれと異なるプログラムソースに変換した際に、変換前と変換後のプログラムソースが同一行に左右に対応付けられて表示されるので、変換前と後のプログラムソースを容易に比較することができる。また、変換時に何らかの原因で適正に変換が行われなかった場合でも、変換前と後のプログラムソースを上記同様、同一行に左右に対応付けて表示し、更にそれと同一行に当該変換不適正を表すコメントを表示することができるので、変換後のプログラムソースを人が読み易く、これによって、プログラムソースのメンテナンス及び改善を容易に行うことが可能となる。
【0010】
また、本発明の請求項2によるプログラムソース変換装置は、請求項1において、前記変換処理手段は、前記変換時にプログラムソースへの変換が困難な場合、この困難部分のプログラムソースを無変換とし、前記表示制御手段は、前記無変換部分のプログラムソースを表示すると共に、これと同一行に当該無変換を表すコメントを表示することを特徴とする。
この構成によれば、プログラムソースの自動変換が困難な部分については無理に変換せず、この無変換部分と当該無変換のコメントで表示するようにしたので、その無変換部分を人が容易に認識することができ、これによって、その無変換部分のみを人手で変換することが可能となる。従って、プログラムソース全体として適正に効率良く変換することができる。
【発明の効果】
【0011】
以上説明したように本発明によれば、プログラムソースをこれと異なるプログラムソースに変換した際に、変換前と変換後のプログラムソースを容易に比較することができ、変換後にコメントも付すことができ、これによって変換後のプログラムソースを人が読み易くしてメンテナンス及び改善を容易に行うことができるという効果がある。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施の形態を、図面を参照して説明する。
図1は、本発明の実施の形態に係るプログラムソース変換装置の構成を示すブロック図である。
この図1に示すプログラムソース変換装置10は、コンピュータに搭載され、変換処理部(変換処理手段)12と、表示制御部(表示制御手段)14と、コンピュータのディスプレイ等の表示部(表示手段)16とを備えて構成されている。
【0013】
変換処理部12は、一般的な表計算プログラムの関数機能であるスプレッドシート機能を用いて第1のプログラムソース(例えば、Fortran言語)を、これと異なる第2のプログラムソース(例えば、C言語)に自動で変換する処理を行うものであり、図2に示すように、予整形処理部12aと、単純置換処理部12bと、字句抽出処理部12cと、字句解析処理部12dと、構文解析変換処理部12eと、特殊変換処理部12fと、字句変換処理部12gと、関数変換処理部12hと、後整形処理部12iとを備えて構成されている。なお、スプレッドシート機能としては、例えばエクセル(登録商標)のマクロ機能がある。
【0014】
予整形処理部12aは、改行記号及びコメント文等を異なるプログラムソースへの変換に必要な所定の形式に整形する処理を行う。単純置換処理部12bは、この処理以降の処理を容易とするために、例えば「.AND.」を「&」に置換する等の文字や記号の単純な置換処理を行う。字句抽出処理部12cは、入力に対して内部の状態に応じた処理を行って結果を出力する仮想的な自動処理機能であるオートマトンによって単語の抽出処理を行う。
【0015】
字句解析処理部12dは、変数・配列・型・次数・次元数・命令等の解析処理を行う。構文解析変換処理部12eは、プログラムの構文であるIf文やDO文等を解析して変換を行う。特殊変換処理部12fは、Equiverence宣言、Common変数などの変換処理を行う。字句変換処理部12gは、コーディング規約に従い変数名の変換処理を行う。関数変換処理部12hは、プロトタイプ宣言、引数の値、アドレスの指定等の関数変換処理を行う。後整形処理部12iは、セミコロンの追加等の整形処理を行う。
【0016】
これら各処理部12a〜12iによる処理は、変換処理部12に入力されるFortran言語の全てのプログラムソースに対して行われ、これによって、Fortran言語の全てがC言語に変換されるようになっている。また、この変換時に、変換処理部12は、プログラムソースの変換が困難と判断した部分は無変換とする。この機能は、スプレッドシート機能を改良して作成したものである。
表示制御部14は、変換処理部12での変換前のFortran言語と変換後のC言語との対応部分を1行毎(同一行毎)に左右に対応付けて表示部16に表示する制御を行う。つまり、図3に示すように表示部16のFortran言語欄21とC言語欄22に、変換前のFortran言語と変換後のC言語とを1行毎に対応付けて表示する。
【0017】
更に、表示制御部14は、その表示の際に、無変換部分の行を検出した場合は、表示部16の変換順でプログラムソースが表示される該当行に、その無変換部分を表示すると共に、この無変換部分の行の右端部分のコメント欄23に、無変換であることを表すコメントを表示する。また、変換が不適正な部分を検出した場合は、Fortran言語欄21及びC言語欄22にその変換不適正部分の行を表示すると共に、この変換不適正部分の行の右端部分のコメント欄23に、変換不適正であることを表すコメントを表示する制御を行う。これら表示制御機能は、スプレッドシート機能を改良して作成したものである。
【0018】
次に、このような構成のプログラムソース変換装置10によるプログラムソースの変換及び表示動作を、図4に示すフローチャートを参照して説明する。
ステップS1において、変換対象のプログラムソースの一例であるFortran言語がプログラムソース変換装置10の変換処理部12に入力されたとする。ここで、変換処理部12は、Fortran言語をC言語に変換する処理を行うように予め設定されているとする。
【0019】
ステップS2において、変換処理部12では、Fortran言語をC言語に変換する際の変換処理が困難か否かが判断される。この結果、困難でないと判断された場合は、ステップS3において、変換処理部12で、Fortran言語がC言語に変換される。この変換は、変換処理部12の各処理部12a〜12iによって、上記ステップS1で入力される全てのFortran言語に対して行われる。
【0020】
この変換後、ステップS4において、表示制御部14にて、変換後のプログラムソースであるC言語に変換不適正部分があるか否かが判断される。この結果、変換不適正部分が無い場合は、ステップS5において、表示制御部14の表示制御によって表示部16のFortran言語欄21とC言語欄22とに、変換前のFortran言語と変換後のC言語との対応部分が、1行毎に左右に対応付けられて表示される。
一方、上記ステップS4において変換不適正部分があると判断された場合は、Fortran言語欄21とC言語欄22とに、変換不適正部分に該当するFortran言語及びC言語の対応部分が1行毎に左右に対応付けられて表示されると共に、この変換不適正部分の行の右端部分のコメント欄23に、変換不適正であることを表すコメントが表示される。
【0021】
また、上記ステップS2において、変換処理部12で、Fortran言語からC言語への変換が困難と判断された場合、ステップS7において、その困難部分は無変換とされる。そして、ステップS8において、表示制御部14の表示制御によって、表示部16の変換順でプログラムソースが表示される該当行に、その無変換部分のFortran言語が表示されると共に、この行の右端部分のコメント欄23に、無変換であることを表すコメントが表示される。
【0022】
このような本実施の形態のプログラムソース変換装置10によれば、スプレッドシートを用いた変換処理部12によって、プログラムソースをこれと異なるプログラムソースに自動で変換し、表示制御部14で、その変換後のプログラムソースに変換不適正部分が有る場合、表示部16に、その変換不適正部分である変換前と変換後のプログラムソースの対応部分を同一行毎に左右に対応付けて表示すると共に、これと同一行に当該変換不適正を表すコメントを表示し、変換不適正部分が無い場合、変換前と変換後のプログラムソースの対応部分を同一行毎に左右に対応付けて表示するようにした。
【0023】
これによって、プログラムソースをこれと異なるプログラムソースに変換した際に、変換前と変換後のプログラムソースが同一行に左右に対応付けられて表示されるので、変換前と後のプログラムソースを容易に比較することができる。また、変換時に何らかの原因で適正に変換が行われなかった場合でも、変換前と後のプログラムソースを上記同様、同一行に左右に対応付けて表示し、更にそれと同一行に当該変換不適正を表すコメントを表示することができるので、変換後のプログラムソースを人が読み易く、これによって、プログラムソースのメンテナンス及び改善を容易に行うことが可能となる。
【0024】
また、変換処理部12によって、変換時にプログラムソースへの変換が困難な場合、この困難部分のプログラムソースを無変換とし、表示制御部14は、無変換部分のプログラムソースを表示すると共に、これと同一行に当該無変換を表すコメントを表示するようにした。
これによって、プログラムソースの自動変換が困難な部分については無理に変換せず、この無変換部分と当該無変換のコメントで表示するようにしたので、その無変換部分を人が容易に認識することができる。従って、その無変換部分のみを人手で変換することが可能となり、プログラムソース全体として適正に効率良く変換することができる。
また、本実施の形態のプログラムソース変換装置10で実際にプログラムソースの変換テストを行ったところ、人手で変換するのに比べて約半分の作業工数で変換可能となった。
【図面の簡単な説明】
【0025】
【図1】本発明の実施の形態に係るプログラムソース変換装置の構成を示すブロック図である。
【図2】上記プログラムソース変換装置の変換処理部の構成を示すブロック図である。
【図3】上記プログラムソース変換装置の表示部の表示例を示す図である。
【図4】上記プログラムソース変換装置によるプログラムソースの変換処理及び表示処理を説明するためのフローチャートである。
【符号の説明】
【0026】
10 プログラムソース変換装置
12 変換処理部
12a 予整形処理部
12b 単純置換処理部
12c 字句抽出処理部
12d 字句解析処理部
12e 構文解析変換処理部
12f 特殊変換処理部
12g 字句変換処理部
12h 関数変換処理部
12i 後整形処理部
14 表示制御部
16 表示部

【特許請求の範囲】
【請求項1】
表計算プログラムを用いてプログラムソースを、これと異なるプログラムソースに自動で変換する変換処理手段と、
前記変換処理手段での変換後のプログラムソースに変換不適正部分が有る場合、表示手段に、その変換不適正部分である変換前と変換後のプログラムソースの対応部分を同一行毎に左右に対応付けて表示すると共に、これと同一行に当該変換不適正を表すコメントを表示し、前記変換不適正部分が無い場合、変換前と変換後のプログラムソースの対応部分を同一行毎に左右に対応付けて表示する表示制御手段と
を備えたことを特徴とするプログラムソース変換装置。
【請求項2】
前記変換処理手段は、前記変換時にプログラムソースへの変換が困難な場合、この困難部分のプログラムソースを無変換とし、前記表示制御手段は、前記無変換部分のプログラムソースを表示すると共に、これと同一行に当該無変換を表すコメントを表示することを特徴とする請求項1に記載のプログラムソース変換装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate