(57)【要約】【課題】設計者などが容易に仕様を確認できる表計算ソフトで作成した仕様書ファイルから、設計者などが効率的に確認できるソースコードを生成する。【解決手段】表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられているファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている仕様書ファイル１０を読み込む。読み込んだ仕様書ファイル１０の計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数３１０〜３４０と、生成された関数の呼出を行うメイン処理部３４０を含むプログラムを生成する。【選択図】図１３
2009223843.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムのソースコード自動生成装置であって、
表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられている表計算ファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている表計算ファイルを読み込む手段と、
前記読み込んだ表計算ファイルの計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数を生成する関数生成手段と、を有し、
前記関数生成手段によって生成された関数の呼出を行うソースコードを含むプログラムを生成することを特徴とするソースコードの自動生成装置。
【請求項２】
前記表計算ファイルに複数の計算式セルが含まれているとき、前記複数の計算式セルにそれぞれ対応する複数の関数の実行順序を、前記表計算ファイル内での前記複数の計算式セルの相対的な位置関係に基づいて定めることを特徴とする請求項１記載のソースコードの自動生成装置。
【請求項３】
前記表計算ファイルは、前記一以上の仕様記述セル、前記一以上の入力セル及び前記一以上の計算式セルが含まれている仕様定義シートと、テーブル名及びテーブルに含まれる値が記述されたテーブルシートとを有し、
前記ソースコードの自動生成装置は、
前記テーブルシートの記述に基づいて、呼び出されたときの条件に応じて前記テーブルに含まれる値を出力するテーブル関数を生成する手段をさらに備え、
前記関数生成手段は、前記テーブルを参照する関数が記述されている計算式セルについて、前記テーブル関数の呼び出しを行う関数を生成することを特徴とする請求項１または２記載のソースコードの自動生成装置。
【請求項４】
前記表計算ファイルは、外部関数の入出力パラメータを定義したパラメータ定義シートをさらに有し、
前記ソースコードの自動生成装置は、
前記パラメータ定義シートの定義に従って、前記外部関数とのインタフェースを定義する手段をさらに備え、
前記関数生成手段は、前記外部関数を呼び出す計算式が記述されている計算式セルについて、前記インタフェースを用いて前記外部関数の呼び出しを行う関数を生成することを特徴とする請求項１〜３のいずれかに記載のソースコードの自動生成装置。
【請求項５】
前記表計算ファイルは、データの入力または出力のための構造体を定義した構造体定義シートをさらに有し、
前記ソースコードの自動生成装置は、
前記構造体定義シートの定義に従って、前記プログラムの入力または出力のための構造体を定義するソースコードを生成する手段をさらに備えることを特徴とする請求項１〜４のいずれかに記載のソースコードの自動生成装置。
【請求項６】
前記計算式セルには、前記プログラム内で利用される中間的な値を算出するワークセルと、前記プログラムから出力される値を算出する出力セルとが含まれることを特徴とする請求項１〜５のいずれかに記載のソースコードの自動生成装置。
【請求項７】
コンピュータプログラムのソースコード自動生成方法であって、
表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられている表計算ファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている表計算ファイルを読み込むステップと、
前記読み込んだ表計算ファイルの計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数を生成するステップと、
前記生成された関数の呼出を行うソースコードを含むプログラムを生成するステップと、を有するソースコードの自動生成方法。
【請求項８】
コンピュータプログラムのソースコードを自動生成するためのコンピュータプログラムであって、
表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられている表計算ファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている表計算ファイルを読み込むステップと、
前記読み込んだ表計算ファイルの計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数を生成するステップと、
前記生成された関数の呼出を行うソースコードを含むプログラムを生成するステップと、をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムのソースコードを自動生成する技術に関し、特に表計算ソフトで作成した表計算ファイルからソースコードを自動生成する技術に関する。
【背景技術】
【０００２】
従来、表計算ソフトで作成した仕様書ファイルに従ってソースコードを自動生成するシステムがある（例えば特許文献１）。
【０００３】
このようなソースコードの自動生成システムを利用すれば、頻繁に仕様変更が行われるシステムにおいても、その変更内容をプログラムに容易に反映させることができる。また、金融関係の業務など、複雑な計算を必要とする業務プログラムの仕様変更をする場合、変更の内容が正しく反映されているか否かを、表計算ソフトの機能を使って事前にチェックできるので、変更作業を効率的に進めることができる。
【特許文献１】特開２００３−５８３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、自動プログラミングシステムで生成したソースコードであっても、設計者がその内容を目視で確認するときがある。例えば、表計算ソフトで作成した仕様書ファイルからソースコードを自動生成することで、仕様の確認及び実装作業を効率化できても、確認作業で手間取ってしまっては、その効果が半減してしまう。
【０００５】
また、損害保険業界では、保険規定が頻繁に改訂されたり、保険業務の知識とコンピュータプログラミングの知識の双方を兼ねた人材が少ないという事情がある。そのため、保険の業務担当者が容易に確認できる仕様書を元に、ソースコードを自動生成することで、コンピュータプログラミングの知識がなくても保険規定の改定に対して、迅速且つ正確にソースコードを修正できるようにすることが望まれている。
【０００６】
そこで、本発明の目的は、設計者などが容易に仕様を確認できる表計算ソフトで作成した仕様書ファイルから、設計者などが効率的に確認できるソースコードを生成することである。
【課題を解決するための手段】
【０００７】
本発明の一つの実施態様に従うコンピュータプログラムのソースコード自動生成装置は、表計算ソフトによって生成され、計算仕様が記述された一以上の仕様記述セル、一以上の入力セル、及び一以上の計算式セルが互いに対応付けられている表計算ファイルであって、各計算式セルには、それぞれ対応付けられている入力セルに入力された値を用い、それぞれ対応づけられている仕様記述セルに記述された仕様を実現するための計算式が記述されている表計算ファイルを読み込む手段と、前記読み込んだ表計算ファイルの計算式セルごとに、それぞれの計算式セル内に記述されている計算式に従うソースコードを含み、対応する仕様記述セルに記述された計算仕様を実現する関数を生成する関数生成手段と、を有し、前記関数生成手段によって生成された関数の呼出を行うソースコードを含むプログラムを生成する。
【０００８】
好適な実施形態では、前記表計算ファイルに複数の計算式セルが含まれているとき、前記複数の計算式セルにそれぞれ対応する複数の関数の実行順序を、前記表計算ファイル内での前記複数の計算式セルの相対的な位置関係に基づいて定めてもよい。
【０００９】
好適な実施形態では、前記表計算ファイルは、前記一以上の仕様記述セル、前記一以上の入力セル及び前記一以上の計算式セルが含まれている仕様定義シートと、テーブル名及びテーブルに含まれる値が記述されたテーブルシートとを有する。そして、前記ソースコードの自動生成装置は、前記テーブルシートの記述に基づいて、呼び出されたときの条件に応じて前記テーブルに含まれる値を出力するテーブル関数を生成する手段をさらに備え、前記関数生成手段は、前記テーブルを参照する関数が記述されている計算式セルについて、前記テーブル関数の呼び出しを行う関数を生成するようにしてもよい。
【００１０】
好適な実施形態では、前記表計算ファイルは、外部関数の入出力パラメータを定義したパラメータ定義シートをさらに有する。そして、前記ソースコードの自動生成装置は、前記パラメータ定義シートの定義に従って、前記外部関数とのインタフェースを定義する手段をさらに備え、前記関数生成手段は、前記外部関数を呼び出す計算式が記述されている計算式セルについて、前記インタフェースを用いて前記外部関数の呼び出しを行う関数を生成するようにしてもよい。
【００１１】
好適な実施形態では、前記表計算ファイルは、データの入力または出力のための構造体を定義した構造体定義シートをさらに有する。前記ソースコードの自動生成装置は、前記構造体定義シートの定義に従って、前記プログラムの入力または出力のための構造体を定義するソースコードを生成する手段をさらに備えていてもよい。
【００１２】
好適な実施形態では、前記計算式セルには、前記プログラム内で利用される中間的な値を算出するワークセルと、前記プログラムから出力される値を算出する出力セルとが含まれていてもよい。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態に係る自動プログラミングシステムについて、図面を参照して説明する。
【００１４】
図１は、本実施形態に係る自動プログラミングシステムの機能構成図である。本システムは、ソースコード自動生成装置１を備える。ソースコード自動生成装置１は、同図に示すように、所定のフォーマットで記述された仕様書ファイル１０を読み込んで、プログラムのソースコード５１を自動生成する。ここで生成されるソースコード５１は、別に生成されたメインプログラムであるソースコード５３から呼び出されるサブルーチンである。ソースコード５３は、複数のソースコード５１を組み合わせて、１つの保険料率を計算するための上位プログラムである。本システムは、さらに、コンパイラ・リンカ５を備える。コンパイラ・リンカ５は、ソースコード５１，５３のコンパイル及びリンクを行って、それぞれソースコード５１，５３に対応する実行モジュール６１，６３を生成する。
【００１５】
この自動プログラミングシステムは、例えば、プロセッサ及びメモリを備えた本体と、入出力装置を備えた汎用的なコンピュータシステムによって実現され、以下に説明するソースコード自動生成装置１内の個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００１６】
まず、仕様書ファイル１０について説明する。本実施形態に係る仕様書ファイル１０は、表計算ソフトによって生成されたファイルである。すなわち、仕様書ファイル１０は、複数のシートを有し、各シートには多数のセルが含まれている。そして、仕様書ファイル１０には、文章で仕様が記述されているとともに、その仕様が表計算ソフトの関数などを用いて実現されている。
【００１７】
図２〜図７は、仕様書ファイル１０の各シートを示す。
【００１８】
図２は、仕様書シート１１を示す。仕様書シート１１には、プログラムとして実現したい仕様が記載される。すなわち、仕様書シート１１は、計算仕様列１１１と、名前定義列１１２と、入力列１１３と、ワーク列１１４と、出力列１１５と、エラー時遷移列１１６と、定数列１１７とを備える。ここで、ソースコードを生成したい仕様の全体が、複数のステップからなるときは、ステップごとの仕様が分割して記載される。
【００１９】
計算仕様列１１１は、文章で記述された計算仕様の入力領域である。設計者または要件定義者は、計算仕様列１１１のセル内に所望の仕様をテキストで記載する。また、計算仕様列１１１には、各計算仕様のステップ番号も記載されている。
【００２０】
入力列１１３は、計算仕様列１１１に記述された仕様に係る入力を受け付けるセルの列である。
【００２１】
ワーク列１１４は、生成されるプログラム内で利用される中間的な値を算出するワークセルの列である。ワークセルには、計算仕様列１１１に記述された仕様に対応する、表計算ソフトの関数などを用いた計算式が記述される。
【００２２】
出力列１１５は、生成されるプログラムから出力される値を算出する出力セルの列である。出力セルには、計算仕様列１１１に記述された仕様に対応する計算式が記述される。
【００２３】
エラー時遷移列１１６は、ワークセルまたは出力セルに記述された計算式の実行結果がエラーであった場合に遷移する遷移先のステップを記述する列である。
【００２４】
ワーク列１１４のワークセル及び出力列１１５の出力セルには、同一ステップ内の計算仕様列１１１に記述された仕様を実現するための計算式が記載される。その計算式は、同一ステップ内の入力列１１３の入力セルの値を利用する。出力セルについては、同一ステップまたは前段のステップのワークセルの計算結果を利用する場合もある。ここで、ワークセル及び出力セルに記載される計算式は、表計算ソフトが予め用意している関数を用いた式でもよいし、あるいは外部関数の呼出しでもよい。表計算ソフトが予め用意している関数は、例えば、条件分岐のためのＩｆ関数、およびテーブルを参照するためのＬｏｏｋｕｐ関数など、種々のものがある。
【００２５】
図３は、テーブル内容シート１２を示す。テーブル内容シート１２には、生成されるプログラムにおいて使用されるテーブル内容が定義される。同図に示すテーブル内容としては、ソースプログラム内で使用されるコード１２１と、そのコードの内容１２２とが含まれている。
【００２６】
図４は、テーブル定義シート１３を示す。テーブル定義シート１３には、テーブル名称１３１に対して、テーブルＩＤ１３２及びプログラムＩＤ１３３が定義される。本システムでは、テーブルは、テーブルの値を出力するテーブル関数として実装される。つまり、本システムは、各テーブルのテーブル関数のソースコードを、プログラムＩＤ１３３で定義された名称で生成する。各テーブルの値は、テーブル内容シート１２で定義されている。
【００２７】
図５は、項目定義シート１４を示す。項目定義シート１４は、生成されるソースコードにおいて変数などとして使用される項目が定義される。同図の例では、例えば、項目名称１４１に対して、項目ＩＤ１４２、属性１４３及び桁数１４４が定義される。
【００２８】
図６は、入力構造体定義シート１５を示す。入力構造体定義シート１５は、生成されるプログラムの入力データを格納するための構造体の定義情報が記載されている。出力構造体定義シートは、入力構造体定義シート１５と同一の構成であり、生成されるプログラムの出力データを格納するための構造体の定義情報が記載されている。
【００２９】
図７は、パラメータ定義シート１６を示す。パラメータ定義シート１６は、外部関数を呼び出す際の、外部関数とのインタフェースに関するパラメータを定義する。すなわち、パラメータ定義シート１６には、呼出元で使用しているパラメータと呼出先で使用するパラメータとを対応付けている。同図の例では、呼び出し元の区分１６１，項目名１６２及び項目ＩＤ１６３と、呼出先の外部関数における区分１６４，項目名１６５及び項目ＩＤ１６６とが対応付けられている。区分１６１，１６４は、項目ＩＤ１６３，１６６に示す項目が入力「Ｉ」、ワーク「Ｗ」、出力「Ｏ」の何れの項目であるかの区分を示す。
【００３０】
このパラメータ定義シート１６によれば、外部関数が呼び出されるときに、区分１６１が「Ｉ」の呼出元項目ＩＤ１６３に示すパラメータに値がセットされていると、外部関数では項目名１６５に示すパラメータでその値を受け取ることが定義されている。また、外部関数の処理結果が、区分１６４「Ｏ」の呼出先項目ＩＤ１６６に示すパラメータにセットされると、呼出元では、呼出元項目ＩＤ１６３に示すパラメータでその値を受け取ることが定義されている。
【００３１】
設計者等は、表計算ソフトを用いて、上述の仕様書ファイル１０を生成する。この仕様書ファイル１０には、仕様書シート１１にテキストで仕様を記述した計算仕様列１１１があるので、人間が読んでも計算仕様の内容を容易に理解することができる。従って、コンピュータにあまり詳しくないユーザであっても、計算仕様列１１１によって仕様の確認が容易である。さらに、計算仕様列１１１に記載されている仕様が、入力列１１３，ワーク列１１４及び出力列１１５に、表計算ソフトの機能を利用して実現されているので、その場で実現されている機能が仕様通りであるか否かのチェックを容易にすることができる。
以下に説明するように、この仕様書ファイル１０に基づいて自動的にソースコードが生成されるので、計算仕様列１１１に記載された仕様が確実にソースコードに反映されることになる。
【００３２】
次に、ソースコード自動生成装置１について説明する。まず、ソースコード自動生成装置１は、図８及び図９に示すインタフェース画面２００を提供する。
【００３３】
図８を参照すると、インタフェース画面２００は、処理区分の入力領域２１０と、入力ファイルの選択領域２２０と、入力対象シートの選択領域２３０と、出力フォルダの選択領域２４０とを有する。
【００３４】
処理区分の入力領域２１０は、「シート別出力処理」と、「共通テーブル処理」との選択を受け付ける。図８には、「シート別出力処理」が選択された場合のインタフェース画面２００が示されている。
【００３５】
入力ファイルの選択領域２２０において、オペレータがソースコードを生成するための対象となる仕様書ファイルを選択する。
【００３６】
入力対象シートの選択領域２３０において、オペレータが入力ファイルの選択領域２２０で選択したファイルの中から、入力対象とするシートを選択する。図８の例では、入力対象シートとして、仕様書シート１１が選択されている。入力対象シートの選択領域２３０には、さらに、出力ＩＤ２３０１、開始行２３０２，入力列２３０３、ワーク列２３０４，出力列２３０５、定数列２３０７、エラー時遷移列２３０８、遷移先列２３０９、入力データの構造体ＩＤ２３１０、ワークデータの構造体ＩＤ２３１１、及び出力データの構造体ＩＤ２３１２の各入力領域が設けられている。
【００３７】
出力ＩＤ２３０１には、ソースコード自動生成装置１が生成するソースコードのプログラムＩＤが設定される。
【００３８】
開始行２３０２は、ソースコード自動生成装置１が仕様書シート１１の解析を開始する行が設定される。
【００３９】
入力列２３０３、ワーク列２３０４，出力列２３０５、定数列２３０７及びエラー時遷移列２３０８には、選択されたシート（仕様書シート１１）における、入力列１１３、ワーク列１１４、出力列１１５、エラー時遷移列１１６及び定数列１１７がそれぞれ割り当てられている列番号が入力される。
【００４０】
遷移先列２３０９は、選択されたシート（仕様書シート１１）における、計算仕様列１１１のステップ名が割り当てられている列番号が入力される。
【００４１】
入力データの構造体ＩＤ２３１０、ワークデータの構造体ＩＤ２３１１、及び出力データの構造体ＩＤ２３１２は、入力データ、ワークデータ及び出力データの構造体定義を使用する場合に、それぞれの構造体ＩＤが入力される。
【００４２】
出力フォルダの選択領域２４０には、ソースコード自動生成装置１が生成するソースコードファイルを格納するフォルダが入力される。
【００４３】
図９は、処理区分の入力領域２１０において、「共通テーブル処理」が選択された場合のインタフェース画面２００を示す。この場合、インタフェース画面２００には、対象表定義選択領域２５０が表示される。対象表定義選択領域２５０では、入力ファイルの選択領域２２０で入力ファイルとして選択された表計算ファイルの中のテーブル定義シート１３で定義されているテーブルの中から、テーブル関数のソースコードを生成する対象となるテーブルが選択される。本実施形態では、同図に示すように、対象表定義選択領域２５０のプルダウンリストには、選択可能なテーブルＩＤ１３２（“Ｔ＿ＳＨＵＲＵＩ”及び“Ｔ＿ＳＨＵＭＯＫＵ”）が表示される。尚、対照表定義選択領域２５０のプルダウンリスト上に、テーブルＩＤ１３２を表示する際には、表計算ソフトが備える機能によって、テーブル定義シート１３内の表に対して、プログラムから参照可能なオブジェクト名称(例.「TABLE_TEIGI」)を予め付与しておき、プルダウンを生成するプログラムでは、当該オブジェクト(例.「TABLE_TEIGI」)から、テーブルＩＤ１３２に対応する値を取得するようにしても良い。
【００４４】
なお、インタフェース画面２００の各項目に入力された値は、所定のテキストファイルに保存しておくことができる。それ以降、同じ構造の仕様書ファイル１０を対象とする際は、このテキストファイルを利用して、各項目へのユーザ入力を省略することができる。
【００４５】
次に、本実施形態に係る自動プログラミングシステムにおいて、ソースコード自動生成処理の手順について、図１０〜図１２のフローチャートを用いて説明する。
【００４６】
図１０は、テーブル関数の生成処理手順を示すフローチャートである。
【００４７】
まず、ソースコード自動生成装置１は、インタフェース画面２００の入力ファイル選択領域２２０において指定された入力ファイルをオープンする（Ｓ１１）。さらにソースコード自動生成装置１は、この入力ファイルのうち、テーブル内容シート１２及びテーブル定義シート１３を読み込む（Ｓ１３）。そして、インタフェース画面２００の対象表定義選択領域２５０において指定されたテーブルについて、読み込んだテーブル定義シート１３のテーブルＩＤ及びプログラムＩＤを取得し、読み込んだテーブル内容シート１２に記述されたコードなどのテーブルを構成する値に従って、テーブル関数のソースコードを生成する（Ｓ１５）。例えば、対象表定義選択領域２５０において選択されたテーブルＩＤ１３２のテーブルの値をテーブル内容シート１２から取得して、プログラムＩＤ１３３を関数名とするテーブル関数のソースコードを生成する。ここで生成されるテーブル関数は、例えば、呼び出されたときのパラメータとしてコードを受け取ると、そのコードに対応するテーブル内の値を所定の構造体にセットするようにしてもよい。構造体を使用する場合は、ソースコード自動生成装置１は、構造体を定義するためのソースコードも生成する。「尚、テーブルＩＤ１３２のテーブルの値を、テーブル内容シート１２から取得する際には、表計算ソフトが備える機能によって、テーブル内容シート１２内の表に対して、テーブル名称１３１に対応するよう、プログラムから参照可能なオブジェクト名称(例.「保険種目」「保険種類」)を予め付与しておき、テーブルＩＤ１３２（例.「T_SHURUI」）のテーブルの値をテーブル内容シート１２から取得するプログラムでは、当該テーブルＩＤ１３２(例.「T_SHURUI」)に対応するオブジェクト(例.「保険種類」)から、テーブルの値を取得するようにしても良い。
【００４８】
次に、図１１は、ソースコード自動生成の全体の処理手順を示すフローチャートである。
【００４９】
まず、ソースコード自動生成装置１は、インタフェース画面２００の入力ファイル選択領域２２０において指定された入力ファイルをオープンする（Ｓ２０）。そして、ソースコード自動生成装置１は、ここでオープンした入力ファイルのうち、入力構造体定義シート１５及び出力構造体シートを読み込んで、入力構造体及び出力構造体を定義するためのソースコードを生成する（Ｓ２２）。
【００５０】
次に、ソースコード自動生成装置１は、テーブル定義シート１３及び項目定義シート１４を読み込む（Ｓ２４）。そして、インタフェース画面２００の出力対象シート選択領域２３０で選択されたシートの、開始行２３０２で指定された行以降のワーク列２３０４及び出力列２３０５のワークセル及び出力セルについて、行番号の若い順に、行番号が等しいときには、列番号の若い順に以下の処理を行う。まず、ソースコード自動生成装置１は、各セルに計算式が記載されているか否かを判定する（Ｓ２６）。そして、計算式が記載されていた場合は（Ｓ２６：Ｙｅｓ）、そこに記載されている式の内容を解析する（Ｓ２７）。この式の解析は、例えば、以下のようにして行う。すなわち、各セルに記載されている文字列から、予め定められている関数の文字列を検出する。そして、検出された関数ごとの、それぞれのフォーマットに従って、各セルに記載されている文字列から、その関数のパラメータとして指定されている値を特定する。
【００５１】
つぎに、ステップＳ２７の解析結果に基づいて、ソースコードの生成を行う（Ｓ２８）。この処理の詳細については、次に説明する。
【００５２】
そして、ソースコード自動生成装置１は、ステップＳ２６〜Ｓ２８を、すべてのワークセル及び出力セルに適用する（Ｓ３０）。
【００５３】
なお、ソースコード自動生成装置１は、プログラミング言語の種別に応じて、既に読み込んでいるテーブル定義シート１３及び項目定義シート１４を参照して、必要な宣言部あるいは定義部を適宜生成する。
【００５４】
図１２は、ソースコードの生成処理の詳細な手順を示すフローチャートである。
【００５５】
まず、ソースコード自動生成装置１は、ステップＳ２７の解析により検出された関数が、予め表計算ソフトが提供する関数であるか、あるいは、外部関数の呼出であるかを判定する（Ｓ３２）。例えば、外部関数の呼出形式（例えば、ｃａｌｌ＿ｄｌｌ（））を予め定めておき、ソースコード自動生成装置１は、検出された関数がそれに合致するか否によって判定するようにしてもよい。なお、外部関数は、ソースコード自動生成装置１を用いて、別途作成しておいたプログラムであってもよい。
【００５６】
セル内の関数が表計算ソフトの関数であるときは（Ｓ３２：表計算関数）、ソースコード自動生成装置１は、その関数の種別を判別し、その種別に応じたソースコードを生成する（Ｓ３４）。例えば、関数ごとに、予めソースコードへの変換手順が定義されていて、ソースコード自動生成装置１は、その定義されている変換手順に従って、セル内の関数からソースコードを生成する。ソースコードへの変換手順には、例えば、関数名の文字列（例えばｖｌｏｏｋｕｐ）に続く左カッコ“（”と、“，”の間に挟まれている文字列を、第１引数として設定する、などがある。ここで生成されるソースコードには、ステップＳ２７の解析により検出されたパラメータがそれぞれ適宜使用される。また、既に読み込んでいるテーブル定義シート１３及び項目定義シート１４を参照して、日本語で記述されている名称は、項目定義シート１４（図５参照）を用いてソースコードで使用可能なＩＤに変換されて使用される。例えば、Ｉｆ関数であれば、パラメータに示す条件の判定を行うソースコードが生成され、Ｌｏｏｋｕｐ関数であれば、パラメータに示すテーブルに対応する関数の呼出を行うソースコードが生成される。
【００５７】
一方、セル内の関数が外部関数呼出であるときは（Ｓ３２：外部関数呼出）、ソースコード自動生成装置１は、既に読み込んでいるパラメータ定義シート１６に基づいて、外部関数を呼び出すときのパラメータを選択するための関数を生成する（Ｓ３６）。例えば、パラメータ定義シート１６には、呼出元と呼出先のパラメータの組が複数登録されている。ここで生成されるパラメータ選択関数は、呼出元と呼出先のパラメータの組のいずれか一つを選択するための関数である。
【００５８】
このパラメータ選択関数を用いて選択したパラメータの組を用いて、外部関数の呼び出しを行うソースコードを生成する（Ｓ３８）。これにより、外部関数に必要なデータを渡し、その関数の実行結果を取得するソースコードが生成できる。
【００５９】
ここで、生成されるソースコードは、セルごとに関数化し、メイン処理部からそれぞれの関数を呼び出す構成としてもよい。このとき、各関数の実行順序は、セル同士の相対的な位置関係に応じて定めてもよい。例えば、各関数の実行順序は、各セルの行番号が若い順としてもよい。
【００６０】
このときの仕様書ファイル１０とソースコード３００との対応関係の一例を図１３に示す。すなわち、仕様書シート１１のワーク列１１４及び出力列１１５の、ワークセル及び出力セルに記載されている計算式に対応する関数３１０〜３３０がそれぞれ生成される。そして、メイン処理部３４０が、それらの関数をワークセル及び出力セルの行番号が若い順に、行番号が等しいときには、列番号の若い順に呼び出すようになっている。
【００６１】
このように、ソースコードを仕様書ファイルのセルごとに関数化することにより、仕様書ファイルの記述とソースコードの構成が対応するため、設計者が目視でソースコードを確認するときに理解しやすい。
【００６２】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施形態に係る自動プログラミングシステムの機能構成図である。
【図２】仕様書ファイル中の仕様書シートを示す。
【図３】仕様書ファイル中のテーブル内容テーブル内容シートを示す。
【図４】仕様書ファイル中のテーブル定義シートを示す。
【図５】仕様書ファイル中の項目定義シートを示す。
【図６】仕様書ファイル中の入力構造体定義シートを示す。
【図７】仕様書ファイル中のパラメータ定義シートを示す。
【図８】「シート別出力処理」が選択された場合のインタフェース画面を示す。
【図９】「共通テーブル処理」が選択された場合のインタフェース画面を示す。
【図１０】テーブル関数の生成処理手順を示すフローチャートである。
【図１１】ソースコード自動生成の全体の処理手順を示すフローチャートである。
【図１２】ソースコードの生成処理の詳細な手順を示すフローチャートである。
【図１３】仕様書シートとソースコードの対応の一例を示す。
【符号の説明】
【００６４】
１…ソースコード自動生成装置、１０…仕様書ファイル、１１…仕様書シート、１２…テーブル内容シート、１３…テーブル定義シート、１４…項目定義シート、１５…入力構造体定義シート、１６…パラメータ定義シート、２００…インタフェース画面、３００…ソースコード。
【図１】
2009223843.tif 000003
【図２】
2009223843.tif 000004
【図３】
2009223843.tif 000005
【図４】
2009223843.tif 000006
【図５】
2009223843.tif 000007
【図６】
2009223843.tif 000008
【図７】
2009223843.tif 000009
【図８】
2009223843.tif 000010
【図９】
2009223843.tif 000011
【図１０】
2009223843.tif 000012
【図１１】
2009223843.tif 000013
【図１２】
2009223843.tif 000014
【図１３】
2009223843.tif 000015