(57)【要約】【課題】ソースプログラムサイズに起因するソースプログラムから機械語への翻訳の失敗の発生を防ぐようなソースプログラムを自動生成すること。【解決手段】プログラム生成部１０７は、ユーザ定義情報１０９に基づいて、ソースプログラム内の分割可能な箇所を識別するための分割識別情報を含むＪＳＰプログラム１１１を生成し、プログラム分割部１０８は、生成されたＪＳＰプログラム１１１に含まれる分割識別情報に基づいて、ＪＳＰプログラム１１１を分割して分割後ＪＳＰプログラム１１２を生成する構成を特徴とする。【選択図】図１
2007241364.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムを生成するプログラム生成装置において、
入力されるプログラムの定義情報に基づいて、ソースプログラム内の分割可能な箇所を識別するための分割識別情報を含む第１ソースプログラムを生成する生成手段と、
前記生成手段により生成された第１ソースプログラムに含まれる分割識別情報に基づいて、前記第１ソースプログラムを分割して複数の第２ソースプログラムを生成する分割手段と、
を有することを特徴とするプログラム生成装置。
【請求項２】
前記分割識別情報を含むプログラムテンプレートを記憶する記憶手段を有し、
前記生成手段は、前記記憶手段に記憶されるプログラムテンプレートと前記定義情報とに基づいて、前記分割識別情報を含む第１ソースプログラムを生成することを特徴とする請求項１に記載のプログラム生成装置。
【請求項３】
前記分割手段は、
前記生成手段により生成された第１ソースプログラムに含まれる分割識別情報に基づいて分割単位となる分割単位コードを特定する特定手段と、
前記特定手段により特定された分割単位コード毎に、前記第２ソースプログラムを生成する第２ソースプログラム生成手段と、
前記第２ソースプログラム生成手段により生成された第２ソースプログラムを取り込むためのコードを、前記第２ソースプログラムに対応する前記分割単位コードの代わりとして前記第１ソースプログラム内に挿入する第１の挿入手段と、
を有することを特徴とする請求項１又は２に記載のプログラム生成装置。
【請求項４】
前記分割手段は、
前記生成手段により生成された第１ソースプログラムに含まれる分割識別情報に基づいて分割単位となる分割単位コードを特定する特定手段と、
前記特定手段により特定される所定数分の分割単位コード毎に、前記第２ソースプログラムを生成する第２ソースプログラム生成手段と、
前記第２ソースプログラム生成手段により生成された第２ソースプログラムを取り込むためのコードを、前記第２ソースプログラムに対応する前記分割単位コードの代わりとして前記第１ソースプログラム内に挿入する第１の挿入手段と、
を有することを特徴とする請求項１又は２に記載のプログラム生成装置。
【請求項５】
前記分割手段は、
前記生成手段により生成された第１ソースプログラムに含まれる分割識別情報に基づいて分割単位となる分割単位コードを特定する特定手段と、
前記特定手段により特定される複数の分割単位コードの合計サイズが、制限値を超えない最大数の分割単位コード毎に、前記第２ソースプログラムを生成する第２ソースプログラム生成手段と、
前記第２ソースプログラム生成手段により生成された第２ソースプログラムを取り込むためのコードを、前記第２ソースプログラムに対応する前記分割単位コードの代わりとして前記第１ソースプログラム内に挿入する第１の挿入手段と、
を有することを特徴とする請求項１又は２に記載のプログラム生成装置。
【請求項６】
前記分割識別情報は、分割後も共通に必要な個所を識別するための第１分割識別情報と、ソースプログラムの分割可能な箇所を識別するための第２分割識別情報を含むものであり、
前記特定手段は、前記生成手段により生成された第１ソースプログラムに含まれる第１分割識別情報，第２分割識別情報に基づいて分割後も共通に必要な共通コード，分割単位となる分割単位コードを特定するものであり、
前記第２ソースプログラム生成手段は、前記特定手段により特定される共通コードと分割単位コードにより、前記第２ソースプログラムを生成することを特徴とする請求項３乃至５のいずれか１項に記載のプログラム生成装置。
【請求項７】
前記分割手段は、
前記分割した複数の第２ソースプログラムの合計サイズが、制限値を超えない最大数の前記第２ソースプログラムを合体させて第３ソースプログラムを生成する第３ソースプログラム生成手段と、
前記第３ソースプログラム生成手段により生成された第３ソースプログラムを取り込むためのコードを、前記第３ソースプログラムに対応する前記第２ソースプログラムの代わりとして前記第１ソースプログラム内に挿入する第２の挿入手段と、
を備えることを特徴とする請求項１乃至４のいずれか１項に記載のプログラム生成装置。
【請求項８】
前記制限値は、コンパイル可能な最大のソースプログラムサイズを示すことを特徴とする請求項５又は７に記載のプログラム生成装置。
【請求項９】
ソースプログラムを生成するプログラム生成方法において、
入力されるプログラムの定義情報に基づいて、ソースプログラムの分割可能な箇所を識別するための分割識別情報を含む第１ソースプログラムを生成する生成ステップと、
該生成された第１ソースプログラムに含まれる分割識別情報に基づいて、前記第１ソースプログラムを分割して複数の第２ソースプログラムを生成する分割ステップと、
を有することを特徴とするプログラム生成方法。
【請求項１０】
請求項９に記載されたプログラム生成方法をコンピュータに実行させるためのプログラム。
【請求項１１】
請求項９に記載されたプログラム生成方法をコンピュータに実行させるためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータで実行するプログラムを生成するプログラム生成制御に関する。
【背景技術】
【０００２】
一般に、システム開発作業は、ＣＡＳＥ（Computer Aided Software Engineering）ツール等のプログラム自動生成ツールを用いてソースプログラムを自動生成することによって、効率化されてきている。
【０００３】
その例として、特許文献１は、データ項目（定義情報）や業務ルールを指定することにより、画面プログラムを含む基本的業務ロジック（ソースプログラム）を自動生成することを開示している。特許文献１では、利用者がプログラミングの知識が無くても、業務アプリケーションに関するソースプログラムを作成することができることが記載されている。
【特許文献１】特開２００４−２６５２７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のプログラム自動生成ツールを用いることによって生成されたソースプログラムは、一般に冗長であり、指定された定義情報に応じてソースプログラムのサイズが大きくなってしまう。
【０００５】
このように作成されたサイズが大きいソースプログラムは、以下の（１）〜（３）に示すような問題を生じる可能性があった。
【０００６】
（１）ソースプログラムをコンパイルする際、コンパイラ毎にコンパイル可能なサイズ（以下、コンパイル制限値）がある。そのため、コンパイル制限値を越えるソースプログラムをコンパイルすると、コンパイルに失敗する恐れがある。
【０００７】
例えば、特許文献１のように、特に生成されるプログラムがＪＳＰの場合、（使用しているWebアプリケーションサーバによって）一旦Java（登録商標）ソースファイルに変換される。この場合、プログラム処理の多くの部分が１つのメソッド内に集中して変換されるため、Java（登録商標）コンパイラの「１メソッド64ｋＢ以内」という制限を越え易くなってしまう。即ち、コンパイルに失敗し易くなってしまう。
【０００８】
そこで、このようなコンパイラの制限を越えてしまったソールファイルを、正常にコンパイルするために、利用者は、自動生成されたソースプログラムがコンパイル制限値内になるように、手動でソースプログラムを編集すること等が考えられる。
【０００９】
（２）しかしながら、手動で編集することは非常に煩雑である。さらに、ＣＡＳＥツール等のプログラム自動生成ツールは、一般的にプログラミングの知識に乏しい利用者であってもプログラムを作成できるように供されたものであり、そのような利用者が手動で編集することは困難である。また、該利用者が手動で編集することによって、プログラムの品質を劣化させてしまう可能性もある。
【００１０】
（３）利用者がソースプログラムを手動で変更することによって、ＣＡＳＥツールが維持するリソース間の関連付け情報の整合性を乱し、更には、動作しなくなる恐れがある。よって、動作保証の観点から、利用者が手動でソースプログラムを変更することを禁止しているシステムも多い。
【００１１】
このため、利用者は、例えば、本来１画面に収まっていた画面入出力項目を複数画面に分けて設計し直し、正常にコンパイル出来るようにしなければならない。このような制限を加えられることにより、プログラムやシステムを自由な発想で設計することが困難となる。
【００１２】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、ソースプログラムサイズに起因するソースプログラムから機械語への翻訳の失敗の発生を防ぐようなソースプログラムを自動作成する仕組を提供することである。
【課題を解決するための手段】
【００１３】
本発明は、ソースプログラムを生成するプログラム生成装置において、入力されるプログラムの定義情報に基づいて、ソースプログラム内の分割可能な箇所を識別するための分割識別情報を含む第１ソースプログラムを生成する生成手段と、前記生成手段により生成された第１ソースプログラムに含まれる分割識別情報に基づいて、前記第１ソースプログラムを分割して複数の第２ソースプログラムを生成する分割手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、コンパイル制限値の制約を意識しなくても、設計者の自由な発想の下でシステム設計を行うことができ、ソースプログラムから機械語への翻訳の失敗を防ぐようなソースプログラムを容易に作成することができる。
【００１５】
また、生成されるプログラム構造を意識しなくても、設計者の自由な発想の下でシステム設計を行うことができ、効率的にソースプログラムから機械語への翻訳が可能なソースプログラムを容易に作成できる効果を奏する。
【発明を実施するための最良の形態】
【００１６】
〔第１実施形態〕
以下、図面を用いて本発明のプログラム生成装置の実施形態について説明する。
【００１７】
本実施形態では、アプリケーションシステムを構成するプログラムや画面等のソフトウェアを自動生成するＣＡＳＥツール環境において、特にＪＳＰプログラムの自動生成について説明する。なお、本実施形態では、「プログラム」とはソースプログラムを示すものとする。
【００１８】
また、ＣＡＳＥツール環境の説明は、本発明と直接関係のある部分についてのみ言及する。
【００１９】
図１は、本発明の一実施形態を示すプログラム生成装置のシステム全体を示す構成図である。
【００２０】
図１において、１０３はプログラム生成装置であり、パーソナルコンピュータ等の情報処理装置で構成される。１０２はキーボード，ポインティングデバイス（マウス等）の入力装置である。１０１はディスプレイ等の表示装置である。１０４はハードディスクドライブ（ＨＤＤ）等の外部記憶装置である。
【００２１】
図１に示すように、ユーザは表示装置１０１を閲覧し、入力装置１０２を操作することによってプログラム自動生成命令を指示する。そして、プログラム自動生成命令の指示を受けたプログラム生成装置１０３は、全体制御部１０５でＪＳＰプログラムの自動生成を行う。以下、詳細に説明する。
【００２２】
まず、プログラム自動生成命令を受けた画面制御部１０６は、プログラム生成部１０７に処理を委譲する。プログラム生成部１０７は、外部記憶装置（ＨＤＤ）１０４に格納されるＪＳＰプログラムテンプレート１１０（後述する図６）を元に、予め入力設定されたユーザ定義情報１０９（後述する図５）を適用し、ＪＳＰプログラムを生成し、ＪＳＰプログラム１１１（後述する図７）として外部記憶装置１０４に格納する。
【００２３】
ＪＳＰプログラム１１１の作成後、プログラム生成部１０７は、プログラム分割部１０８に処理を委譲する。そして、プログラム分割部１０８は、ＪＳＰプログラム１１１を分割し、複数の分割プログラムを作成し、分割後ＪＳＰプログラム１１２（後述する図９，図１０）として外部記憶装置１０４に格納する。
【００２４】
なお、図１の構成は一例であり、用途や目的に応じて様々な構成例があることは云うまでもない。その他の構成例として、プログラム生成装置が、ネットワークと接続され、通信可能な不図示のパーソナルコンピュータ等の情報処理装置からプログラム自動生成命令を受けることによって、プログラムの自動生成を行うことも可能である。
【００２５】
すなわち、本発明の機能が実現されるものであれば、単体の機器であっても、複数の機器からなるシステムであっても、ネットワークを介して処理が行われるシステムであっても本発明を適用することができる。
【００２６】
また、ここで、ハードディスクドライブ（ＨＤＤ）等の外部記憶装置１０４に記憶されたユーザ定義情報１０９やＪＳＰプログラムテンプレート１１０、ＪＳＰプログラム１１１、分割後ＪＳＰプログラム１１２は、それぞれデータベース（ＤＢ）等に格納されているものとする。
【００２７】
次に、図２を参照して、図１に示したプログラム生成装置１０３のハードウェア構成について説明する。
【００２８】
図２は、図１のプログラム生成装置１０３のハードウェア構成を示すブロック図であり、図１と同一のものには同一の符号を付してある。
【００２９】
図２おいて、２０１はＣＰＵ（中央演算処理装置）２０１であり、ＲＯＭ２０３或いは外部記憶装置１０４に記憶されている制御プログラムに基づいて、システムバス２１１に接続されている各種デバイスとのアクセスを総括的に制御する構成となっている。
【００３０】
システムバス２１１には、ＣＰＵ２０１の主メモリ、ワークエリア等として機能するＲＡＭ（ランダム・アクセス・メモリ）２０２が接続されている。ＲＯＭ２０３或いは外部記憶装置１０４には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Basic Input ／ Output System）やオペレーティングシステム（以下、「ＯＳ」という。）プログラム、プログラム生成装置１０３が実行する処理を実現するために必要な各種プログラム等が記憶されている。
【００３１】
ＣＰＵ２０１は、処理の実行に際して必要な各種プログラム等をＲＡＭ２０２にロードして、当該プログラム等を実行することで図１に示した全体制御部１０５の機能及び各種動作を実現するものである。
【００３２】
入力装置コントローラ２０６は、ポインティングデバイス(不図示)やキーボード（不図示）等の入力装置１０２からの入力を制御する。表示装置コントローラ２０５は、ＣＲＴディスプレイや液晶ディスプレイ等の表示装置１０１の表示を制御する。メモリコントローラ２０７は、外部記憶装置１０４とのアクセスを制御する。
【００３３】
外部記憶装置１０４は、上述した各種プログラムとして、図示しないブートプログラム、各種アプリケーションプログラム、フォントデータ、ユーザーファイル等を記憶する。
【００３４】
通信Ｉ／Ｆ（通信インターフェース）２０４は、通信回線２１２を介してパーソナルコンピュータ等の情報処理装置に接続することができ、双方向通信が可能である。
【００３５】
ＣＰＵ２０１は、例えば、ＲＡＭ２０２内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、表示装置１０１上でＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ２０１は、表示装置１０１上のマウスカーソル(不図示)等で指示されたコマンドに基づいて、登録された種々なウィンドウを開き、種々のデータ処理を実行する。
【００３６】
以下、図３〜図１０を参照して、図１で示したプログラム生成装置１０３の全体制御部１０５で行われる処理全体について説明する。
【００３７】
図３は、本発明における第１の制御処理手順の一例を示すフローチャートであり、図１で示したプログラム生成装置１０３の全体制御部１０５で行われる処理全体に対応する。なお、このフローチャートの処理は、図２に示したＣＰＵ２０１が外部記憶装置１０４に格納されたプログラムをＲＡＭ２０２に読み出して実行する全体制御部１０５により実現される。なお、図中、Ｓ３０１〜Ｓ３０３は各ステップを示す。
【００３８】
ステップＳ３０１において、入力装置１０２から入力されるプログラム自動生成命令の指示を受けると、全体制御部１０５内の画面制御部１０６は、プログラム生成部１０７に処理を委譲し、ステップＳ３０２に処理を進める。
【００３９】
次に、ステップＳ３０２において、プログラム生成部１０７は、プログラム生成処理（詳細は図４に示す）を実行する。ステップ３０２の処理が終了すると、プログラム生成部１０７は、プログラム分割部１０８に処理を委譲し、ステップＳ３０３に処理を進める。
【００４０】
ステップＳ３０３において、プログラム分割部１０８は、ステップ３０２で生成されたプログラムを分割する処理（詳細は図８に示す）を実行し、分割プログラムを生成し、処理を終了する。
【００４１】
図４は、本発明における第２の制御処理手順の一例を示すフローチャートであり、図３のステップＳ３０２に示したプログラム生成処理に対応する。なお、このフローチャートの処理は、図２に示したＣＰＵ２０１が外部記憶装置１０４に格納されたプログラムをＲＡＭ２０２に読み出して実行するプログラム生成部１０７により実現される。なお、図中、Ｓ４０１〜Ｓ４０３は各ステップを示す。
【００４２】
プログラム生成部１０７は、まずステップＳ４０１において、外部記憶装置１０４に記憶されたユーザ定義情報１０９（図５）を抽出（取得）し、これをＲＡＭ２０２内に記憶する。
【００４３】
ここで、ユーザ定義情報１０９の一例を図５に示す。
【００４４】
図５は、図１に示したユーザ定義情報１０９の一例を示す図である。なお、ここでは一例としてアドレス帳の画面を定義したユーザ定義情報を示してある。
【００４５】
図５に示すように、ユーザ定義情報１０９は、「ＩＯ」７０１、「ＩＯＩＴＥＭ＿ＩＤ」７０２、「ＩＯＩＴＥＭ＿ＮＡＭＥ」７０３で構成される。
【００４６】
「ＩＯ」７０１には「画面コード」が格納されている。また、「ＩＯＩＴＥＭ＿ＩＤ」７０２には「画面内の項目のコード」が格納されている。さらに、「ＩＯＩＴＥＭ＿ＮＡＭＥ」７０３には「画面内の項目の表示名」が格納されている。
【００４７】
以下、図４のフローチャートの説明に戻る。
【００４８】
次に、ステップＳ４０２において、プログラム生成部１０７は、外部記憶装置１０４に記憶されたＪＳＰプログラムテンプレート１１０を抽出（取得）し、ＲＡＭ２０２内に記憶する。
【００４９】
図４のステップＳ４０３において、プログラム生成部１０７は、ステップＳ４０１で取得したユーザ定義情報を、ステップＳ４０２で取得したＪＳＰプログラムテンプレート１１０の所定の変数部分に、組み込むことによって、ＪＳＰプログラム（図７）を生成する。そして、生成されたＪＳＰプログラムをＪＳＰプログラム１１１として外部記憶装置１０４に格納し、処理を終了する。
【００５０】
ここで、ＪＳＰプログラムテンプレート１１０の一例を図６に示す。
【００５１】
図６は、図１に示したＪＳＰプログラムテンプレート１１０の一例を示す図である。
【００５２】
ＪＳＰプログラムテンプレート１１０には予め所定の変数部分８１０，８１１があり、上述したユーザ定義情報１０９の「ＩＯＩＴＥＭ＿ＮＡＭＥ」７０３，「ＩＯＩＴＥＭ＿ＩＤ」７０２を、該変数部分８１０，８１１に組み込むことによって、後述する図４のステップＳ４０３で、ＪＳＰプログラム１１１が生成される。
【００５３】
具体的に説明すると、図６の８１０に示す「＜th＞${ioitem.name}＜/th＞」の変数部分（「${ioitem.name}」）には、図５の項目「ＩＯＩＴＥＭ＿ＮＡＭＥ」７０３の列に格納されている「名前」や「電話番号」が組み込まれ、「＜th＞名前＜/th＞」や「＜th＞電話番号＜/th＞」になる。
【００５４】
また、図６の８１１，８１２に示す「＜logic:iterate id="${io}" name="bean" property="ioitems" ＞」，「＜td＞＜bean:write name="${io}" property="${ioitem.id}"/＞＜/td＞」の変数部分（「${io}」）には、図５の項目「ＩＯ」７０１の列に格納されている「address」が組み込まれる。また、８１１の変数部分（「${ioitem.id}」）には、図５の項目「ＩＯＩＴＥＭ＿ＩＤ」７０２の列に格納されている「name」や「tel」が組み込まれる。即ち、８１１は「＜logic:iterate id="address" name="bean" property="ioitems" ＞」になる。また、８１２は「＜td＞＜bean:write name="address" property="name"/＞＜/td＞」や「＜td＞＜bean:write name="address" property="tel"/＞＜/td＞」になる。この結果、後述するＪＳＰプログラムが生成されていく。
【００５５】
図７は、図１に示したＪＳＰプログラム１１１の一例を示す図である。
【００５６】
また、図６に示すＪＳＰプログラムテンプレート１１０には、「プログラム分割」処理３０３で用いる分割識別情報が予め組み込まれている。
【００５７】
ここで分割識別情報とは、図６に示すように、ＪＳＰプログラムテンプレート１１０に予め組み込まれている「分割エリア開始マーク８０４」、「分割エリア終了マーク８０５」、「グローバルエリア開始マーク８０１」、「グローバルエリア終了マーク８０２」等である。
【００５８】
これらの分割識別情報８０１，８０２，８０４，８０５は、プログラムを分割しても矛盾が生じない箇所を識別するための情報である。すなわち、この分割識別情報のところで分割することが可能である。また、分割識別情報８０１，８０２，８０４，８０５は、コメント行として情報であり、プログラムそのものの機能に何ら影響を与えない情報である。
【００５９】
ここで、「分割エリア開始マーク８０４」及び「分割エリア終了マーク８０５」で挟まれたエリアを「分割単位エリア８０６」と呼び、この「分割単位エリア８０６」に含まれる情報（プログラム）を「分割単位プログラム」と呼ぶことにする。
【００６０】
また、「グローバルエリア開始マーク８０１」及び「グローバルエリア終了マーク８０２」で挟まれたエリアを「グローバルエリア８０３」と呼び、「グローバルエリア８０３」に含まれる情報を「グローバル情報」と呼ぶことにする。グローバル情報は、後で説明する分割プログラムに共通して必要な情報である。
【００６１】
図８は、本発明における第３の制御処理手順の一例を示すフローチャートであり、図３のステップＳ３０３に示したプログラム分割処理に対応する。なお、このフローチャートの処理は、図２に示したＣＰＵ２０１が外部記憶装置１０４に格納されたプログラムをＲＡＭ２０２に読み出して実行するプログラム分割部１０８により実現される。なお、図中、Ｓ５０１〜Ｓ５１２は各ステップを示す。
【００６２】
プログラム分割部１０８は、まずステップＳ５０１において、ステップ３０２で生成されて外部記憶装置１０４等に記憶されたＪＳＰプログラム１１１からプログラムコードを１エリア読み込む。具体的には、例えば、ＪＳＰプログラム１１１の先頭からプログラムコードを読み込む。その際に、分割識別情報である「グローバルエリア開始マーク８０１」及び「グローバルエリア終了マーク８０２」、又は、「分割エリア開始マーク８０４」及び「分割エリア終了マーク８０５」を検知し、検知された分割識別情報で識別（特定）されたエリアのプログラムコードを読み込む。このようにして、「グローバルエリア開始マーク８０１」及び「グローバルエリア終了マーク８０２」で特定される範囲（挟まれたエリア）の情報、又は、「分割エリア開始マーク８０４」及び「分割エリア終了マーク８０５」で特定される範囲（挟まれたエリア）の情報を読み込む。
【００６３】
ステップＳ５０２では、プログラム分割部１０８は、ステップＳ５０１で読み込んだＪＳＰプログラム１１１内の１エリアの情報が、「グローバル情報」か「分割単位プログラム」かを、分割識別情報に基づいて特定する。例えば、読み込んだ情報が「グローバルエリア開始マーク８０１」及び「グローバルエリア終了マーク８０２」で特定される範囲（挟まれたエリア）の情報であれば「グローバル情報」と特定する。また、読み込んだ情報が「分割エリア開始マーク８０４」及び「分割エリア終了マーク８０５」で特定される範囲（挟まれたエリア）の情報であれば「分割単位プログラム」と特定する。
【００６４】
そして、ステップＳ５０３では、プログラム分割部１０８は、ステップ５０１で読み込まれた情報が「グローバル情報」であると判断した場合には、ステップ５０４に処理を進める。ステップＳ５０４では、プログラム分割部１０８は、ステップＳ５０１で読み込んだ情報を「グローバル情報」としてＲＡＭ２０２内に記憶し、ステップＳ５１２に処理を進める。
【００６５】
一方、ステップＳ５０３で、プログラム分割部１０８が、ステップ５０１で読み込んだ情報が「グローバル情報」でないと判断した場合には、ステップ５０５に処理を進める。ステップＳ５０５では、プログラム分割部１０８は、ステップＳ５０１で読み込んだ情報が「分割単位プログラム」でないと判断した場合には、そのままステップＳ５１２に処理を進める。
【００６６】
一方、ステップＳ５０５で、プログラム分割部１０８が、ステップＳ５０１で読み込んだ情報が「分割単位プログラム」であると判断した場合には、ステップＳ５０６に処理を進める。
【００６７】
ステップＳ５０６では、プログラム分割部１０８は、空の分割プログラム（ファイル）を外部記憶装置１０４内に新規に生成する。
【００６８】
そして、ステップＳ５０７では、プログラム分割部１０８は、ステップ５０６で作成した分割プログラム内に、ＲＡＭ２０２内に記憶される「グローバル情報」を挿入する（図１０の１１０１に示す）。
【００６９】
次に、ステップ５０８では、プログラム分割部１０８は、ステップＳ５０１で読み込んだ情報を「分割単位プログラム」として、ステップ５０７で「グローバル情報」が挿入された分割プログラム内に挿入する（図１０の１１０２に示す）。
【００７０】
そして、ステップＳ５０９では、プログラム分割部１０８は、分割プログラムのファイルをクローズする。このように、図１０に示すような分割プログラムが生成される。このように生成された分割プログラムを、以下、分割プログラム（子）と称する。なお、分割プログラム（子）は分割後ＪＳＰプログラム１１２の１つとして外部記憶装置１０４等に記憶される。
【００７１】
次に、ステップＳ５１０では、プログラム分割部１０８は、ステップＳ５０８で分割プログラム内に挿入した情報（分割単位プログラム）を、ＪＳＰプログラム１１１から削除する。
【００７２】
次に、ステップＳ５１１では、プログラム分割部１０８は、ＪＳＰプログラム１１１内のステップ５１０で削除された分割単位プログラムの部分に、ステップＳ５０６〜Ｓ５０９で生成された分割プログラム（子）のファイルへのインクルード文を挿入する（図９の１００２に示す）。ここで、インクルード文には、分割プログラム（子）のファイルを特定する相対パス又は絶対パス等のパス情報を含む。
【００７３】
次に、ステップ５１２において、プログラム分割部１０８は、ＪＳＰプログラム１１１の全ての分割単位プログラム及びグローバル情報の読み込みを終了したか否かを判定し、未だ終了していないと判断した場合には、ステップＳ５０１に処理を戻す。上記の処理を、ＪＳＰプログラム１１１の読み込み終了まで繰り返すことにより、図１０に示すような各分割単位プログラムに対応する分割プログラム（子）のファイルがそれぞれ生成され、且つ、図７に示したＪＳＰプログラム１１１は図９に示すように編集される。このように編集されたＪＳＰプログラム１１１を、以下、分割プログラム（親）と称する。
【００７４】
一方、ステップ５１２で、プログラム分割部１０８が、ＪＳＰプログラム１１１の全ての分割単位プログラム及びグローバル情報の読み込みを終了したと判断した場合には、図示しないステップにおいて、上記ステップＳ５１０，Ｓ５１１の処理により編集生成された分割プログラム（親）も分割後ＪＳＰプログラム１１２として外部記憶装置１０４に保存し、処理を終了する。
【００７５】
以上の「プログラム分割」処理の結果、図９，図１０に示す分割後ＪＳＰプログラム１１２が作成される。なお、図９，図１０に示す例には、「グローバルエリア開始マーク８０１」，「グローバルエリア終了マーク８０２」，「分割エリア開始マーク８０４」，「分割エリア終了マーク８０５」は示していないが、これらはコメント行であるので、分割プログラムに含まれていても問題はない。
【００７６】
図９は、図８に示したプログラム分割処理により生成される分割プログラム（親）の一例を示す図である。
【００７７】
図９に示す分割プログラム（親）は、どの分割プログラムでも必要となるグローバル情報１００１を含む。さらに、分割プログラム（親）は、各分割プログラム（子）へのパス情報を含むインクルード文１００２を分割したプログラムの数だけ含む。
【００７８】
なお、図８に示したフローチャートでは、元のＪＳＰプログラム１１１から、分割単位プログラムを削除し、分割プログラム（子）のインクルード文を挿入する方法で、図９の分割プログラム（親）を生成する方法について示した。しかし、図９に示した分割プログラム（親）も、新たにプログラムファイルを生成し、該生成したプログラムファイルに、グローバル情報と、各分割プログラム（子）のインクルード文を挿入する方法で生成するように構成してもよい。
【００７９】
図１０は、図８に示したプログラム分割処理のステップＳ５０６〜Ｓ５０９で生成された分割プログラム（子）の一例を示す図である。
【００８０】
図１０に示す分割プログラム（子）には、グローバル情報１１０１、及び、分割単位プログラム１１０２が含まれる。
【００８１】
以上示したように、本実施形態では、プログラム生成部１０７が、生成するファイル（ＪＳＰプログラム１１１）の分割可能な位置にマーク情報（グローバルエリア開始マーク８０１，グローバルエリア終了マーク８０２，分割エリア開始マーク８０４，分割エリア終了マーク８０５）を埋め込み、プログラム分割部１０８が、上記マークを利用してプログラムを分割する構成を有する。これにより、これまで困難であった自動生成されたプログラムの分割をユーザによる手作業による編集無しで容易に行うことができる。
【００８２】
従って、コンパイル制限値の制約，プログラム構造を意識しなくても、設計者の自由な発想の下でシステム設計を行うことができ、ソースプログラムから機械語への翻訳の失敗を防ぎ、また、手作業の編集によるシステム性能の劣化を防ぐようなソースプログラムを作成することができる等の効果を奏する。
【００８３】
〔第２実施形態〕
上記第１実施形態では、分割プログラム単位でプログラムを分割する構成について説明した。なお、上記第１実施形態の構成の場合、プログラムの分割単位が小さくなってしまい、効率的にコンパイルすることができない場合が発生する恐れもある。本実施形態では、ユーザが指定する数の分割単位プログラム毎にプログラム分割を行うように構成する。以下、図１１，図１２を参照して詳細に説明する。
【００８４】
図１１は、本発明の第２実施形態におけるプログラム生成命令画面の一例を示す図である。このプログラム生成画面は、図１に示した表示装置１０１に表示されるものとする。
【００８５】
図１１において、ダウンメニュー１５０１は、生成するプログラムを設定することができる。チェックボックス１５０２，１５０３は、「プログラム生成」処理（ステップ３０２）で生成されたプログラムを分割するか否かを設定することができる。なお、チェックボックス１５０２，１５０３は、排他的にチェック可能なチェックボックスであり、プログラムを分割する場合はチェックボックス１５０２にチェックを入れ、分割しない場合はチェックボックス１５０３にチェックを入れる。
【００８６】
また、プルダウンメニュー１５０４は、分割単位プログラムをいくつまで分割プログラムに挿入することができるかを設定することができる。例えば、分割単位を「５」に設定すれば、分割単位プログラムが５つ挿入された分割プログラムを生成することができる。以上１５０１〜１５０４で設定された情報を設定情報という。
【００８７】
ユーザが入力装置１０２を用いて設定情報を設定し、「生成」ボタン６０１を押下すると、入力装置１０２は、プログラム生成装置１０３に対して設定された設定情報及びプログラム自動生成命令を送くる。これにより、プログラム生成装置１０３による処理（図３）が開始される。
【００８８】
以下、図１２を参照して、本発明の第２実施形態におけるプログラム分割処理（図３のＳ３０３）について説明する。
【００８９】
図１２は、本発明における第４の制御処理手順の一例を示すフローチャートであり、本発明の第２実施形態におけるプログラム分割処理（図３のＳ３０３）に対応する。なお、このフローチャートの処理は、図２に示したＣＰＵ２０１が外部記憶装置１０４に格納されたプログラムをＲＡＭ２０２に読み出して実行するプログラム分割部１０８により実現される。なお、図中、Ｓ１２０１〜Ｓ１２１５は各ステップを示す。
【００９０】
プログラム分割部１０８は、まずステップＳ１２０１において、図３のステップＳ３０２で生成されたプログラムを分割するか否かを設定情報（特に図１１の１５０２，１５０３）に基づいて判断する。そして、プログラム分割部１０８が分割しないと判断した場合には、そのまま処理を終了する。
【００９１】
一方、ステップＳ１２０１で、プログラム分割部１０８が、図３のステップＳ３０２で生成されたプログラムを分割すると判断した場合には、ステップＳ１２０２に処理を進める。
【００９２】
なお、ステップＳ１２０２〜Ｓ１２０６の処理は、図８のステップＳ５０１〜Ｓ５０５の処理と同一であるので説明は省略する。
【００９３】
ステップＳ１２０６で、プログラム分割部１０８が、ステップＳ１２０２で読み込んだ情報が「分割単位プログラム」であると判断した場合には、ステップＳ１２０７に処理を進める。
【００９４】
ステップＳ１２０７では、プログラム分割部１０８は、既に分割プログラム（ファイル）に挿入済みの分割単位プログラムが、設定情報（特に図１１の１５０４）で設定された分割単位数未満であるか否かを判断する。そして、既に分割プログラム（ファイル）に挿入済みの分割単位プログラムが分割単位数未満であると判断した場合には、ステップ１２１０に処理を進める。
【００９５】
ステップＳ１２１０では、プログラム分割部１０８は、処理中の分割プログラム（ファイル）があるか否かを判断する。そして、処理中の分割プログラム（ファイル）がないと判断した場合には、ステップ１２１１に処理を進める。
【００９６】
ステップＳ１２１１では、プログラム分割部１０８は、空の分割プログラム（ファイル）を外部記憶装置１０４内に新規に生成する。
【００９７】
そして、ステップＳ１２１２では、プログラム分割部１０８は、ステップ１２１１で作成した分割プログラム内に、ＲＡＭ２０２内に記憶される「グローバル情報」を挿入する（図１０の１１０１）。
【００９８】
次に、ステップ１２１３では、プログラム分割部１０８は、ステップＳ１２０２で読み込んだ情報を「分割単位プログラム」として、ステップ１２１２で「グローバル情報」が挿入された分割プログラム内に挿入する（図１０の１１０２）。
【００９９】
次に、ステップＳ１２１４では、プログラム分割部１０８は、ステップＳ１２１２で分割プログラム内に挿入した情報（分割単位プログラム）を、ＪＳＰプログラム１１１から削除し、ステップＳ１２１５に処理を進める。
【０１００】
また、ステップＳ１２１０で、プログラム分割部１０８が、処理中の分割プログラム（ファイル）があると判断した場合には、そのままステップＳ１２１３，Ｓ１２１４の処理を実行し、ステップＳ１２１５に処理を進める。
【０１０１】
次に、ステップ１２１５において、プログラム分割部１０８は、ＪＳＰプログラム１１１の全ての分割単位プログラム及びグローバル情報の読み込みを終了したか否かを判定し、未だ終了していないと判断した場合には、ステップＳ１２０２に処理を戻す。
【０１０２】
また、ステップＳ１２０７で、プログラム分割部１０８が、既に分割プログラム（ファイル）に挿入済みの分割単位プログラムが、設定情報（特に図１１の１５０４）で設定された分割単位数未満であると判断した場合には、ステップ１２０８に処理を進める。
【０１０３】
ステップＳ１２０８では、プログラム分割部１０８は、処理中の分割プログラムのファイルをクローズする。これにより、分割プログラムが作成される。この分割プログラムを、分割プログラム（子）と称する。なお、分割プログラム（子）は分割後ＪＳＰプログラム１１２の１つとして外部記憶装置１０４等に記憶される。
【０１０４】
次に、ステップＳ１２０９では、プログラム分割部１０８は、ＪＳＰプログラム１１１内に（ステップ１２１４で削除された分割単位プログラムの部分に）、ステップＳ１２０８でクローズした分割プログラム（子）のファイルへのインクルード文を挿入する（図９の１００２）。ここで、インクルード文には、分割プログラム（子）のファイルを特定する相対パス又は絶対パス等のパス情報を含む。ステップＳ１２０９の処理が終了すると、ステップＳ１２１０〜Ｓ１２１４の処理を実行し、ステップＳ１２１５へ処理を進める。
【０１０５】
上記ステップＳ１２０２〜Ｓ１２１４の処理を、ＪＳＰプログラム１１１の読み込み終了まで繰り返すことにより、図１０に示したような各分割単位プログラムに対応する分割プログラム（子）のファイルがそれぞれ生成され、且つ、図７に示したＪＳＰプログラム１１１は図９に示したように編集される。このように編集されたＪＳＰプログラム１１１を、分割プログラム（親）と称する。
【０１０６】
そして、ステップ１２１５で、プログラム分割部１０８が、ＪＳＰプログラム１１１の全ての分割単位プログラム及びグローバル情報の読み込みを終了したと判断した場合には、図示しないステップにおいて、上記ステップＳ５１０，Ｓ５１１の処理により編集生成された分割プログラム（親）も分割後ＪＳＰプログラム１１２として外部記憶装置１０４に保存し、処理を終了する。
【０１０７】
以上示したように、本実施形態で、プログラム分割部１０８が、ユーザが指定した数の分割プログラムを含むように、プログラム生成部１０７が生成したプログラムを分割する構成を有する。これにより、ユーザにより指定された分割単位数の分割単位プログラムを含んだ分割プログラムを、ユーザによる手作業の編集無しで容易に生成することができる。
【０１０８】
従って、より少ない分割プログラムを生成して、コンパイル処理を効率的に行うことができるようにしたり、コンパイルエラーを起こりにくくしたりすることが可能な分割プログラムを生成することができる。
【０１０９】
即ち、細かく分割するとより多くの情報を処理できる代わりに、初期コンパイルが遅くなるというトレードオフがあるが、ユーザがケースに応じてこれを選択することが出来るようになる。
【０１１０】
なお、図１２のステップ１２０１で、ステップ３０２で生成されたＪＳＰプログラム１１１のサイズと、コンパイラのコンパイル制限値とを取得し、該ＪＳＰプログラム１１１のサイズと該コンパイル制限値とを比較し、該ＪＳＰプログラム１１１のサイズが該コンパイル制限値を越える場合、ステップ１２０２の処理を実行し（分割プログラムを生成する処理を実行し）、一方、越えない場合、分割プログラムを生成する処理を実行せず、終了するように構成してもよい。
【０１１１】
なお、コンパイル制限値は、コンパイラがコンパイル可能なサイズを示すものであり、コンパイラから動的に取得可能である。なお、このコンパイル制限値を設定ファイル等として、予め外部記憶装置１０４に格納しておいてもよい。
【０１１２】
〔第３実施形態〕
上記第２実施形態では、ユーザが指定した数の分割単位プログラムを含むように、分割プログラムを生成する構成について説明した。本実施形態では、分割プログラムを、ユーザが指定した数以内の分割単位プログラムを含ませ、且つ、分割プログラムのサイズがコンパイル制限値を越えないように生成するように構成する。以下、図１３，図１４を参照して詳細に説明する。
【０１１３】
図１３は、本発明における第５の制御処理手順の一例を示すフローチャートであり、本発明の第３実施形態におけるプログラム分割処理（図３のＳ３０３）に対応する。なお、このフローチャートの処理は、図２に示したＣＰＵ２０１が外部記憶装置１０４に格納されたプログラムをＲＡＭ２０２に読み出して実行するプログラム分割部１０８により実現される。なお、図中、Ｓ１２０１〜Ｓ１２１５，Ｓ１３００は各ステップを示す。また、図１２と同一のステップには同一のステップ番号を付してあり、説明は省略する。
【０１１４】
プログラム分割部１０８は、ステップＳ１２１０で、処理中の分割プログラム（ファイル）があると判断した場合には、ステップＳ１３００に処理を進める。
【０１１５】
ステップＳ１３００では、プログラム分割部１０８は、コンパイル制限サイズ処理を実行し、ステップＳ１２１３に処理を進める。なお、ステップＳ１３００のコンパイル制限サイズ処理の詳細は図１４に示す。
【０１１６】
図１４は、本発明における第６の制御処理手順の一例を示すフローチャートであり、図１３のステップＳ１３００のコンパイル制限サイズ処理に対応する。なお、このフローチャートの処理は、図２に示したＣＰＵ２０１が外部記憶装置１０４に格納されたプログラムをＲＡＭ２０２に読み出して実行するプログラム分割部１０８により実現される。なお、図中、Ｓ１３０１〜Ｓ１３０３は各ステップを示す。
【０１１７】
ステップＳ１３０１において、プログラム分割部１０８は、処理中の分割プログラム（ファイル）のサイズ、処理中の分割単位プログラムのサイズ，コンパイラのコンパイル制限値を取得する。そして、プログラム分割部１０８は、処理中の分割プログラムのサイズと処理中の分割単位プログラムのサイズの合計値が、コンパイル制限値を超えるか否かを判断する。
【０１１８】
そして、プログラム分割部１０８が、処理中の分割プログラムのサイズと処理中の分割単位プログラムのサイズの合計値がコンパイル制限値を超えないと判断した場合には、図１３のステップＳ１２１３に処理を進める。
【０１１９】
一方、プログラム分割部１０８が、処理中の分割プログラムのサイズと処理中の分割単位プログラムのサイズの合計値がコンパイル制限値を超えると判断した場合には、ステップＳ１３０２に処理を進める。
【０１２０】
ステップＳ１３０２では、プログラム分割部１０８は、処理中の分割プログラムのファイルをクローズする。これにより、分割プログラムが作成される。この分割プログラムを、分割プログラム（子）と称する。なお、分割プログラム（子）は分割後ＪＳＰプログラム１１２の１つとして外部記憶装置１０４等に記憶される。
【０１２１】
次に、ステップＳ１３０３では、プログラム分割部１０８は、ＪＳＰプログラム１１１内に（図１３のステップ１２１４で削除された分割単位プログラムの部分に）、ステップＳ１３０１でクローズした分割プログラム（子）のファイルへのインクルード文を挿入する（図９の１００２）。ここで、インクルード文には、分割プログラム（子）のファイルを特定する相対パス又は絶対パス等のパス情報を含む。ステップＳ１３０３の処理が終了すると、図１３のステップＳ１２１３に処理を進める。
【０１２２】
以上の処理を実行することにより、コンパイル処理を効率的に行うことができ、コンパイルエラーを防ぐことができる分割プログラムを生成することができる。
【０１２３】
〔第４実施形態〕
上記第１実施形態では、自動生成したプログラムを分割する構成について説明した。本実施形態では、第１の実施形態で示したプログラム分割処理で分割されたプログラムを、効率良くコンパイルできるサイズに合成する「プログラム合成」処理を行うように構成する。以下、図１５，図１６を参照して詳細に説明する。
【０１２４】
図１５は、本発明における第７の制御処理手順の一例を示すフローチャートであり、本発明の第４実施形態における全体制御部１０５で行われる処理全体に対応する。なお、このフローチャートの処理は、図２に示したＣＰＵ２０１が外部記憶装置１０４に格納されたプログラムをＲＡＭ２０２に読み出して実行する全体制御部１０５により実現される。なお、図中、Ｓ３０１〜Ｓ３０３，Ｓ１４００は各ステップを示す。また、図１２と同一のステップには同一のステップ番号を付してあり、説明は省略する。
【０１２５】
プログラム分割部１０８は、ステップＳ３０３のプログラム分割処理を終了すると、ステップＳ１４００に処理を進め、プログラム合成処理を実行する。なお、ステップＳ１４００のプログラム合成処理の詳細は図１６に示す。
【０１２６】
図１６は、本発明における第８の制御処理手順の一例を示すフローチャートであり、図１５のステップＳ１４００のプログラム合成処理に対応する。なお、このフローチャートの処理は、図２に示したＣＰＵ２０１が外部記憶装置１０４に格納されたプログラムをＲＡＭ２０２に読み出して実行するプログラム分割部１０８により実現される。なお、図中、Ｓ１４０１〜Ｓ１４１０は各ステップを示す。
【０１２７】
ステップＳ１４０１において、プログラム分割部１０８は、新規に空の合成プログラムファイルを外部記憶装置１０４内に作成する。
【０１２８】
次に、ステップＳ１４０２において、プログラム分割部１０８は、図３のステップＳ３０３で分割された複数の分割プログラム（子）から１つ分割プログラム（子）を取得する。以下、この分割プログラム（子）を「今回の分割プログラム」と呼ぶ。
【０１２９】
次に、ステップＳ１４０３において、プログラム分割部１０８は、処理中の合成プログラムのサイズ、今回の分割プログラムのサイズ，コンパイラのコンパイル制限値を取得する。そして、プログラム分割部１０８は、処理中の合成プログラムのサイズと今回の分割プログラムのサイズの合計値が、コンパイル制限値を超えるか否かを判断する。
【０１３０】
そして、プログラム分割部１０８が、処理中の合成プログラムのサイズと今回の分割プログラムのサイズの合計値がコンパイル制限値を超えないと判断した場合には、ステップＳ１４０４に処理を進める。
【０１３１】
ステップＳ１４０４では、プログラム分割部１０８は、今回の分割プログラムの内容（「グローバル情報」，「分割単位プログラム」）を処理中の合成プログラムにコピーする。ここで、空の合成プログラムに初めてコピーする場合は、今回の分割プログラムの「グローバル情報」及び「分割単位プログラム」を処理中の合成プログラムにコピーする。しかし、既に合成プログラムに「グローバル情報」が含まれている場合（即ち、２回目以降のコピー処理）の場合は、今回の分割プログラム内の「分割単位プログラム」のみを処理中の合成プログラムにコピーする。
【０１３２】
次にステップＳ１４０５において、プログラム分割部１０８は、ステップ１４０４でコピーされた分割プログラムを削除する。
【０１３３】
さらにステップＳ１４０６において、プログラム分割部１０８は、元のＪＳＰプログラム（分割プログラム（親））に挿入されている今回の分割プログラムを特定するためのインクルード文を削除する。そして、ステップＳ１４１０に処理を進める。
【０１３４】
次に、ステップ１４１０において、プログラム分割部１０８は、分割プログラム（子）の全てについてＳ１４０２〜Ｓ１４０６の処理を終了したか否かを判定し、未だ終了していないと判断した場合には、ステップＳ１４０２に処理を戻す。
【０１３５】
また、ステップＳ１４０３で、プログラム分割部１０８が、処理中の合成プログラムのサイズと今回の分割プログラムのサイズの合計値が、コンパイル制限値を超えると判断した場合には、ステップＳ１４０７に処理を進める。
【０１３６】
ステップＳ１４０７では、プログラム分割部１０８は、処理中の合成プログラムをクローズする。
【０１３７】
次に、ステップＳ１４０８において、プログラム分割部１０８は、元のＪＳＰプログラム（分割プログラム（親））に、ステップ１４０６でクローズした合成プログラムを特定するためのインクルード文を挿入する。
【０１３８】
次に、ステップＳ１４０９において、プログラム分割部１０８は、新たな空の合成プログラムファイルを作成し、ステップ１４０４〜Ｓ１４０６の処理を実行し、ステップＳ１４１０に処理を進める。
【０１３９】
そしてステップ１４１０で、プログラム分割部１０８が、分割プログラム（子）の全てについてＳ１４０２〜Ｓ１４０６の処理を終了したと判断した場合には、図示しないステップにおいて、上記の処理により編集生成された合成プログラムを分割後ＪＳＰプログラム１１２として外部記憶装置１０４に保存し、処理を終了する。
【０１４０】
以上の処理により、第２実施形態で示したようなユーザ指定による試行錯誤の分割でなく、第１実施形態に示した分割方法により一旦分割した後、コンパイル可能なサイズまでファイルを自動的に再合成することができる。これにより、コンパイル処理を効率的に行うことができ、コンパイルエラーを防ぐことができる分割プログラム（合成プログラム）を生成することができる。
【０１４１】
なお、本実施形態の分割方法は、第２，３，４実施形態で示したように、最初から分割をしたものを生成するのではなく、有意なマーク情報（分割識別情報）を使用して分割した後に、プログラム合成処理を実行して、再合成する構成を有するが、さらに、このプログラム合成処理の後に、更なる処理（例えば、コンパイル処理）を追加するように構成してもよい。
【０１４２】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０１４３】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１４４】
以下、図１７に示すメモリマップを参照して本発明に係るプログラム生成装置（コンピュータ）で読み取り可能なデータ処理プログラムの構成について説明する。
【０１４５】
図１７は、本発明に係るプログラム生成装置（コンピュータ）で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０１４６】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１４７】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１４８】
本実施形態における図３，図４，図８，図１２，図１３，図１４，図１５，図１６に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１４９】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１５０】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０１５１】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＤＶＤ−ＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０１５２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５３】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１５４】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１５５】
さらに、本発明を達成するためのソフトウェアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１５６】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図面の簡単な説明】
【０１５７】
【図１】本発明の一実施形態を示すプログラム生成装置のシステム全体を示す構成図である。
【図２】図１のプログラム生成装置１０３のハードウェア構成を示すブロック図である。
【図３】本発明における第１の制御処理手順の一例を示すフローチャートである。
【図４】本発明における第２の制御処理手順の一例を示すフローチャートである。  本発明における第２の制御処理手順の一例を示すフローチャートである。
【図５】図１に示したユーザ定義情報の一例を示す図である。
【図６】図１に示したＪＳＰプログラムテンプレートの一例を示す図である。
【図７】図１に示したＪＳＰプログラムの一例を示す図である。
【図８】本発明における第３の制御処理手順の一例を示すフローチャートである。
【図９】図８に示したプログラム分割処理により生成される分割プログラム（親）の一例を示す図である。
【図１０】図８に示したプログラム分割処理のステップＳ５０６〜Ｓ５０９で生成された分割プログラム（子）の一例を示す図である。
【図１１】本発明の第２実施形態におけるプログラム生成命令画面の一例を示す図である。
【図１２】本発明における第４の制御処理手順の一例を示すフローチャートである。
【図１３】本発明における第５の制御処理手順の一例を示すフローチャートである。
【図１４】本発明における第６の制御処理手順の一例を示すフローチャートである。
【図１５】本発明における第７の制御処理手順の一例を示すフローチャートである。
【図１６】本発明における第８の制御処理手順の一例を示すフローチャートである。
【図１７】本発明に係るプログラム生成装置（コンピュータ）で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【符号の説明】
【０１５８】
１０１  入力装置
１０２  表示装置
１０３  プログラム生成装置
１０４  外部記憶装置
１０５  全体制御部
１０６  画面制御部
１０７  プログラム生成部
１０８  プログラム分割部
１０９  ユーザ定義情報
１１０  ＪＳＰプログラムテンプレート
１１１  ＪＳＰプログラム
１１２  分割後ＪＳＰプログラム
【図１】
2007241364.tif 000003
【図２】
2007241364.tif 000004
【図３】
2007241364.tif 000005
【図４】
2007241364.tif 000006
【図５】
2007241364.tif 000007
【図６】
2007241364.tif 000008
【図７】
2007241364.tif 000009
【図８】
2007241364.tif 000010
【図９】
2007241364.tif 000011
【図１０】
2007241364.tif 000012
【図１１】
2007241364.tif 000013
【図１２】
2007241364.tif 000014
【図１３】
2007241364.tif 000015
【図１４】
2007241364.tif 000016
【図１５】
2007241364.tif 000017
【図１６】
2007241364.tif 000018
【図１７】
2007241364.tif 000019