(57)【要約】 【課題】本発明は、COBOLコンパイラによる翻訳結果リストと翻訳前COBOLプログラムとの照合を容易にして、編集効率を上げる翻訳結果リスト出力システムを提供することを課題とする。【解決手段】COBOLプログラム１１をCOBOLコンパイラ１２に入力して翻訳結果リスト１３を出力する翻訳結果リスト出力システムであって、前記COBOLコンパイラ１２は、前記COBOLプログラム１１に対応する翻訳結果リスト１３の行の行情報を格納する行情報テーブル２１と、前記行情報に対応してプログラム言語の属性毎にCOBOLプログラムのソース情報を格納するソース情報テーブル２２と、エラー情報を格納するエラー情報テーブル２３と、前記ソース情報の視認性を上げるための変換テーブル２４とを備えることを特徴とする。【選択図】図１
2007164289.tif 000002
【特許請求の範囲】
【請求項１】
コボルソースプログラムをコボルコンパイラに入力して翻訳結果リストを出力し、出力された翻訳結果に基づいて前記コボルソースプログラムを編集する翻訳結果リスト出力システムであって、
前記コボルコンパイラは、前記コボルソースプログラムに対応する翻訳結果リストの行の行情報を格納する行情報テーブルと、前記行情報に対応してプログラム言語の属性毎にソースプログラムのソース情報を格納するソース情報テーブルと、エラー情報を格納するエラー情報テーブルと、前記ソース情報の視認性を上げるための変換テーブルとを備える
ことを特徴とする翻訳結果リスト出力システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コボルソースプログラムをコボルコンパイラに入力して翻訳結果リストを出力する翻訳結果リスト出力システムに関するものである。
【背景技術】
【０００２】
従来、コボル（以下、「COBOL」とも記す。）言語によるソースプログラムをコンパイラで翻訳した翻訳結果リストは、通常テキスト形式で出力される。開発者等は、COBOLソースプログラムがコンパイラで翻訳されてエラーが発生した場合は、翻訳結果リストとCOBOLソースプログラムとを照合しながら、どの個所がエラーの原因となったかを特定して修正していた。
【０００３】
図５は、従来のCOBOLソースプログラムの翻訳結果リストを示す図である。COBOLソースプログラムの翻訳結果リスト５１と対応する翻訳前COBOLソースプログラム５２ａ、５２ｂとを示している。翻訳時にエラーが発生した場合、翻訳結果リスト１の該当する行に、エラーメッセージが出力される。開発者等がエラー発生原因を除去するためには、翻訳結果リスト５１と翻訳前COBOLソースプログラム５２ａ、５２ｂを照合し、翻訳前COBOLソースプログラム５２ａ、５２ｂの該当箇所を修正していた。
【０００４】
このような従来技術に対して、例えば、特許文献１では、ソースプログラムを自動並列化し自動ベクトル化するコンパイルシステムで用いられ、コンパイルの状況を正確に把握できるようにコンパイル情報を出力するコンパイル情報出力装置を提供する技術が開示されている。
また、特許文献２では、プログラム情報の機密保護や不正アクセスに対する安全性を高めるとともに、ソースプログラムやそれを説明する説明情報等のプログラム情報の出力量を可変自在とした維持管理装置を提供する技術が開示されている。
【特許文献１】特開平９−５０３７８号公報
【特許文献２】特開２０００―１８１６９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、翻訳するCOBOLプログラムが大きく、複数の登録集原文を含むような場合、翻訳結果リスト中の行番号表示と、翻訳前COBOLプログラムのファイル内行番号とは一致しない。また、原文語の置換などにより、翻訳結果リストと翻訳前COBOLプログラムとの表示が異なる場合が多く、翻訳結果リストと翻訳前COBOLプログラムとの照合は、困難な作業となる場合が多い。また、翻訳結果リストはテキストファイルのため、一見しただけでは、COBOLの予約語と利用者語の区別が付かず、翻訳結果リストの解析に時間を要していた。
【０００６】
上記問題点に鑑み、本発明は、COBOLコンパイラによる翻訳結果リストと翻訳前COBOLプログラムとの照合を容易にして、編集効率を上げる翻訳結果リスト出力システムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、コボルソースプログラムをコボルコンパイラに入力して翻訳結果リストを出力し、出力された翻訳結果に基づいて前記コボルソースプログラムを編集する翻訳結果リスト出力システムであって、前記コボルコンパイラは、前記コボルソースプログラムに対応する翻訳結果リストの行の行情報を格納する行情報テーブルと、前記行情報に対応してプログラム言語の属性毎にソースプログラムのソース情報を格納するソース情報テーブルと、エラー情報を格納するエラー情報テーブルと、前記ソース情報の視認性を上げるための変換テーブルとを備えることを特徴とする翻訳結果リスト出力システムである。
【発明の効果】
【０００８】
本発明により、COBOLコンパイラによる翻訳結果リストと翻訳前COBOLソースプログラムとの照合が容易になると共に、COBOLソースプログラムの編集効率を上げる翻訳結果リスト出力システムを提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下に、本発明を実施するための最良の形態を図面に基づいて説明する。
【００１０】
図１は、本発明の実施の形態の一例を示すシステム構成図である。本システムは、翻訳前のCOBOLソースプログラム１１（以下、「ソースプログラム」ともいう）と、ソースプログラム１１を翻訳するCOBOLコンパイラ１２と、翻訳結果を格納する翻訳結果リスト１３と、翻訳結果リストの結果を参照しながらソースプログラム１１を編集するエディタ１７とから構成される。
図１に示すように、翻訳前のCOBOLソースプログラム１１をCOBOLコンパイラ１２に入力すると、COBOLコンパイラ１２は翻訳前COBOLソースプログラム１１を翻訳し、出力結果の一つとして、html形式の翻訳結果リスト１３を出力する。翻訳結果リスト表示結果１５は、COBOLコンパイラ１２が出力する翻訳結果リスト１３の一例である。開発者等は、この翻訳結果リスト表示結果１５を参照しながら、エディタを起動して、ソースプログラム１１のエラー箇所を編集する。
【００１１】
従来は、例えば、翻訳結果リスト表示結果１５の１１行目の「COPY」文に指定する登録集原文名は、例えば、「CPY01」というようにファイル名だけで指定することが多く、絶対パス名はCOBOLコンパイラ１２により翻訳時に翻訳されて結果のみ出力されるため、翻訳結果リスト表示１５の該当コーディング部分だけを見ても、ソースプログラム１１におけるどの登録集原文ファイルが展開されたものか判別することに時間を要していた。
【００１２】
そこで、本発明の翻訳結果リスト表示１５では、登録集ファイル１８のhtmlタグに、COBOLコンパイラ１２が翻訳した登録集原文へのリンクを設定することで、翻訳結果リストの該当位置を選択した場合に、COBOLコンパイラ１２に備えられる各種テーブルにより、瞬時にソースプログラムの該当箇所をエディタで開くことができる。また、翻訳結果リスト表示１５では、ソースプログラム１１の予約語やコメント行などを、文字色を変えて出力するが、これも前記各種テーブルの一つであるhtmlタグ変換テーブルを用いることにより、各文字列のfont colorを、文字列の種別により変更して視認性を向上することが可能になる。
【００１３】
図２は、翻訳結果リストに埋め込むhtmlタグを制御するための各種情報テーブルを示す図である。COBOLコンパイラ１２は、ソースプログラム１１の翻訳結果に基づいて、COBOLコンパイラ１２内部に、各行の行情報を格納する行情報テーブル２１、ソースプログラム１１へのリンク情報等を格納するソース情報テーブル２２、エラー情報を格納するエラー情報テーブル２３を作成して備える。そして、翻訳結果リスト１５を作成する際に、それぞれ関連する情報がテーブル内のアドレスポインタでリンクされる。
【００１４】
行情報テーブル２１における「行」は翻訳結果リスト表示１５の行に対応している。行情報テーブル２１は各行の行情報を格納している。例えば、一行目の行情報では、この行が「Normal」行であり、例えばCOBOLプログラムにおける言語が記述された行であることを意味し、「Copyネスト情報」が「NULL」であることからファイルの移動を伴わず、「エラー情報ポインタ」が「NULL」であることからエラーの発生を伴わないことがわかる。さらに、「ソーステーブルポインタ」にはソース情報テーブル２２のアドレスが格納されており、このアドレスにより、ソース情報テーブル２２へリンクされる。同様にエラー情報ポインタにアドレスが格納されている場合は、エラー情報テーブル２３にリンクされる。
【００１５】
ソース情報テーブル２２には、さらに詳細に当該行の情報が格納されている。例えば、行情報テーブル２１の１行目に対応して、ソース情報テーブル２２では、カラム１０バイト目からは予約語である「IDENTIFICATION」、２６バイト目からは「DIVISION」が文字列として格納される。また、例えば、ソース情報テーブル２２のリンク情報にファイル名が格納されているときは、html変換テーブル２４を参照することにより、原文、即ち、ソースプログラム１１の対応する箇所へのリンクが可能になる。
【００１６】
エラー情報テーブル２３には、エラーが発生したファイル名及びエラー番号と共に、当該ファイル内における行番号、及び翻訳結果リスト表示１５の当該行におけるエラー表示のカラム開始バイトが格納されている。
html変換テーブル２４には、翻訳結果リスト表示１５に表示する語の種別毎の色情報や、原文へのリンクを実行させるリンク命令等のhtmlタグが格納されており、ソース情報テーブル２２内の情報により、各々対応するhtmlタグが参照される。
このようにCOBOLコンパイラ１２の翻訳結果リスト１３の生成時に、行情報テーブル２１及びソース情報テーブル２２の情報に基づいて、エラー情報テーブル２３及びhtmlタグ変換テーブル２４を適宜参照して、文字列の前後に必要なhtmlタグを挿入することで、htmlの翻訳結果リスト１３が作成されて出力される。
【００１７】
図３は、翻訳結果リストにhtmlタグを埋め込む処理をフローチャートで示した図である。
翻訳結果リスト１３へソースプログラム１１の翻訳結果を出力する処理では、まず、行情報テーブル２１を検索し、行情報があるか否かを判定する（ステップ３０１）。
行情報がある場合には、翻訳結果リストへの出力情報を編集するためのCOBOLコンパイラ１２内部の出力バッファと、翻訳結果リスト１３へ出力する文字列の最終カラム位置を管理するエリアを初期化した後、行情報でhtmlタグ変換テーブル２４を検索し、対応するhtmlタグを出力バッファに出力する（ステップ３０２）。ここで、最終カラム位置を管理するエリアとは、ソース情報テーブル２２に示す文字列に記述する文字の最終カラム位置を管理するエリアをいう。文字列の開始カラムは文字列毎にカラムのバイトが指定されているため、文字列の最終カラムから次の文字列までは当該文字列の開始カラムのバイトに依存する。従って、文字列の最終カラムを管理することにより、次の文字列の最初のカラムまでをダミー等で埋める必要がなくなる。
【００１８】
行情報が無い場合には、呼び出し元へ戻る。次に行情報テーブル中のソーステーブルポインタがあるかどうかを判定し（ステップ３０３）、ソーステーブルポインタがある場合には、そのアドレスポインタを使用してソース情報テーブル２２を参照する（ステップ３０４）。
次に、ソース情報テーブル２２の最終カラム位置から次の文字列の開始カラムまでの差分カラム数分の空白のコードを、出力バッファに設定する（ステップ３０５）。
次に、ソースプログラム１１の文字列を出力する前に、ソース情報テーブル２２中の語の種別を元にhtmlタグ変換テーブル２４を検索し、htmlタグを出力バッファに設定し、また、リンク情報が設定されている場合には、リンクタグを出力バッファに設定する（ステップ３０６）。
【００１９】
次に、ソースプログラム１１の文字列を出力バッファに出力し、htmlの終了タグを出力バッファに出力し、終端カラム位置を更新する（ステップ３０７）。
次に、次のソース情報テーブルの開始カラムをポイントする（ステップ３０８）。
次に、行種別の終了タグをバッファに出力して、編集後の１行分のソース情報を、翻訳結果リストに出力する（ステップ３０９）。
その行にエラー情報があれば、メッセージ番号に対して、ソースプログラム１１におけるエラーしたファイルへのリンクを設定するhtmlタグを出力し、エラーメッセージテキストを出力する（ステップ３１０）。
【００２０】
次に、次の行情報をポイントし（ステップ３１１）行情報がなくなるまでステップ３０１〜ステップ３１１の操作を繰り返す。
このように本発明の翻訳結果リスト表示により、エラー表示箇所を容易に特定することができ、COBOLプログラムの編集を容易にすることができるようになる。
【００２１】
図４に、翻訳結果リストのhtml構文の一例を示す図である。
図２に示す行情報テーブル２１及びソース情報テーブル３２に記述された内容を具体的に翻訳結果リストとして出力するためのhtml構文である。このようにhtml構文としたことにより、文字列を色別に表示し、エラーファイルを特定してソースファイルにリンクすることが可能になる。
【００２２】
以上により、翻訳結果リスト中の登録集原文名やエラー発生行に翻訳前COBOLソースプログラムとの関連付けを行うことにより、翻訳結果リストの特定の行選択時に、該当する翻訳前COBOLソースプログラムを瞬時にエディタで開示することができる。
また、翻訳結果リスト中のCOBOL言語における予約語、定数とそれ以外のCOBOL言語、さらに、コメント行、翻訳指令行、デバッグ行、無効行について各々文字の色を変更するにより、翻訳結果リスト中の各語の識別を容易することができる。
また、翻訳結果リストの視認性が向上することにより、電子データでプログラムの確認が行えるようになり、紙等の資源を削減することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態の一例を示すシステム構成図である。
【図２】翻訳結果リストに埋め込むhtmlタグを制御するための情報テーブルを示す図である。
【図３】翻訳結果リストにhtmlタグを埋め込む処理をフローチャートで示した図である。
【図４】翻訳結果リストのhtml構文の一例を示す図である。
【図５】従来のCOBOLの翻訳結果リストを示す図である。
【符号の説明】
【００２４】
１１  COBOLプログラム
１２  COBOLコンパイラ
１３  翻訳結果リスト
１４  プログラムリスト
１５  翻訳結果リスト表示
１６  htmlタグ
１７  エディタ
２１  行情報テーブル
２２  ソース情報テーブル
２３  エラー情報テーブル
２４  htmlタグ変換テーブル
【図１】
2007164289.tif 000003
【図２】
2007164289.tif 000004
【図３】
2007164289.tif 000005
【図４】
2007164289.tif 000006
【図５】
2007164289.tif 000007