(57)【要約】【課題】ユーザのニーズに合わせてソースプログラムを自動生成することができるようにする。【解決手段】各記述欄にアドレスが与えられている設計情報フォーマット２０に記述された設計情報を取得する手段１０と、テンプレート４０に記述されたテンプレート情報を取得する手段１１と、自動生成しようとするソースプログラム７０の記述言語により規定されている所定のルールに従って上記テンプレート情報を書き換えて、上記ソースプログラム７０のスクリプト６０を生成する手段１２と、上記生成したスクリプト６０に上記設計情報を上記アドレスに基づいて埋め込んでソースプログラム７０を自動生成する手段１３とを設けることにより、上記アドレスにより設計情報を特定してスクリプト６０を生成することができるようにして、ソースプログラム７０を生成する際の制約を可及的に低減させるようにする。【選択図】      図１
2004362442.tif 000002
【特許請求の範囲】
【請求項１】
所定の言語により記述されるソースプログラムを自動生成するプログラム自動生成装置であって、
上記ソースプログラムのスクリプトに埋め込まれる設計情報をユーザに記述させるようにするための設計情報フォーマットを提供する設計情報フォーマット提供手段と、
上記設計情報フォーマット提供手段により提供された設計情報フォーマットに記述された設計情報を、その所在を表すアドレス情報とともに取得する設計情報取得手段と、
上記設計情報取得手段により取得された設計情報を、上記アドレス情報に基づいて上記ソースプログラムのスクリプトに埋め込むようにするためのテンプレート情報を、上記ソースプログラムのスクリプトの一部を使用してユーザに記述させるようにするためのテンプレートを提供するテンプレート提供手段と、
上記テンプレート提供手段により提供されたテンプレートに記述されたテンプレート情報を取得するテンプレート情報取得手段と、
上記テンプレート情報取得手段により取得されたテンプレート情報を、上記所定の言語で解釈されるように加工して、上記ソースプログラムのスクリプトを生成するスクリプト生成手段と、
上記スクリプト生成手段により生成されたスクリプトに、上記設計情報取得手段により取得された設計情報を、上記アドレス情報に基づいて埋め込んで、上記ソースプログラムを生成するソースプログラム生成手段とを有することを特徴とするプログラム自動生成装置。
【請求項２】
上記設計情報フォーマット提供手段は、上記設計情報を記述するための記述欄に上記アドレス情報が付与された表形式の設計情報フォーマットを表示装置に表示し、
上記設計情報取得手段は、上記設計情報フォーマット提供手段によって表示された設計情報フォーマットの記述欄に記述された設計情報を取得することを特徴とする請求項１に記載のプログラム自動生成装置。
【請求項３】
上記テンプレート提供手段は、上記テンプレートを表示装置に表示し、
上記テンプレート情報取得手段は、上記設計情報フォーマット提供手段によって表示されたテンプレートに記述されたテンプレート情報を取得することを特徴とする請求項１または２に記載のプログラム自動生成装置。
【請求項４】
上記設計情報は、上記ソースプログラムのパラメータを含むことを特徴とする請求項１〜３の何れか１項に記載のプログラム自動生成装置。
【請求項５】
上記テンプレート情報は、上記アドレス情報に基づいて上記設計情報を検索するようにするための情報を含むことを特徴とする請求項１〜４の何れか１項に記載のプログラム自動生成装置。
【請求項６】
所定の言語により記述されるソースプログラムを自動生成するプログラム自動生成方法であって、
上記ソースプログラムのスクリプトに埋め込まれる設計情報をユーザに記述させるようにするための設計情報フォーマットを提供する設計情報フォーマット提供処理と、
上記設計情報フォーマット提供処理により提供された設計情報フォーマットに記述された設計情報を、その所在を表すアドレス情報とともに取得する設計情報取得処理と、
上記設計情報取得処理により取得された設計情報を、上記アドレス情報に基づいて上記ソースプログラムのスクリプトに埋め込むようにするためのテンプレート情報を、上記ソースプログラムのスクリプトの一部を使用してユーザに記述させるようにするためのテンプレートを提供するテンプレート提供処理と、
上記テンプレート提供処理により提供されたテンプレートに記述されたテンプレート情報を取得するテンプレート情報取得処理と、
上記テンプレート情報取得処理により取得されたテンプレート情報を、上記所定の言語で解釈されるように加工して、上記ソースプログラムのスクリプトを生成するスクリプト生成処理と、
上記スクリプト生成処理により生成されたスクリプトに、上記設計情報取得処理により取得された設計情報を、上記アドレス情報に基づいて埋め込んで、上記ソースプログラムを生成するソースプログラム生成処理とを行うことを特徴とするプログラム自動生成方法。
【請求項７】
上記設計情報フォーマット提供処理は、上記設計情報を記述するための記述欄に上記アドレス情報が付与された表形式の設計情報フォーマットを表示装置に表示し、
上記設計情報取得処理は、上記設計情報フォーマット提供処理によって表示された設計情報フォーマットの記述欄に記述された設計情報を取得することを特徴とする請求項６に記載のプログラム自動生成方法。
【請求項８】
上記テンプレート提供処理は、上記テンプレートを表示装置に表示し、
上記テンプレート情報取得処理は、上記設計情報フォーマット提供処理によって表示されたテンプレートに記述されたテンプレート情報を取得することを特徴とする請求項６または７に記載のプログラム自動生成方法。
【請求項９】
所定の言語により記述されるソースプログラムを自動生成する処理をコンピュータに実行させるためのプログラムであって、
上記ソースプログラムのスクリプトに埋め込まれる設計情報をユーザに記述させるようにするための設計情報フォーマットを提供する設計情報フォーマット提供処理と、
上記設計情報フォーマット提供処理により提供された設計情報フォーマットに記述された設計情報を、その所在を表すアドレス情報とともに取得する設計情報取得処理と、
上記設計情報取得処理により取得された設計情報を、上記アドレス情報に基づいて上記ソースプログラムのスクリプトに埋め込むようにするためのテンプレート情報を、上記ソースプログラムのスクリプトの一部を使用してユーザに記述させるようにするためのテンプレートを提供するテンプレート提供処理と、
上記テンプレート提供処理により提供されたテンプレートに記述されたテンプレート情報を取得するテンプレート情報取得処理と、
上記テンプレート情報取得処理により取得されたテンプレート情報を、上記所定の言語で解釈されるように加工して、上記ソースプログラムのスクリプトを生成するスクリプト生成処理と、
上記スクリプト生成処理により生成されたスクリプトに、上記設計情報取得処理により取得された設計情報を、上記アドレス情報に基づいて埋め込んで、上記ソースプログラムを生成するソースプログラム生成処理とをコンピュータに実行させることを特徴とするコンピュータプログラム。
【請求項１０】
上記請求項９に記載のコンピュータプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム自動生成装置、プログラム自動生成方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体に関し、特に、ソースプログラムを自動生成するための用いて好適なものである。
【０００２】
【従来の技術】
従来から、プログラムの開発支援のために、予め設定されているテンプレート（雛型）の情報に従ってソースプログラムを自動生成するようにする技術がある（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開平９−２３１０６３号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した従来の技術では、装置内で予め設定されているフォーマットやルールの範囲内でしかテンプレートを作成することができないために、ユーザのニーズに合わせてテンプレートを変更することが困難であった。
また、プログラミングに不得手なユーザでは、ソースプログラムを自動生成する操作を行うことが困難であった。
このように、従来の技術では、ユーザのニーズに合わせてソースプログラムを自動生成することが困難であるという問題点があった。
【０００５】
本発明は、上述の問題点に鑑みてなされたものであり、ユーザのニーズに合わせてソースプログラムを自動生成することができるようにすることを目的とする。
【０００６】
【課題を解決するための手段】
本発明のプログラム自動生成装置は、所定の言語により記述されるソースプログラムを自動生成するプログラム自動生成装置であって、上記ソースプログラムのスクリプトに埋め込まれる設計情報をユーザに記述させるようにするための設計情報フォーマットを提供する設計情報フォーマット提供手段と、上記設計情報フォーマット提供手段により提供された設計情報フォーマットに記述された設計情報を、その所在を表すアドレス情報とともに取得する設計情報取得手段と、上記設計情報取得手段により取得された設計情報を、上記アドレス情報に基づいて上記ソースプログラムのスクリプトに埋め込むようにするためのテンプレート情報を、上記ソースプログラムのスクリプトの一部を使用してユーザに記述させるようにするためのテンプレートを提供するテンプレート提供手段と、上記テンプレート提供手段により提供されたテンプレートに記述されたテンプレート情報を取得するテンプレート情報取得手段と、上記テンプレート情報取得手段により取得されたテンプレート情報を、上記所定の言語で解釈されるように加工して、上記ソースプログラムのスクリプトを生成するスクリプト生成手段と、上記スクリプト生成手段により生成されたスクリプトに、上記設計情報取得手段により取得された設計情報を、上記アドレス情報に基づいて埋め込んで、上記ソースプログラムを生成するソースプログラム生成手段とを有することを特徴としている。
【０００７】
本発明のプログラム自動生成方法は、所定の言語により記述されるソースプログラムを自動生成するプログラム自動生成方法であって、上記ソースプログラムのスクリプトに埋め込まれる設計情報をユーザに記述させるようにするための設計情報フォーマットを提供する設計情報フォーマット提供処理と、上記設計情報フォーマット提供処理により提供された設計情報フォーマットに記述された設計情報を、その所在を表すアドレス情報とともに取得する設計情報取得処理と、上記設計情報取得処理により取得された設計情報を、上記アドレス情報に基づいて上記ソースプログラムのスクリプトに埋め込むようにするためのテンプレート情報を、上記ソースプログラムのスクリプトの一部を使用してユーザに記述させるようにするためのテンプレートを提供するテンプレート提供処理と、上記テンプレート提供処理により提供されたテンプレートに記述されたテンプレート情報を取得するテンプレート情報取得処理と、上記テンプレート情報取得処理により取得されたテンプレート情報を、上記所定の言語で解釈されるように加工して、上記ソースプログラムのスクリプトを生成するスクリプト生成処理と、上記スクリプト生成処理により生成されたスクリプトに、上記設計情報取得処理により取得された設計情報を、上記アドレス情報に基づいて埋め込んで、上記ソースプログラムを生成するソースプログラム生成処理とを行うことを特徴としている。
【０００８】
本発明のコンピュータプログラムは、所定の言語により記述されるソースプログラムを自動生成する処理をコンピュータに実行させるためのプログラムであって、上記ソースプログラムのスクリプトに埋め込まれる設計情報をユーザに記述させるようにするための設計情報フォーマットを提供する設計情報フォーマット提供処理と、上記設計情報フォーマット提供処理により提供された設計情報フォーマットに記述された設計情報を、その所在を表すアドレス情報とともに取得する設計情報取得処理と、上記設計情報取得処理により取得された設計情報を、上記アドレス情報に基づいて上記ソースプログラムのスクリプトに埋め込むようにするためのテンプレート情報を、上記ソースプログラムのスクリプトの一部を使用してユーザに記述させるようにするためのテンプレートを提供するテンプレート提供処理と、上記テンプレート提供処理により提供されたテンプレートに記述されたテンプレート情報を取得するテンプレート情報取得処理と、上記テンプレート情報取得処理により取得されたテンプレート情報を、上記所定の言語で解釈されるように加工して、上記ソースプログラムのスクリプトを生成するスクリプト生成処理と、上記スクリプト生成処理により生成されたスクリプトに、上記設計情報取得処理により取得された設計情報を、上記アドレス情報に基づいて埋め込んで、上記ソースプログラムを生成するソースプログラム生成処理とをコンピュータに実行させることを特徴としている。
【０００９】
本発明のコンピュータ読み取り可能な記録媒体は、上記記載のコンピュータプログラムを記録したことを特徴としている。
【００１０】
【発明の実施の形態】
次に、図面を参照しながら本発明のプログラム自動生成装置、プログラム自動生成方法、コンピュータプログラム及びコンピュータ読み取り可能な記録媒体の実施の形態について説明する。
【００１１】
図１は、本実施の形態のプログラム自動生成装置の構成の一例を示すブロック図である。
【００１２】
図１において、プログラム自動生成装置１は、入力装置２と、表示装置３と、処理装置４とを有している。
入力装置２は、キーボードやマウスなどにより構成される装置であり、ユーザにより実行される操作内容を処理装置４に伝えるようにするための装置である。
【００１３】
表示装置３は、ディスプレイなどにより構成される装置であり、処理装置４により実行された処理結果などを表示するための装置である。ユーザは、この表示装置３の表示内容を見ながら、入力装置２を操作する。
【００１４】
処理装置４は、制御部５と、設計情報格納部６と、テンプレート情報格納部７と、プログラム生成部８と、ソースプログラム格納部９とを有している。
制御部５は、入力装置２を用いてユーザにより操作された内容に基づいて、後述する設計情報とテンプレート情報とを入力し、上記入力した設計情報とテンプレート情報を、それぞれ設計情報格納部６とテンプレート情報格納部７に格納する。
【００１５】
また、制御部５は、入力装置２を用いてユーザにより選択された設計情報とテンプレート情報を、それぞれ設計情報格納部６とテンプレート情報格納部７から読み出して、プログラム生成部８に出力する。
【００１６】
さらに、制御部５は、上記出力した設計情報とテンプレート情報とに基づいてプログラム生成部８により生成されたソースプログラムの内容に基づいた表示を行う。そして、表示装置３に表示されたソースプログラムを格納する旨の指示が入力装置２を介してあった場合に、上記生成されたソースプログラムをソースプログラム格納部９に格納する。
【００１７】
ここで、図２を参照しながら、設計情報格納部６に格納される設計情報について説明する。
図２に示すように、設計情報は、所定の表計算ソフトにより与えられる設計情報フォーマット２０に記述される。
【００１８】
図２に示した例では、設計情報フォーマット２０はタスク仕様書である。この設計情報フォーマット２０には、プログラムで実行されるタスクに関する設計情報が記述される。
【００１９】
本実施の形態の設計情報フォーマット（タスク仕様書）２０に記述される設計情報の具体的な内容を説明する。
まず、タスク名称２１の記述欄には、設計情報フォーマット（タスク仕様書）２０で与えられるタスクの名称が記述される。図２に示した例では、設計情報フォーマット（タスク仕様書）２０で与えられるタスクの名称は、「第１のサンプル（図中サンプルＡ）」である。
【００２０】
また、略称２２の記述欄には、設計情報フォーマット（タスク仕様書）２０で与えられるタスクの略称が記述される。図２に示した例では、「第１のサンプル」という名称のタスクの略称は、「Ｄ１０００Ｔ」である。
【００２１】
タスク被起動・起動条件２３の欄には、設計情報フォーマット（タスク仕様書）２０で与えられるタスクが、どのようなタスクにより起動され、また、どのようなタスクを起動するものであるのが記述される。
【００２２】
すなわち、タスク被起動・起動条件２３内の被起動２３ａの記述欄に「○」が付されているタスクにより、設計情報フォーマット（タスク仕様書）２０で与えられるタスクが起動する。
【００２３】
図２に示した例では、タスク名称２３ｃの記述欄に記述されている「ユーザ指示」という名称のタスクにより、設計情報フォーマット（タスク仕様書）２０で与えられるタスクが起動される。
【００２４】
また、タスク被起動・起動条件２１内の起動２３ｂの記述欄に「○」が付されているタスクを、設計情報フォーマット（タスク仕様書）２０で与えられるタスクが起動させる。
【００２５】
図２に示した例では、タスク名称２３ｃの記述欄に記述されている「第２のサンプル（図中サンプルＢ）」という名称のタスクと、「第３のサンプル（図中サンプルＣ）」という名称のタスクを、設計情報フォーマット（タスク仕様書）２０で与えられるタスクが起動させる。
【００２６】
なお、タスク被起動・起動条件２１内の略称２３ｄの記述欄には、タスク名称２３ｃの記述欄に記述されているタスクの略称が記述される。図２に示した例では、「第２のサンプル」という名称のタスクの略称は、「Ｄ２０００Ｔ」である。また、「第３のサンプル」という名称のタスクの略称は、「Ｄ３０００Ｔ」である。
【００２７】
さらに、タスク被起動・起動条件２３内の起動要因コード２３ｅの記述欄には、タスク名称２３ｃの記述欄に記述されているタスクの起動要因コードが記述される。図２に示した例では、「ユーザ指示」という名称のタスクの起動要因コードは「１」と「２」である。
【００２８】
また、「第２のサンプル」という名称のタスクの起動要因コードは「１００」である。「第３のサンプル」という名称のタスクの起動要因コードは「２００」である。
【００２９】
この他、タスク被起動・起動条件２３内のリンケージ情報略称２３ｆの記述欄には、タスク名称２３ｃの記述欄に記述されているタスクに関連する情報の略称が記述される。また、起動タイマー名称２３ｇの記述欄には、タスク名称２３ｃの記述欄に記述されているタスクを起動する際に使用するタイマーの名称が記述される。
【００３０】
キャンセルタイマー名称２３ｈの記述欄には、タスク名称２３ｃの記述欄に記述されているタスクのタイマーをキャンセルする際のタイマーの名称が記述される。説明２３ｉの記述欄には、タスク名称２３ｃの記述欄に記述されているタスクに関して、その他必要な説明事項が記述される。
【００３１】
さらに、図２に示した設計情報フォーマット（タスク仕様書）２０で与えられるタスクの番号を記述するためのタスクナンバー（タスクＮｏ．）２４の記述欄と、処理の概要を記述するための処理概要２５の記述欄と、特記事項を記述するための特記事項２６の記述欄なども設けられている。
【００３２】
また、設計情報フォーマット（タスク仕様書）２０の各記述欄には、各設計情報の所在を表すアドレス情報が与えられている。具体的に説明すると、例えば、タスク名称２３ｃの記述欄に記述されている「第２のサンプル」には、上から７番目で左から３番目というアドレス情報が与えられている。
【００３３】
このような内容の設計情報を記述する場合、ユーザは、入力装置２に対し所定の操作を行う。これにより、制御部５は、上記所定の表計算ソフトを起動し、図２に示した設計情報フォーマット２０を示したウィンドウ３０を表示装置３に表示させる（図３を参照）。
【００３４】
ユーザは、入力装置２を操作して、表示装置３に表示された設計情報フォーマット２０に、上述した所望の設計情報を書き込み、上記書き込んだ設計情報に所定のファイル名を付して保存するように指示する。制御部５は、上記指示された内容に従って上記書き込まれた設計情報を設計情報格納部６に格納する。
【００３５】
このようにして、設計情報格納部６には、ユーザにより記述された設計情報により構成されるファイルが複数格納される。なお、上述したように、これら複数のファイルは、それぞれに付与されたファイル名により区別される。
【００３６】
次に、図４を参照しながら、テンプレート情報格納部７に格納されるテンプレート情報について説明する。
図４に示すように、テンプレート情報は、テンプレート４０に記述される情報である。なお、本実施の形態では、パール（ＰＥＲＬ）言語でソースプログラムを生成する場合を例に挙げて説明する。
【００３７】
図４に示した例では、図２に示した「第１のサンプル（サンプルＡ）」という名称のタスクにより、「第２のサンプル（サンプルＢ）」という名称のタスクを起動させる際のテンプレート情報（一部）が記述されている。
【００３８】
このテンプレート４０には、図２に示した設計情報フォーマット２０のアドレスを指定するための情報などが、パール言語に基づいてテキスト形式で記述されている。
【００３９】
具体的に説明すると、テンプレート４０の１行目から５行目には、図２に示した設計情報フォーマット２０の左から２列目の起動２３ｂの記述欄に「○」が記述されている場合、その行（図中［＄ｉ］）の左から３列目の記述欄に記述されている名称のタスクを起動することが記述されている。
【００４０】
例えば、設計情報フォーマット２０の上から７行目の起動２３ｂの記述欄には、「○」が記述されているので、その行のタスク名称２３ｃの記述欄に記述されている「第２のサンプル（サンプルＢ）」を起動することになる。
【００４１】
テンプレート情報４０の６行目には、起動２３ｂの記述欄に「○」が記述されている行の左から４列目の略称２３ｄの欄に記述されているデータを挿入することが記述されている。
【００４２】
テンプレート情報４０の７行目には、起動２３ｂの欄に「○」が記述されている行の左から５列目の起動要因コード２３ｅの欄に記述されているデータを挿入することが記述されている。
【００４３】
また、図４において、行の先頭に、「＄Ｃ：」を記述することで、その行に記述されているテンプレート情報が、テキストに展開されない情報であることを示すようにしている。一方、行の先頭に「＄Ｃ：」を記述しないことで、その行に記述されているテンプレート情報が、テキストに展開される情報であることを示すようにしている。
【００４４】
このように、図４に示したテンプレート４０には、設計情報フォーマット（タスク仕様書）２０に記述されている設計情報の内容を識別するための条件分岐処理（テンプレート４０の２〜５行目）と、設計情報フォーマット（タスク仕様書）２０の各行について同様の条件分岐処理を行うようにするためのループ処理（テンプレート４０の１行目）と、設計情報フォーマット（タスク仕様書）２０のアドレスを指定し、指定したアドレスに記述されている設計情報を埋め込むようにするためのアドレス指定処理（テンプレート４０の４行目及び６〜７行目）とが最低限含まれるテンプレート情報が、パール言語に基づいてテキスト形式で記述される。
【００４５】
以上のようなテンプレート情報を記述する場合、ユーザは、入力装置２に対し所定の操作を行う。これにより、制御部５は、所定のテキストエディタを起動し、テンプレート４０を表示装置３に表示させる。
【００４６】
ユーザは、入力装置２を操作して、表示装置３に表示されたテンプレート４０に、図４に示したような所望のテンプレート情報を書き込み、上記書き込んだテンプレート情報に所定のファイル名を付して保存するように指示する。
【００４７】
上記テンプレート情報を保存する旨の指示があると、制御部５は、指示された内容に従ってテンプレート情報をテンプレート情報格納部７に格納する。
このようにして、テンプレート情報格納部７には、ユーザにより記述されたテンプレート情報により構成されるファイルが複数格納される。なお、上述したように、これら複数のファイルは、それぞれに付与されたファイル名により区別される。
【００４８】
次に、図５〜図１０を参照しながら、設計情報格納部６に格納された設計情報と、テンプレート情報格納部７に格納されたテンプレート情報とを呼び出して、ソースプログラムを自動生成する際の処理について説明する。
【００４９】
図５は、設計情報とテンプレート情報を呼び出す際に表示装置３に表示されるウィンドウの一例を示した図である。
【００５０】
設計情報格納部６に格納された設計情報と、テンプレート情報格納部７に格納されたテンプレート情報とを呼び出す場合、ユーザは、入力装置２に対し所定の操作を行う。これにより、制御部５は、所定のアプリケーション（アプリケーション開発支援ツール）を起動し、図５に示す情報選択用ウィンドウ５０を表示装置３に表示させる。
【００５１】
図５に示すように、情報選択用ウィンドウ５０には、設計情報格納部６に格納された設計情報のファイル名を表示する設計情報選択用ウィンドウ５１と、テンプレート情報格納部７に格納されたテンプレート情報のファイル名を表示するテンプレート情報選択用ウィンドウ５２とが含まれている。
【００５２】
ユーザは、入力装置（マウス）２を操作して、所望の設計情報が記述されているファイルを示すアイコンをドラッグする。図５では、「タスク仕様書０１（サンプルＡ）．ｘｌｓ」（図２に示した設計情報が格納されているファイル）をドラッグしていること示している。
【００５３】
そして、上記ドラッグしたアイコンを、所望のテンプレート情報が記述されているファイルを示すアイコンに、重ね合わせドロップする。図５では、「（プログラム０１＿ＰＩＩＩタスク仕様書→Ｃセミメインモジュール）」（図４に示したテンプレート情報が格納されているファイル）に、上記ドラッグしたアイコンをドロップすることを示している。
【００５４】
このようなユーザによる入力装置２の操作に基づいて、制御部５は、所望の設計情報が格納されているファイルを設計情報格納部６から読み出して、プログラム生成部８の設計情報取得手段１０に出力するとともに、所望のテンプレート情報が記述されているファイルをテンプレート情報格納部７から読み出して、プログラム生成部８のテンプレート情報取得手段１１に出力する。
【００５５】
設計情報取得手段１０は、制御部５から出力された設計情報のファイルを所定のワークエリアにコピーする。なお、以下の説明では、このコピーされたファイルをコピー設計情報ファイルと表す。
【００５６】
テンプレート情報取得手段１１は、制御部５から出力されたテンプレート情報のファイルを所定のワークエリアにコピーする。なお、以下の説明では、このコピーされたファイルをコピーテンプレートファイルと表す。
【００５７】
スクリプト生成手段１２は、テンプレート情報取得手段１１により作成されたコピーテンプレートファイルから、テンプレート情報を読み出す。そして、上記読み出したテンプレート情報を、パール言語で解釈できるように加工して、スクリプト（自動生成用テキスト処理スクリプト）を生成する。
【００５８】
具体的に説明すると、例えば、パール言語により定義されているコマンドを予め決められたルールに従って上記読み出したテンプレート情報に付与するなどして、スクリプト６０を生成する。図６にスクリプト生成手段１２により生成されたスクリプト６０の一例を示す。
【００５９】
このように本実施の形態では、設計情報を呼び出すためのテンプレート情報を（図４を参照）、パール言語により規定されている所定のルールに基づいた内容に従って書き換えて、ソースプログラムのスクリプト６０を生成するようにしている。
【００６０】
ソースプログラム生成手段１３は、設計情報取得手段１０により作成されたコピー設計情報ファイルから、設計情報を読み出す。そして、スクリプト生成手段１２により生成されたスクリプト６０を実行する。これにより、スクリプト６０の該当箇所に上記読み出した設計情報を埋め込んで、ソースプログラムを生成する。
図７に、ソースプログラム生成手段１３により生成されたソースプログラムの一例を示す。
【００６１】
そして、図８に示すように、制御部５は、上記情報選択用ウィンドウ５０の上に、上記生成されたソースプログラムを示すソースプログラム表示用ウィンドウ８０を表示させる。
【００６２】
そして、ソースプログラム表示用ウィンドウ８０に表示されたソースプログラムを保存するための入力装置２を用いた所定の操作が、ユーザにより行われると、制御部５は、図９に示すようなソースプログラム保存用ウィンドウ９０を表示装置３に表示させる。
【００６３】
このソースプログラム保存用ウィンドウ９０の表示内容に基づいて、ユーザが入力装置２を操作し、上記ソースプログラムにファイル名が付され、且つ上記ソースプログラムの格納場所が指定されると、制御部５は、上記ソースプログラム生成手段１３により生成されたソースプログラム（ソースプログラム表示用ウィンドウ８０に表示されたソースプログラム）をソースプログラム格納部９に格納する。
【００６４】
なお、本実施の形態では、ソースプログラム保存用ウィンドウ９０に表示されたソースプログラムの一部または全部を別のエディタにコピーしたり、移動したりすることもできるようにしている。
【００６５】
具体的に説明すると、図１０に示すように、ソースプログラム保存用ウィンドウ９０に表示されたソースプログラムの一部（図１０の文字が白抜きされている領域）を、ユーザが入力装置（マウス）２を用いて指定し、所定の操作を行うと、制御部５は、上記指定されたソースプログラムの一部を別のエディタに移すためのウィンドウ１００をソースプログラム表示用ウィンドウ８０の上に表示させる。
【００６６】
そして、ウィンドウ１００に表示された内容の中から所望の内容が、ユーザによる入力装置（マウス）２の操作により選択されると、制御部５は、上記選択された内容に従って、上記指定されたソースプログラムの一部を別のエディタにコピーしたり、移動したりする。
【００６７】
次に、図１１のフローチャートを参照しながら、ソースプログラムを自動生成する際のプログラム自動生成装置１の動作の一例を説明する。
まず、最初のステップＳ１において、制御部５は、所望の設計情報とテンプレート情報とがユーザにより選択されるまで待機する。
【００６８】
この選択は、上述したように、表示装置３に表示させた設計情報表示用ウィンドウ５１に表示されているアイコンの中から所望のアイコンがドラッグされ、さらに、上記ドラッグされたアイコンが、テンプレート情報表示用ウィンドウ５２に表示されているアイコンにドロップされることにより行われる。
【００６９】
そして、所望の設計情報とテンプレート情報とがユーザにより選択されると、ステップＳ２に進み、制御部５は、上記選択された所望の設計情報のファイルと、テンプレート情報のファイルとを、それぞれ設計情報格納部６とテンプレート情報格納部７とから読み出す。
【００７０】
そして、上記読み出した設計情報のファイルと、テンプレート情報のファイルとを、それぞれ設計情報取得手段１０とテンプレート情報取得手段１１とに出力する。
【００７１】
次に、ステップＳ３において、設計情報取得手段１０は、ステップＳ２の処理で制御部５から出力された設計情報のファイルを所定のワークエリアにコピーし、コピー設計情報ファイルを作成する。
【００７２】
次に、ステップＳ４において、テンプレート情報取得手段１１は、ステップＳ２の処理で制御部５から出力されたテンプレート情報のファイルを所定のワークエリアにコピーし、コピーテンプレートファイルを作成する。
なお、これらステップＳ３とステップＳ４との処理の順番を入れ替えるようにしてもよい。
【００７３】
次に、ステップＳ５において、スクリプト生成手段１２は、ステップＳ４の処理により作成されたコピーテンプレートファイルから、テンプレート情報を読み出す（図４を参照）。
【００７４】
次に、ステップＳ６において、スクリプト生成手段１２は、ステップＳ５の処理により作成されたテンプレート情報に基づいて、スクリプト６０を生成する（図６を参照）。
【００７５】
次に、ステップＳ７において、ソースプログラム生成手段１３は、ステップＳ３の処理により作成されたコピー設計情報ファイルから、設計情報を読み出す。
【００７６】
次に、ステップＳ８において、ソースプログラム生成手段１３は、ステップＳ６の処理により生成されたスクリプト６０を実行し、ステップＳ７の処理により読み出された設計情報をスクリプト６０に埋め込む。
【００７７】
ステップＳ９において、制御部５は、ソースプログラム生成手段１３によりソースプログラム７０が生成されるまで待機し、ソースプログラム７０が生成されると、ステップＳ１０に進む。そして、制御部５は、上記生成されたソースプログラム７０を示すソースプログラム表示用ウィンドウ８０を表示装置３に表示させる（図７、図８を参照）。
【００７８】
次に、ステップＳ１１において、制御部５は、上記生成されたソースプログラム７０を保存する指示をユーザから受けたか否かを判定する。この判定の結果、上記生成されたソースプログラム７０を保存する場合には、ステップＳ１２に進み、制御部５は、ユーザにより指定された格納場所（ソースプログラム格納部９）に、上記生成されたソースプログラム７０を格納する。
【００７９】
一方、ステップＳ１１において、上記生成されたソースプログラム７０を保存する以外の指示をユーザから受けた場合には、ステップＳ１３に進み、制御部５は、ユーザから受けた指示に従って、上記生成されたソースプログラム７０に対する追加処理を行い、上記生成されたソースプログラムを保存する指示をユーザから受けるまで、ステップＳ１１の処理とステップＳ１３の処理とを繰り返し行う。
【００８０】
なお、ソースプログラム７０に対する追加処理とは、上述したように、ソースプログラム７０の一部または全部を別のエディタにコピーしたり移動したりするなどの処理である。
【００８１】
以上のように本実施の形態では、各記述欄にアドレスが与えられている設計情報フォーマット２０に、ソースプログラム７０を設計するための設計情報を、ユーザに記述させるようにして、上記設計情報にアドレスを与えるようにする。そして、ソースプログラム７０のスクリプト６０に、上記設計情報が上記アドレスに基づいて埋め込まれるようにするためのテンプレート情報を、テンプレート４０に記述させるようにする。
【００８２】
すなわち、本実施の形態では、設計情報をアドレスにより識別するようにしたので、設計情報フォーマット２０と、テンプレート４０とを自由に決定することができる。
具体的に説明すると、設計情報フォーマット２０内のどの位置に、どのような設計情報を記述したとしても、設計情報をアドレスにより識別することができるので、設計情報フォーマットの形式を自由に変更することができる。
【００８３】
また、設計情報をアドレスにより識別するような記述がされていれば、テンプレート４０の記述内容に大きな制約はなくなるので、テンプレート４０を柔軟に変更することができる。
【００８４】
このように、本実施の形態では、設計情報フォーマット２０と、テンプレート４０とを自由に決定することができるので、本実施の形態で例示したパール言語に限らず、どのような言語のソースプログラムであっても、自動生成することができ、プログラミング規約に対して柔軟に対応することができる。また、例えばタスクの起動、被起動などの細かい処理についても、自動生成することができる。
【００８５】
また、ソースプログラム７０のスクリプト６０の一部を使用してテンプレート４０にテンプレート情報を記述させるようにし、ソースプログラム７０の記述言語により規定されている所定のルールに従って上記テンプレート情報を書き換えて、ソースプログラム７０のスクリプト６０を生成し、上記生成したスクリプト６０を実行して、上記スクリプト６０に上記設計情報を埋め込んでソースプログラムを自動生成するようにしたので、ソースプログラム７０のスクリプト６０を全て記述しなくてもソースプログラムを自動生成することができる。
【００８６】
これにより、ソースプログラムの記述言語（本実施の形態ではパール言語）に精通していないユーザであっても、ソースプログラムを容易且つ確実に生成することができる。また、コーディング時間を可及的に短縮することができる。
【００８７】
さらに、設計情報のファイルと、テンプレート情報のファイルとを情報選択用ウィンドウ５０に表示し、設計情報とテンプレート情報とをドラッグアンドドロップによりユーザに選択させるようにしたので、ソースプログラムを迅速且つ容易に生成することができるようになる。
【００８８】
また、本実施の形態では、テンプレート４０を基準にしてソースプログラム７０を自動生成することにより、一様的なソースプログラム形態とすることができる。基本的にテンプレート４０のみがプログラミング規約に沿った形態になっていれば、自動生成されるソースプログラム７０もプログラミング規約に沿ったものになるからである。このように本実施の形態では、一様的なソースプログラム７０を自動生成することにより、処理ブロックの構造が統一的になるため、プログラムリストの可視性を向上させることができる。
【００８９】
（本発明の他の実施形態）
上述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置あるいはシステム内のコンピュータに対し、上記実施形態の機能を実現するためのソフトウェアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）に格納されたプログラムに従って上記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
【００９０】
また、この場合、上記ソフトウェアのプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコード自体、およびそのプログラムコードをコンピュータに供給するための手段、例えば、かかるプログラムコードを格納した記録媒体は本発明を構成する。かかるプログラムコードを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９１】
また、コンピュータが供給されたプログラムコードを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等と共同して上述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００９２】
さらに、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００９３】
【発明の効果】
以上説明したように本発明によれば、ソースプログラムのスクリプトに埋め込まれる設計情報とそのアドレス情報とを取得するとともに、上記ソースプログラムのスクリプトに上記設計情報が上記アドレス情報に基づいて埋め込まれるようにテンプレートに記述されたテンプレート情報を取得し、上記取得したテンプレート情報を、ソースプログラムの記述言語で解釈できるように加工して、ソースプログラムのスクリプトを生成し、上記生成したスクリプトに上記取得した設計情報を上記アドレス情報に基づいて埋め込んで、ソースプログラムを生成するようにしたので、上記アドレス情報により上記設計情報を特定してソースプログラムを生成することができる。これにより、上記設計情報の所在位置や内容の制約を受けずに、上記テンプレートを自由にカスタマイズすることができる。
【００９４】
また、上記ソースプログラムのスクリプトの一部を使用して上記テンプレート情報を記述できるようにしたので、ユーザは、上記ソースプログラムのスクリプトを全て作成する必要がなくなる。これによりプログラム言語に精通していないユーザであっても、上記ソースプログラムを自動生成させることができる。
【００９５】
このように、本発明では、ソースプログラムを自動生成する際の制約を可及的に低減させることができるので、ユーザのニーズに合わせてソースプログラムを自動生成することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態を示し、プログラム自動生成装置の構成の一例を示すブロック図である。
【図２】本発明の実施の形態を示し、設計情報フォーマットに記述される設計情報の一例を示した図である。
【図３】本発明の実施の形態を示し、設計情報フォーマットを表示するウィンドウの一例を示した図である。
【図４】本発明の実施の形態を示し、テンプレートに記述されるテンプレート情報の一例を示した図である。
【図５】本発明の実施の形態を示し、設計情報とテンプレート情報を呼び出す際に表示されるウィンドウの一例を示した図である。
【図６】本発明の実施の形態を示し、スクリプトの一例を示した図である。
【図７】本発明の実施の形態を示し、ソースプログラムの一例を示した図である。
【図８】本発明の実施の形態を示し、ソースプログラムを表示するウィンドウの一例を示した図である。
【図９】本発明の実施の形態を示し、ソースプログラムを保存する際に表示されるウィンドウの一例を示した図である。
【図１０】本発明の実施の形態を示し、ソースプログラムの一部を別のエディタに移す際に表示されるウィンドウの一例を示した図である。
【図１１】本発明の実施の形態を示し、ソースプログラムを自動生成する際のプログラム自動生成装置の動作の一例を説明するフローチャートである。
【符号の説明】
１  プログラム自動生成装置
２  入力装置
３  表示装置
４  処理装置
５  制御部
６  設計情報格納部
７  テンプレート情報格納部
８  プログラム生成部
９  ソースプログラム格納部
１０  設計情報取得手段
１１  テンプレート情報取得手段
１２  スクリプト生成手段
１３  ソースプログラム生成手段
２０  設計情報フォーマット
４０  テンプレート
６０  スクリプト
７０  ソースプログラム
【図１】
2004362442.tif 000003
【図２】
2004362442.tif 000004
【図３】
2004362442.tif 000005
【図４】
2004362442.tif 000006
【図５】
2004362442.tif 000007
【図６】
2004362442.tif 000008
【図７】
2004362442.tif 000009
【図８】
2004362442.tif 000010
【図９】
2004362442.tif 000011
【図１０】
2004362442.tif 000012
【図１１】
2004362442.tif 000013