説明

データ動的読み込み型テンプレート適用方法および装置

【課題】設計データを入力として受け取りテンプレートを適用する装置において、設計データを必要な時点で動的に読み込むことによって、装置がテンプレートを適用するときのメモリ消費量を削減し処理時間を短縮可能とする装置と方法並びにプログラムの提供。
【解決手段】設計データの読み込みを要求する変換手段14と、変換手段からの要求を受け設計データ入力制御ルール13を参照して設計データの読み込みを制御する入力制御部17と、入力制御部の制御のもと、要求された設計データを読み込み、すでに読み込まれた設計データに基づき作成された構文木に今回読み込んだ設計データを付加してなる抽象構文木20を合成する設計データ変換手段19を備え、変換手段14は、設計データ変換手段19で合成された抽象構文木20から埋め込むべきデータを取得しテンプレートに適用して出力データを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理技術に関し、特に、テンプレートとデータから出力データを生成するテンプレート適用装置及び方法並びにコンピュータプログラムよりなる。
【背景技術】
【0002】
テンプレートとデータから出力データを生成するテンプレート適用装置の従来の典型的な構成について、図16を参照して説明する。図16は、テンプレートと設計データから出力データを保存するテンプレート適用装置の一般的な構成を表したものである。図16を参照すると、従来のテンプレート適用装置は、各手段の制御を行う制御部111と、設計データ解析手段115と、変換手段117と、テンプレートに埋め込まれるデータを格納する設計データ114を記憶した記憶部と、抽象構文木116を記憶した記憶部と、出力データ119の雛形を格納したテンプレート118を記憶した記憶部と、出力データ119を記憶した記憶部と、制御部111が設計データ解析手段115や変換手段117を制御するためのデータを格納する出力データ生成ルール112を記憶した記憶部と、設計データ入力制御ルール113を記憶した記憶部とを備えて構成されている。図17は、図16の装置の動作を示すフローチャートである。なお、図16では、設計データ114を記憶した記憶部を参照番号114で表している。出力データ生成ルール112、抽象構文木116、テンプレート118、出力データ119についても同様である。これらの記憶部は同一の記憶装置の別々の記憶領域であってもよいし、別の記憶装置であってもよい。
【0003】
次に、図16の装置の動作を説明する。図17は、図16の動作を説明するための流れ図である。
【0004】
ステップS31: 制御部111は、出力データ生成ルール112と設計データ入力制御ルール113をそれぞれ読み込む。
【0005】
ステップS32: 制御部111は、設計データ解析手段115を実行する。
【0006】
ステップS33: 設計データ解析手段115は、設計データ114を読み込んで解析し、解析結果を、抽象構文木116に保存する。
【0007】
ステップS34: 制御部111は、変換手段117を実行する。
【0008】
ステップS35: 変換手段117はテンプレート118と抽象構文木116を読み込む。
【0009】
ステップS36: 変換手段117は変換処理を行い、変換結果を、出力データ119に保存する。
【発明の開示】
【発明が解決しようとする課題】
【0010】
上記した従来のテンプレート適用装置には、次の問題があることを本発明者は知見した。
【0011】
第1の問題点は、設計データをテンプレートに適用して出力データを保存する処理速度が遅い、ということである。その理由は、設計データ保存領域に格納されている設計データを、テンプレートの適用処理に必要か否かにかかわらず、初めに、全て読み込んで処理を行う構成とされており、全ての設計データを読み終えるまで、変換手段117による変換処理を行うことができない、ためである。
【0012】
第2の問題点は、設計データをテンプレートに適用して出力データを保存するときにコンピュータのメモリを多く消費するということである。その理由は、設計データ保存領域に格納されている設計データを、テンプレートの適用処理に必要か否かにかかわらず、初めに全て読み込む、ためである。従来のテンプレート適用装置では、テンプレートの適用に、不必要な設計データを含む全てのデータを読み込む構成とされているため、処理に必要なメモリ消費量は、全設計データの大小に比例している。
【0013】
このように、従来のテンプレート適用装置においては、テンプレート適用に設計データが必要か否かにかかわらず、設計データを初めに全て読み込むため、テンプレート適用装置が動作するときに使用するメモリ領域は、設計データのサイズに比例して大きくなり、さらに、処理時間も長くなっていた。
【0014】
したがって、本発明の主たる目的は、設計データを入力として受け取りテンプレートを適用する装置において、装置がテンプレートを適用するときのメモリ消費量を削減するとともに、処理時間を短縮可能とする装置と方法並びにプログラムを提供することにある。
【課題を解決するための手段】
【0015】
本願で開示される発明は、上記目的を達成するため概略以下の構成とされる。
【0016】
本発明の1つのアスペクトに係る装置は、所定の形式のデータを格納しているデータ記憶部と、出力データの雛形を規定したテンプレートを記憶しているテンプレート記憶部と、前記テンプレート記憶部より前記テンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの処理対象箇所が、データを埋め込む箇所に該当しており、且つ、埋め込まれるデータが前記データ記憶部からの読み込みを必要とするものであると判別した場合、前記データの読み込みを要求する変換手段と、前記変換手段からの読み込み要求を受け、前記データ記憶部より前記データを読み込むように制御する制御手段とを備え、前記変換手段は、読み込まれたデータを、前記テンプレートを適用して出力データを生成する、ことを特徴とする。
【0017】
本発明に係る装置において、前記データ記憶部に格納されたデータを読み出し、読み込み済みのデータで作成されてなるデータ構造に、読み出されたデータをあらたに付加してなるデータ構造を、前記変換手段に渡すデータ解析手段を備えた構成としてもよい。
【0018】
本発明に係る装置において、前記テンプレートには、出力データの生成のために埋め込むべきデータが、データ構造において前記データに至る一連のノードよりなるパスで指定されており、前記変換手段は、前記テンプレートの処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成されたデータ構造では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する構成としてもよい。
【0019】
本発明に係る装置において、前記データ記憶部に格納されたデータは、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、それぞれの前記ノードは、それぞれの値を有し、末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報、又は、前記データ記憶部から読み出されて付加されることを示す情報と読み出されるべきデータ名を有する構成としてもよい。
【0020】
本発明に係る装置において、前記データ記憶部には、互いに形式の異なる複数のデータが格納されており、前記データ解析手段は、前記互いに異なる形式のそれぞれに対応して複数設けられ、前記制御手段の制御のもと、読み込むデータの形式に対応するデータ解析手段が選択され、データを読み出し、現在構成されているデータ構造に、読み出されたデータを付加して前記変換手段に渡す、構成としてもよい。
【0021】
本発明の他のアスペクトに係る装置は、所定の形式のデータを格納したデータ記憶部と、出力データの雛形を規定したテンプレートを記憶したテンプレート記憶部と、前記テンプレート記憶部からテンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの未処理部が、データの埋め込みを必要としており、埋め込むべきデータを得るには、読み込み済みのデータで作成されてなる現在のデータ構造(「構文木」という)では対応できず、さらに別のデータの読み込みが必要であると判断した場合、前記データの読み込みを要求する変換部と、前記変換部からの読み込み要求を受けて、データを読み込むように制御する入力制御部と、前記入力制御部の制御のもと、前記要求されたデータを前記データ記憶部より読み込み、すでに読み込まれたデータに基づき作成され記憶部に格納されている前記構文木に、今回読み込んだデータを付加してなる構文木を合成して前記記憶部に格納するデータ解析部と、を備え、前記変換部は、前記データ解析部であらたに合成された前記構文木から埋め込むべきデータを取得し、前記テンプレートに適用して出力データを生成する構成とされる。
【0022】
本発明の他のアスペクトに係る方法は、所定の形式のデータを格納しているデータ記憶部と、出力データの雛形を規定したテンプレートを記憶しているテンプレート記憶部とを備えたデータ処理装置(コンピュータ、CPU、情報処理装置、プロセッサ等であってもよい)による出力データ生成方法であって、
前記テンプレート記憶部より前記テンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの処理対象箇所が、データを埋め込む箇所に該当しており、且つ、埋め込まれるデータが前記データ記憶部からの読み込みを必要とするものであると判別した場合、前記データの読み込みを要求する変換工程と、
前記読み込み要求を受けて前記データ記憶部より前記データを読み込むように制御する入力制御工程と、
を含み、前記変換工程では、読み込まれたデータを、前記テンプレートを適用して出力データを生成する。
【0023】
本発明に係る方法において、前記データ記憶部に格納されたデータを読み出し、読み込み済みのデータで作成されてなるデータ構造に、読み出されたデータをあらたに付加し、前記変換工程に渡す処理を行うデータ解析工程を含むようにしてもよい。
【0024】
本発明に係る方法において、前記テンプレートには、出力データの生成のために埋め込むべきデータが、データ構造において、前記データに至る一連のノードよりなるパスで指定されており、前記変換工程では、前記テンプレートの処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成されたデータ構造では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する、ようにしてもよい。
【0025】
本発明に係る方法において、前記データ記憶部に格納されたデータは、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、それぞれの前記ノードは、それぞれの値を有し、末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報、又は、前記データ記憶部から読み出されて付加されることを示す情報と読み出されるべきデータ名を有する、ようにしてもよい。
【0026】
本発明に係る方法において、前記データ記憶部には、互いに形式の異なる複数のデータが格納されており、前記データ解析工程が、前記互いに異なる形式のそれぞれに対応して複数設けられ、前記入力制御工程の制御のもと、読み込むデータの形式に対応するデータ解析工程によりデータが読み出され、現在のデータ構造に、今回読み出されたデータを付加して前記変換部に渡す、ようにしてもよい。
【0027】
本発明の他のアスペクトに係るコンピュータ・プログラムは、例えば記憶媒体等に蓄積され、データ処理装置に読み出し可能とされ、所定の形式のデータを格納しているデータ記憶部と、出力データの雛形を規定したテンプレートを記憶しているテンプレート記憶部と、を備えたデータ処理装置に、
前記テンプレート記憶部より前記テンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの処理対象箇所が、データを埋め込む箇所に該当しており、且つ、埋め込まれるデータが前記データ記憶部からの読み込みを必要とするものであると判別した場合、前記データの読み込みを要求する変換処理と、
前記読み込み要求を受けて前記データ記憶部より前記データを読み込むように制御する入力制御処理と、
前記変換処理において、読み込まれたデータを、前記テンプレートを適用して出力データを生成する処理と、
を実行させるプログラムよりなる。
【0028】
本発明に係るプログラムにおいて、前記データ記憶部に格納されたデータを読み出し、読み込み済みのデータで作成されてなるデータ構造に、読み出されたデータをあらたに付加し、前記変換工程に渡す処理を行うデータ解析処理を、前記データ処理装置に実行させるプログラムをさらに含むようにしてもよい。
【発明の効果】
【0029】
本発明によれば、設計データに記載された全てのデータを初めに読み込むことなく、必要な設計データのみを選択的に読み込みながら、テンプレートの適用を行うようにしたため、全ての設計データを読み込む場合と比べて、メモリの消費量を削減することができる。また、本発明によれば、テンプレートを適用する処理時間を短くすることができる。
【発明を実施するための最良の形態】
【0030】
上記した本発明についてさらに詳細に説述すべく添付図面を参照して以下に説明する。図1は、本発明の一実施形態の構成を示す図である。図1を参照すると、本実施形態に係る装置は、起動部11、出力データ生成ルール12、設計データ入力制御ルール13、変換手段14、テンプレート15、出力データ16、入力制御部17、設計データ18−A〜18−N、設計データ変換手段19、抽象構文木20を備えている。出力データ生成ルール12、設計データ18−A〜18−N、入力制御ルール13、テンプレート15、出力データ16、抽象構文木20は、それぞれ記憶部に格納されるが、図1では、記憶する内容と記憶部とは同一の参照番号が用いられている。なお、設計データ18−A〜18−N、各ルール、テンプレート等は、別々の記憶装置を用意してもよいし、あるいは、同一の記憶装置の別々の記憶領域であってもよいことは勿論である。
【0031】
起動部11は、出力データ生成ルール12を記憶部より読み込み、変換手段14を実行し、テンプレートの適用を開始する。
【0032】
変換手段14は、出力データ16の雛形を格納したテンプレート15を記憶した記憶部より、テンプレート15を読み込み、出力データ16の生成を開始する。変換手段14は、読み込んだテンプレート15にしたがって出力データを作成するにあたり、テンプレートの処理対象箇所が、データを埋め込む箇所(例えばテンプレート15内に設計データによる置き換え指定がある箇所)に該当しており、且つ、埋め込まれるデータが読み込みを必要とするものであると判別した場合、入力制御部17に、設計データの追加の読み込みを要求する。
【0033】
本実施形態において、テンプレート15には、例えば、出力データ16の生成のために埋め込むべきデータが、データ構造において、データに至る一連のノードよりなるパスで指定されている。かかる場合、変換手段14では、テンプレート15の処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成されたデータ構造では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する。なお、記憶部(設計データ18−A〜18−Nの記憶部)に格納される設計データは、それぞれ、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報を有するか、又は、前記データ記憶部から読み出されて付加されることを示す情報(遅延マーク)と読み出されるべきデータ名を有する構成としてもよい(図3参照)。変換手段14は、テンプレート15内の設計データが必要でない箇所では、変換せずに、そのまま出力データ16として格納する。
【0034】
入力制御部17は、変換手段14より設計データの追加読み込み要求が行われると、設計データ入力制御ルール13を読み込む。設計データ入力制御ルール13には、設計データ18−A〜18−Nのいずれのファイルを読み込むのかを判断するための情報が規定されている。
【0035】
入力制御部17は、設計データ入力制御ルール13に基づき、読み込むべき設計データを判断し、設計データ変換手段19に対して、設計データの読み込み処理の開始を指示する。
【0036】
設計データ変換手段19は、設計データを読み込み、それまでに読み込まれた設計データで構成されている抽象構文木(Abstract Syntax Tree)20(図4参照)を読み込み、あらたに読み込んだ設計データを付加してあらたな抽象構文木20を生成し、記憶部に保存する。
【0037】
記憶部に保存された抽象構文木20は、設計データの要求を行った変換手段14に与えられる。
【0038】
変換手段14は、記憶部に保存された抽象構文木20に記載されたデータを用いて、テンプレートの適用を行い、出力データ16に格納する。
【0039】
本発明によれば、設計データに記載された全てのデータを初めに読み込むことなく、必要な設計データのみを読み込みながら、テンプレートの適用を行うことができる。このため、本実施形態によれば、メモリの消費量を従来装置よりも削減することができ、かつ、テンプレートを適用する処理時間を短くすることができる。以下、本発明の実施例に即して詳細に説明する。
【実施例】
【0040】
図1を参照して、本発明の一実施例のデータ処理装置(情報処理装置)の構成を説明する。図1を参照すると、本発明の第1の実施例は、設計データから出力データに変換する変換手段の起動制御をする起動部11と、起動部11によって起動される変換手段14と、変換手段14に制御される入力制御部17と、入力制御部に制御される設計データ変換手段19、およびこれらの手段が扱う出力データ生成ルール12と、設計データ入力制御ルール13と、テンプレート15と、出力データ16と、設計データ18−A〜18−N、抽象構文木20を備えて構成されている。設計データ変換手段19は、設計データ解析手段19−Aと、解析結果合成手段19−Zから構成されている。これらの手段は、それぞれ概略つぎのように動作する。なお、出力データ生成ルール12、設計データ入力制御ルール13、テンプレート15、出力データ16、抽象構文木20は同一の記憶装置の別々の記憶領域に格納してもよいし、あるいは、別々の記憶装置に格納するようにしてもよい。
【0041】
起動部11は、はじめに、出力データ生成ルール12の読み込みと、変換手段14の実行制御を行う。
【0042】
変換手段14は、テンプレート15と抽象構文木20とを記憶部から読み込み、出力データの形式に変換し、出力データ16に保存する。必要に応じて入力制御部17の制御を行う。
【0043】
入力制御部17は、設計データ入力制御ルール13を読み込み、設計データ変換手段19の実行制御を行う。
【0044】
設計データ変換手段19は、入力制御部17から指定された設計データ解析手段19−Aを用いて設計データ18−A〜18−Nの中から入力制御部17に指定された設計データを解析し、解析結果合成手段19−Zに解析結果を渡す。
【0045】
解析結果合成手段19−Zは、抽象構文木20を読み込んだ結果と、設計データ解析手段19−Aから渡された解析結果を合成して、合成結果を更新された抽象構文木20として記憶部保存する。変換手段14は、記憶部に保存された抽象構文木20に記載されたデータを用いて、テンプレートの適用を行い、出力データ16に格納する。
【0046】
起動部11、変換手段14、入力制御部17、設計データ変換手段19は、データ処理装置(情報処理装置)で実行されるコンピュータ・プログラムによりその処理・機能を実現することができる。コンピュータ・プログラムは、データ処理装置(情報処理装置)で読み取り可能な記憶媒体、または受信可能な通信媒体を介してデータ処理装置(情報処理装置)にロードされ実行される。
【0047】
図2は、本発明の一実施形態の動作を示す流れ図である。図1及び図2を参照して本発明の第1の実施例の動作について詳細に説明する。
【0048】
ステップS1: 起動部11は、出力データ生成ルール12を読み込む。出力データ生成ルール12には変換手段14が読み込むテンプレート名が定義されている。テンプレート名は、一意に特定できる名前がつけられている。
【0049】
図8は、出力データ生成ルール12の一例を示す図である。出力データ生成ルール12は、テンプレートと出力データの対で表される。
【0050】
図8に示す例では、
・テンプレートとして、テンプレートAを用いる、
・出力データとして、出力ファイルAを用いる、
ことが規定されている。
【0051】
再び図1及び図2を参照して動作を説明する。
ステップS2: 起動部11は、変換手段14を実行する。このとき、起動部11は、出力データ生成ルール12に記載されたテンプレートの名前を渡す。
【0052】
ステップS3: 変換手段14は、起動部11から渡された名前と一致するテンプレート15を読み込む。
【0053】
図5は、テンプレート15の一例である。このテンプレート15は、変換せずに出力する部分と、変換手段14で抽象構文木20から取得したデータで置き換えられる部分とから構成されている。
【0054】
置き換えられる部分は、”${”と”}”で囲まれた部分である。変換手段14は、置き換えられる部分の文字列に対応するノードを、抽象構文木20から取得して、そのノードの値で置き換える。
【0055】
図5のテンプレートの1行目の”ノード1は${ノード1}”は、”ノード1は”をそのまま出力し、”${ノード1}”の部分は、ノード1の値で置き換えて出力されることを規定している。2行目の”ノード2は${ノード1.ノード2}”は、”ノード2は”をそのまま出力し、”${ノード1.ノード2}”の部分は、例えば図4の抽象構文木20におけるノード1からノード2のパスで到達するノード2の値で置き換えて出力されることを規定している。3行目の”ノード5は${ノード1.ノード2.ノード4.ノード5}”は、”ノード5は”をそのまま出力し、”${ノード1.ノード2.ノード4.ノード5}”の部分は、例えば図4の抽象構文木20におけるノード1、ノード2、ノード4、ノード5のパスで到達するノード5の値で置き換えて出力されることを規定している。4行目の”ノード9は${ノード1.ノード3.ノード9}”は、”ノード9は”をそのまま出力し、”${ノード1.ノード3.ノード9}”の部分は、例えば図4の抽象構文木20におけるノード1、ノード3、ノード9のパスで到達するノード5の値で置き換えて出力されることを規定している。なお、本実施例では、ノード1等の値としては、テキスト(英数字、特殊文字、かな漢字等)が用いられるが、本発明は、かかる構成に限定されるものでないことは勿論である。
【0056】
再び図1及び図2を参照して動作を説明する。
ステップS4: 変換手段14は、テンプレート15の先頭から処理を行う。
【0057】
ステップS5: 変換手段14は、テンプレート15の未処理部分があるか判定し、未処理部分がある場合、ステップS6に移り、未処理部分がない場合、ステップS15に飛び、終了する。
【0058】
ステップS6: 変換手段14は、抽象構文木20から取得したデータで置き換える必要のある部分の存在する場合には(設計データの埋め込みが必要?)、ステップS7を行い、存在しない場合には、ステップS14に移行する。
【0059】
変換手段14は、抽象構文木20の内容で置き換えられる部分の処理を開始するまで、テンプレート15を変換せずに、出力データ16に保存し続ける。
【0060】
ステップS8: 変換手段14が、抽象構文木20の内容で置き換えられる部分の処理を開始する場合、はじめに抽象構文木20に設計データを変換した結果が保存されているかどうかを確認し、保存されていない場合には、以下のステップA乃至Eの処理を順に行う。
【0061】
ステップA:変換手段14は、入力制御部17に対して、最初に読み込む設計データの読み込み要求を行う。
【0062】
ステップB:入力制御部17は、設計データ入力制御ルール13から最初に読み込む設計データの名前を取得して、設計データ変換手段19の設計データ解析手段19−Aに取得した名前を持つ設計データの読み込み要求を行う(図2のステップS11)。
【0063】
図7は、設計データ入力制御ルール13の一例である。図7に記載された設計データ入力制御ルール13では、各行に、設計データの名前と、利用する設計データ解析手段との対が記載されており、1行目に記載された設計データが最初に読み込む設計データを表す。
【0064】
再び図1及び図2を参照して動作を説明する。
ステップC: 設計データ変換手段19は、設計データ18−A〜18−Nの中から、入力制御部17に指定された名前を持つ設計データを選択し、設計データ解析手段19−Aを用いて、その設計データの解析を行う(図2のステップS12)。
【0065】
図3(A)乃至(C)は、設計データ18−A〜18−Nの一例を示す図である。設計データは名前とデータから構成される。
【0066】
図3(A)乃至(C)に示す例では、3つの設計データが存在し、それぞれ設計データA、設計データB、設計データCという名前を持つ。
【0067】
設計データAには、”@遅延マーク”で表されるノードが含まれており、このノードの内容は、他の設計データに記載されていることを意味している。
【0068】
図3(A)の設計データAにおいて、”@遅延マーク:名前B”という値のノードの内容は、”設計データB”であり、”@遅延マーク:名前C”という値のノードの内容は、設計データCであることを表している。
【0069】
再び図1及び図2を参照して動作を説明する。
ステップD:解析結果合成手段19−Zは、設計データ解析手段19−Aの解析結果を抽象構文木20に保存する(図2のステップS13)。
【0070】
ステップE: 抽象構文木20に設計データを変換した結果が保存されていることを確認した後、変換手段14は抽象構文木20のノードをたどる(図2のステップS7)。
【0071】
変換手段14は、抽象構文木20のたどった各ノードの値に応じて以下処理を行う。
【0072】
ステップS8:ノードの値が遅延マークでないときは、ステップS9に移り、そのまま次のノードをたどる。
【0073】
ステップS8において、ノードの値が遅延マークであるとき、ノードをたどるのを中断し、以下の処理を順に行う。
【0074】
ステップS10: 変換手段14は、入力制御部17に対し遅延マークに対応する設計データの読み込み要求を行う。遅延マークは各設計データに固有につけられた名前のいずれかを持っており、この名前が入力制御部17に渡される。
【0075】
ステップS11: 入力制御部17は、変換手段14から渡された設計データの名前を、設計データ変換手段19に渡し、設計データ変換手段19を実行する。
【0076】
ステップS12:設計データ変換手段19は、設計データ解析手段19−Aを用いて入力制御部17から渡された設計データの名前を持つ設計データ18−A〜18−Nの中から選択し、その設計データを解析する。
【0077】
ステップS13: 解析結果合成手段19−Zは、設計データ解析手段19−Aの解析結果と抽象構文木20を合成して、抽象構文木20に保存する。
【0078】
図4は、図3(A)乃至(C)の設計データA乃至Cを解析して、解析結果合成手段19−Zで合成した抽象構文木20の一例を示す図である。図4に示す例では、ノード1をルートとし、ルートからノード2、3がぶら下がり(分岐し)、ノード2からノード4が分岐し、ノード4からノード5、7が分岐し、ノード3からノード9が分岐し、ノード9から末端のノード10、12が分岐する階層構造(木構造)をなしている。なお、データ構造としては、木構造に限定されるものでなく、例えば先頭(ルート)をもち、親、子関係が規定できる有向グラフ等であれば、任意のデータ構造(形式)であってよい。
【0079】
再び図1及び図2を参照して動作を説明する。
ステップS9: 変換手段14が抽象構文木20から取得した情報を出力した後は、ステップS4を実行する。
【0080】
ステップS6の判定にて、設計データの埋め込みが必要でない場合、ステップS14に移行し、変換手段14は、テンプレート15の未処理部分をそのまま出力データ16に保存する。
【0081】
図6は、出力データ16の一例である。図6の出力データは、図3(A)乃至図3(C)の設計データと、図5のテンプレートとを入力として、処理した結果である。
【0082】
次に、本発明の第1の実施例の効果について説明する。
【0083】
本発明の第1の実施例では、変換手段14は、テンプレートを適用するのに必要な設計データを、必要になったときに、入力制御部17に要求しており、設計データが1つあるいは複数から構成され、テンプレートの適用に必要な設計データのみを、必要になった時点で、動的に読み込むように構成されているため、メモリの使用量と処理時間を削減できる。
【0084】
本発明の第1の実施例では、テンプレートを適用する処理時間を削減できることにある。テンプレートの適用に必要な設計データのみを読み込むため、すべての設計データを読み込む従来の技術に比較して読み込む設計データの量が減少するため、データ量の減少に比例して処理時間が減少するからである。
【0085】
次に、本発明の第2の実施例の構成について図面を参照して詳細に説明する。図9を参照すると、本発明の第2の実施例は、設計データ変換手段19が、データ構造として第1の形式(「A形式」という)設計データ解析手段19−Aと、データ構造として第1の形式と異なる形式(「N形式」という)設計データ解析手段19−Nと、解析結果合成手段19―Zを備えている。図1に示した前記第1の実施例では、入力制御部17は、一つの設計データ解析手段19−Aを制御していたのに対し、この第2の実施例では、入力制御部17は、A形式設計データ解析手段19−AからN形式設計データ解析手段19−Nの複数を制御している。
【0086】
また、設計データ変換手段19への入力となる設計データのデータ構造の形式は、図1の第1の実施例では、全ての設計データで同じであるのに対して、本発明の第2の実施例では、A形式設計データ18−Aから、N形式設計データ18−Nまでを含む複数の互いに異なる形式の設計データが含まれている。
【0087】
前記第1の実施例では、入力制御部17が、一つの設計データ解析手段19−Aを制御していたのに対して、本発明の第2の実施例では、A形式設計データ解析手段19−AからN形式設計データ解析手段19−Nまでの複数の設計データ解析手段の選択と、その実行制御を行う。
【0088】
入力制御部17が、読み込む設計データ入力制御ルール13には、設計データの名前と使用する設計データ解析手段の対が含まれる。
【0089】
図15は、本発明の第2の実施例の設計データ入力制御ルール13の一例を示す図であり、前記第1の実施例の図7に対応する。図7と相違して、設計データA、B、Cは、それぞれ、A形式設計データ解析手段、B形式設計データ解析手段、C形式設計データ解析手段に対応していることが規定されている。
【0090】
図11(A)乃至図11(C)は、本発明の第2の実施例の設計データ18の一例を示す図である。図11(A)の設計データAは、木構造であり、図11(B)の設計データBは、ノードと値を対で2次元テーブル形式で格納したデータ構造であり、図11(C)の設計データCは、ノードと値を対で格納しているが、図11(B)と異なり、一次元形式で格納したデータ構造である。
【0091】
図12は、本発明第2の実施例の抽象構文木20の一例を示す図であり、前記第1の実施例の図4に対応する。図11(A)のノード2の遅延マーク(名前B)に図11(B)の設計データBが埋め込まれ、図11(A)のノード3の遅延マーク(名前C)に図11(C)の設計データCが埋め込まれている。
【0092】
図13は、本発明第2の実施例のテンプレート15の一例を示す図であり、前記第1の実施例の図5に対応する。
【0093】
図14は、本発明第2の実施例において、変換手段14が、図13のテンプレート15に、図12の抽象構文木20を適用して生成された出力データ16の一例を示す図である。なお、本発明第2の実施例において、出力データ生成ルール12は、前記第1の実施例の図8と同一であるものとする。
【0094】
図10は、本発明の第2の実施例の動作を説明するためのフローチャートである。図10を参照すると、入力制御部17は設計データの名前と設計データ入力制御ルール13からデータの種別に対応して、A形式設計データ解析手段、…、N形式設計データ解析手段のうちから使用する設計データ解析手段を選択する処理(ステップS16)が追加されている点が相違している。選択された設計データ解析手段が、設計データを読み込んで解析する処理、解析結果合成手段19−Zの処理は、前記実施例と同一である。
【0095】
次に、本発明の第2の実施例の効果について説明する。
【0096】
本発明の第2の実施例では、図9の設計データ変換手段19に異なる形式の設計データであるA形式設計データ18−AからN形式設計データ18−Nを解析できる設計データ解析手段であるA形式設計データ解析手段19−AとN形式設計データ解析手段19−Nを含んでいる。すなわち、前記第1の実施例では、同じ形式の設計データしか扱えなかったのに対し、第2の実施例では、異なる形式の設計データを扱うことができる。
【0097】
本発明によれば、図1のテンプレートを切り替えることで、設計書からプログラムを自動生成する装置や、設計データから設計書を自動生成するためのプログラムといった用途に適用できる。なお、設計データとして、上記した所定のデータ構造(有向グラフ)等の任意の構造のデータを用いることができる。
【0098】
以上本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみ限定されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図面の簡単な説明】
【0099】
【図1】本発明の一実施例の構成を示す図である。
【図2】本発明の一実施例の動作を示すフローチャートである。
【図3】図1の設計データ18−A〜18−Nの一例を示す図である。
【図4】図1の抽象構文木20の一例を示す図である。
【図5】図1のテンプレート15の一例を示す図である。
【図6】図1の出力データ16の一例を示す図である。
【図7】図1の設計データ入力制御ルール13の一例を示す図である。
【図8】図1の出力データ生成ルール12の一例を示す図である。
【図9】本発明の第2の実施例の構成を示す図である。
【図10】本発明の第2の実施例の動作を示すフローチャートである。
【図11】図9の設計データ18−A〜18−Nの一例を示す図である。
【図12】図9の抽象構文木20の一例を示す図である。
【図13】図9のテンプレート15の一例を示す図である。
【図14】図9の出力データ16の一例を示す図である。
【図15】図9の設計データ入力制御ルール13の一例を示す図である。
【図16】従来のジェネレータの構成を示す図である。
【図17】従来のジェネレータの動作のフローチャートである。
【符号の説明】
【0100】
11 起動部
12 出力データ生成ルール
13 設計データ入力制御ルール
14 変換手段
15 テンプレート
16 出力データ
17 入力制御部
18A〜18−N 設計データ
19 設計データ変換手段
19−A〜19−N 設計データ解析手段
19−Z 解析結果合成手段
20 抽象構文木
111 制御部
112 出力データ制生成ルール
113 設計データ入力制御ルール
114 設計データ
115 設計データ解析手段
116 抽象構文木
117 変換手段
118 テンプレート
119 出力データ

【特許請求の範囲】
【請求項1】
所定の形式のデータを格納しているデータ記憶部と、
出力データの雛形を規定したテンプレートを記憶しているテンプレート記憶部と、
前記テンプレート記憶部より前記テンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの処理対象箇所が、データを埋め込む箇所に該当しており、且つ、埋め込まれるデータが前記データ記憶部からの読み込みを必要とするものであると判別した場合、前記データの読み込みを要求する変換手段と、
前記変換部からの読み込み要求を受け、前記データ記憶部より前記データを読み込むように制御する制御手段と、
を備え、
前記変換手段は、読み込まれたデータを、前記テンプレートを適用して出力データを生成する、ことを特徴とする情報処理装置。
【請求項2】
前記データ記憶部に格納されたデータを読み出し、読み込み済みのデータで作成されてなるデータ構造に、読み出されたデータをあらたに付加してなるデータ構造を、前記変換手段に渡すデータ解析手段を備えている、ことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記テンプレートには、出力データの生成のために埋め込むべきデータが、データ構造において前記データに至る一連のノードよりなるパスで指定されており、
前記変換手段は、前記テンプレートの処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成されたデータ構造では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する、ことを特徴とする請求項1記載の情報処理装置。
【請求項4】
前記データ記憶部に格納されたデータは、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、
末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報、又は、前記データ記憶部から読み出されて付加されることを示す情報と読み出されるべきデータ名を有する、ことを特徴とする請求項1乃至3のいずれか一に記載の情報処理装置。
【請求項5】
前記データ記憶部には、互いに形式の異なる複数のデータが格納されており、
前記データ解析手段は、前記互いに異なる形式のそれぞれに対応して複数設けられ、
前記制御手段の制御のもと、読み込むデータの形式に対応するデータ解析手段が選択され、データを読み出し、現在構成されているデータ構造に、読み出されたデータを付加して前記変換手段に渡す、ことを特徴とする請求項2記載の情報処理装置。
【請求項6】
所定の形式のデータを格納したデータ記憶部と、
出力データの雛形を規定したテンプレートを記憶したテンプレート記憶部と、
前記テンプレート記憶部からテンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの未処理部が、データの埋め込みを必要としており、埋め込むべきデータを得るには、読み込み済みのデータで作成されてなる現在のデータ構造(「構文木」という)では対応できず、さらに別のデータの読み込みが必要であると判断した場合、前記データの読み込みを要求する変換部と、
前記変換部からの読み込み要求を受けて、データを読み込むように制御する入力制御部と、
前記入力制御部の制御のもと、前記要求されたデータを前記データ記憶部より読み込み、すでに読み込まれたデータに基づき作成され記憶部に格納されている前記構文木に、今回読み込んだデータを付加してなる構文木を合成して前記記憶部に格納するデータ解析部と、
を備え、
前記変換部は、前記データ解析部であらたに合成された前記構文木から埋め込むべきデータを取得し、前記テンプレートに適用して出力データを生成する、ことを特徴とする情報処理装置。
【請求項7】
前記入力制御部は、前記変換部よりデータの読み込み要求が行われると、複数のデータのうちいずれのデータを読む込むかを判断する情報を規定したデータ入力制御ルールを記憶部より読み込み、前記データ入力制御ルールに基づき、読み込むべきデータを判断し、設計データの読み込み処理の開始を指示する、ことを特徴とする請求項6記載の情報処理装置。
【請求項8】
前記テンプレートには、出力データの生成のために埋め込むべきデータが、前記形式のデータ構造において前記データに至る一連のノードよりなるパスで指定されており、
前記変換部は、前記テンプレートの処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成された構文木では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する、ことを特徴とする請求項6記載の情報処理装置。
【請求項9】
前記データ記憶部に格納されたデータは、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、
末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報、又は、前記データ記憶部から読み出されて付加されることを示す情報と読み出されるべきデータ名を有する、ことを特徴とする請求項6記載の情報処理装置。
【請求項10】
前記データ記憶部は、データ構造の形式が互いに異なる複数のデータを記憶し、
データの形式に対応して複数のデータ解析部を備え、
前記入力制御部は、前記データ入力制御ルールに基づき、読み込むべきデータに対応したデータ解析部にデータの読み込みを指定する、ことを特徴とする請求項7記載の情報処理装置。
【請求項11】
所定の形式のデータを格納しているデータ記憶部と、
出力データの雛形を規定したテンプレートを記憶しているテンプレート記憶部と、
を備えたデータ処理装置による出力データ生成方法であって、
前記テンプレート記憶部より前記テンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの処理対象箇所が、データを埋め込む箇所に該当しており、且つ、埋め込まれるデータが前記データ記憶部からの読み込みを必要とするものであると判別した場合、前記データの読み込みを要求する変換工程と、
前記読み込み要求を受けて前記データ記憶部より前記データを読み込むように制御する入力制御工程と、
を含み、
前記変換工程では、読み込まれたデータを、前記テンプレートを適用して出力データを生成する、ことを特徴とする出力データ生成方法。
【請求項12】
前記データ記憶部に格納されたデータを読み出し、読み込み済みのデータで作成されてなるデータ構造に、読み出されたデータをあらたに付加し、前記変換工程に渡す処理を行うデータ解析工程を含む、ことを特徴とする請求項11記載の出力データ生成方法。
【請求項13】
前記テンプレートには、出力データの生成のために埋め込むべきデータが、データ構造において、前記データに至る一連のノードよりなるパスで指定されており、
前記変換工程では、前記テンプレートの処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成されたデータ構造では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する、ことを特徴とする請求項11記載の出力データ生成方法。
【請求項14】
前記データ記憶部に格納されたデータは、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、
末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報、又は、前記データ記憶部から読み出されて付加されることを示す情報と読み出されるべきデータ名を有する、ことを特徴とする請求項11乃至13のいずれか一に記載の出力データ生成方法。
【請求項15】
前記データ記憶部には、互いに形式の異なる複数のデータが格納されており、
前記データ解析工程が、前記互いに異なる形式のそれぞれに対応して複数設けられ、
前記入力制御工程の制御のもと、読み込むデータの形式に対応するデータ解析工程によりデータが読み出され、現在のデータ構造に、今回読み出されたデータを付加して前記変換部に渡す、ことを特徴とする請求項12記載の出力データ生成方法。
【請求項16】
所定の形式のデータを格納したデータ記憶部と、
出力データの雛形を規定したテンプレートを記憶したテンプレート記憶部と、
を備えたデータ処理装置による出力データ生成方法であって、
前記テンプレート記憶部からテンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの未処理部が、データの埋め込みを必要としており、埋め込むべきデータを得るには、読み込み済みのデータで作成されてなる現在のデータ構造(「構文木」という)では対応できず、さらに別のデータの読み込みが必要であると判断した場合、前記データの読み込みを要求する変換工程と、
前記読み込み要求を受けて、データを読み込むように制御する入力制御工程と、
前記要求されたデータを前記データ記憶部より読み込み、すでに読み込まれたデータに基づき作成され記憶部に格納されている前記構文木に、今回読み込んだデータを付加してなる構文木を合成して前記記憶部に格納するデータ解析工程と、
を含み、
前記変換工程では、前記データ解析工程であらたに合成された前記構文木から埋め込むべきデータを取得し、前記テンプレートに適用して出力データを生成する、ことを特徴とする出力データ生成方法。
【請求項17】
前記入力制御工程は、前記変換工程よりデータの読み込み要求が行われると、複数のデータのうちいずれのデータを読む込むかを判断する情報を規定したデータ入力制御ルールを記憶部より読み込み、前記データ入力制御ルールに基づき、読み込むべきデータを判断し、設計データの読み込み処理の開始を指示する、ことを特徴とする請求項16記載の出力データ生成方法。
【請求項18】
前記テンプレートには、出力データの生成のために埋め込むべきデータが、前記形式のデータ構造において前記データに至る一連のノードよりなるパスで指定されており、
前記変換部は、前記テンプレートの処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成された構文木では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する、ことを特徴とする請求項16記載の出力データ生成方法。
【請求項19】
前記データ記憶部に格納されたデータは、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、
末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報、又は、前記データ記憶部から読み出されて付加されることを示す情報と読み出されるべきデータ名を有する、ことを特徴とする請求項16記載の出力データ生成方法。
【請求項20】
前記データ記憶部は、データ構造の形式が互いに異なる複数のデータを記憶し、
データの形式に対応して複数のデータ解析工程を設け、
前記入力制御工程は、前記データ入力制御ルールに基づき、読み込むべきデータに対応したデータ解析工程にデータの読み込みを指定する、ことを特徴とする請求項17記載の出力データ生成方法。
【請求項21】
所定の形式のデータを格納しているデータ記憶部と、
出力データの雛形を規定したテンプレートを記憶しているテンプレート記憶部と、
を備えたデータ処理装置に、
前記テンプレート記憶部より前記テンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの処理対象箇所が、データを埋め込む箇所に該当しており、且つ、埋め込まれるデータが前記データ記憶部からの読み込みを必要とするものであると判別した場合、前記データの読み込みを要求する変換処理と、
前記読み込み要求を受けて前記データ記憶部より前記データを読み込むように制御する入力制御処理と、
前記変換処理において、読み込まれたデータを、前記テンプレートを適用して出力データを生成する処理と、
を実行させるプログラム。
【請求項22】
請求項21記載のプログラムにおいて、
前記データ記憶部に格納されたデータを読み出し、読み込み済みのデータで作成されてなるデータ構造に、読み出されたデータをあらたに付加し、前記変換工程に渡す処理を行うデータ解析処理を前記データ処理装置に実行させるプログラム。
【請求項23】
請求項21記載のプログラムにおいて、
前記テンプレートには、出力データの生成のために埋め込むべきデータが、データ構造において、前記データに至る一連のノードよりなるパスで指定されており、
前記変換処理では、前記テンプレートの処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成されたデータ構造では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する、ことを特徴とするプログラム。
【請求項24】
請求項21乃至23のいずれか一に記載のプログラムにおいて、
前記データ記憶部に格納されたデータは、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、
末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報、又は、前記データ記憶部から読み出されて付加されることを示す情報と読み出されるべきデータ名を有する、ことを特徴とするプログラム。
【請求項25】
請求項22記載のプログラムにおいて、
前記データ記憶部には、互いに形式の異なる複数のデータが格納されており、
前記データ解析処理が、前記互いに異なる形式のそれぞれに対応して複数設けられ、
前記入力制御処理の制御のもと、読み込むデータの形式に対応するデータ解析処理によりデータが読み出され、現在構成されている構文木に、読み出されたデータを付加して前記変換部に渡す、ことを特徴とするプログラム。
【請求項26】
所定の形式のデータを格納したデータ記憶部と、
出力データの雛形を規定したテンプレートを記憶したテンプレート記憶部と、
を備えたデータ処理装置に、
前記テンプレート記憶部からテンプレートを読み込み、前記テンプレートにしたがって出力データを作成するにあたり、前記テンプレートの未処理部が、データの埋め込みを必要としており、埋め込むべきデータを得るには、読み込み済みのデータで作成されてなる現在のデータ構造(「構文木」という)では対応できず、さらに別のデータの読み込みが必要であると判断した場合、前記データの読み込みを要求する変換処理と、
前記読み込み要求を受けて、データを読み込むように制御する入力制御処理と、
前記要求されたデータを前記データ記憶部より読み込み、すでに読み込まれたデータに基づき作成され記憶部に格納されている前記構文木に、今回読み込んだデータを付加してなる構文木を合成して前記記憶部に格納するデータ解析処理と、
前記変換処理において、前記データ解析処理であらたに合成された前記構文木から埋め込むべきデータを取得し、前記テンプレートに適用して出力データを生成する処理と、
を実行させるプログラム。
【請求項27】
請求項26記載のプログラムにおいて、
前記入力制御処理は、前記変換工程よりデータの読み込み要求が行われると、複数のデータのうちいずれのデータを読む込むかを判断する情報を規定したデータ入力制御ルールを記憶部より読み込み、前記データ入力制御ルールに基づき、読み込むべきデータを判断し、設計データの読み込み処理の開始を指示する、ことを特徴とするプログラム。
【請求項28】
請求項26記載のプログラムにおいて、
前記テンプレートには、出力データの生成のために埋め込むべきデータが、前記形式のデータ構造において前記データに至る一連のノードよりなるパスで指定されており、
前記変換処理は、前記テンプレートの処理対象箇所が、データの埋め込みを必要としており、現在までに読み込み済みのデータにより構成された構文木では、前記パスで指定されるデータに達することができないと判断した場合、前記パスで指定されるデータに達するに必要なデータの読み込みを要求する、ことを特徴とするプログラム。
【請求項29】
請求項26記載のプログラムにおいて、
前記データ記憶部に格納されたデータは、1つのノードから1つ又は複数のノードが分岐する階層構造を有し、
末端ノード以外のノードでは、前記ノードから分岐する他のノードの情報、又は、前記データ記憶部から読み出されて付加されることを示す情報と読み出されるべきデータ名を有する、ことを特徴とするプログラム。
【請求項30】
請求項26記載のプログラムにおいて、
前記データ記憶部は、データ構造の形式が互いに異なる複数のデータを記憶し、
前記入力制御処理は、データの形式に対応して設けられた複数のデータ解析処理のうち、データ入力制御ルールに基づき、読み込むべきデータに対応したデータ解析処理にデータの読み込みを指定する、ことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2006−268533(P2006−268533A)
【公開日】平成18年10月5日(2006.10.5)
【国際特許分類】
【出願番号】特願2005−86596(P2005−86596)
【出願日】平成17年3月24日(2005.3.24)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】