(57)【要約】【課題】項目を転記する転記処理で、転記処理仕様の変更にともなう転記処理プログラムの変更を不要とし、仕様変更作業を大幅に減らすこと。【解決手段】転記処理記述ジェネレータ３００が転記処理定義からマークアップ言語で記述した転記処理記述を生成し、転記エンジン２００の構文解析部２１０がＸＭＬパーサー１０を用いて転記処理記述の構文解析をおこなうとともに転記処理ツリーを作成し、転記エンジン２００の記述解釈部２２０が転記処理ツリーを解釈して転記処理をおこなう構成とする。【選択図】　　　図２
2004038809.tif 000002
【特許請求の範囲】
【請求項１】
所定のコンピュータ処理言語で記述されたプログラムを形成する各命令を順次取り出して実行処理する言語処理プログラムであって、
所定のマークアップ言語を用いて転記処理として記述された複数の転記命令からなるデータに含まれる各転記命令の構文を解析して転記処理記述解析結果を生成する構文解析手順と、
前記構文解析手順により生成された転記処理記述解析結果を用いて前記転記命令に応答する転記処理を順次解釈実行する解釈手順と、
をコンピュータで実行することを特徴とする言語処理プログラム。
【請求項２】
前記転記処理の仕様を定義した転記処理定義を参照して前記複数の転記命令からなるデータを生成する転記処理生成手順をさらにコンピュータで実行することを特徴とする請求項１に記載の言語処理プログラム。
【請求項３】
前記マークアップ言語の構造を定義した文書構造定義から該マークアップ言語の属性を抽出して属性情報を作成する属性情報作成手順をさらにコンピュータで実行し、前記転記処理生成手順は、前記属性情報作成手順により作成された属性情報を用いて前記複数の転記命令からなるデータを生成することを特徴とする請求項２に記載の言語処理プログラム。
【請求項４】
前記マークアップ言語はＸＭＬを用いて定義された言語であり、前記構文解析手順はＸＭＬパーサーを用いることを特徴とする請求項１、２または３に記載の言語処理プログラム。
【請求項５】
前記転記処理定義は表計算プログラムを用いて定義することを特徴とする請求項２または３に記載の言語処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、所定のコンピュータ処理言語で記述されたプログラムを形成する各命令を順次取り出して実行処理する言語処理プログラムに関し、特に、転記処理仕様の変更にともなう転記処理プログラムの書き換えを不要とし、もって仕様変更作業を大幅に減らすことができる言語処理プログラムに関する。
【０００２】
【従来の技術】
従来、項目の転記をおこなう転記処理プログラムでは、仕様に変更や追加が発生した場合に、転記処理プログラムのソースモジュールからの変更が必要とされていた。
【０００３】
すなわち、仕様の変更や追加に対応するためには、ソースモジュールの変更、変更したソースモジュールのコンパイル、オブジェクトモジュールのリンクによる転記処理プログラムの作成、作成した転記処理プログラムと古い転記処理プログラムの入れ換え、といった一連の変更作業が必要とされていた。
【０００４】
【発明が解決しようとする課題】
しかしながら、転記処理プログラムでは、仕様の変更や追加が頻繁に発生し、そのたびにプログラムの変更作業をおこなうこととすると、多くの時間が変更作業にとられてしまうという問題があった。
【０００５】
また、頻繁なソースモジュールの変更は、多くのプログラムバージョンを作り出し、多数のプログラムバージョンの構成管理という新たな作業も生み出していた。
【０００６】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、転記処理仕様に変更が発生した場合でも転記処理プログラムの書き換えを不要とし、もって仕様変更作業を大幅に減らすことができる言語処理プログラムを提供することを目的とする。
【０００７】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、本発明は、所定のコンピュータ処理言語で記述されたプログラムを形成する各命令を順次取り出して実行処理する言語処理プログラムであって、所定のマークアップ言語を用いて転記処理として記述された複数の転記命令からなるデータに含まれる各転記命令の構文を解析して転記処理記述解析結果を生成する構文解析手順と、前記構文解析手順により生成された転記処理記述解析結果を用いて前記転記命令に応答する転記処理を順次解釈実行する解釈手順と、をコンピュータで実行することを特徴とする。
【０００８】
この発明によれば、所定のマークアップ言語を用いて転記処理として記述された複数の転記命令からなるデータに含まれる各転記命令の構文を解析して転記処理記述解析結果を生成し、生成した転記処理記述解析結果を用いて転記命令に応答する転記処理を順次解釈実行することとしたので、転記処理仕様の変更にともなう転記処理プログラムの書き換えを不要とし、もって仕様変更作業を大幅に減らすことができる。
【０００９】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係る言語処理プログラムの好適な実施の形態を詳細に説明する。
【００１０】
（実施の形態１）
まず、本実施の形態１に係る転記処理プログラムの原理について説明する。図１は、本実施の形態１に係る転記処理プログラムの原理を説明するための説明図である。
【００１１】
同図に示すように、この転記処理プログラムでは、転記処理の項目に対する仕様の変更や追加があった場合でも、プログラムを変更する必要はない。その理由は、この転記処理プログラムは転記エンジンを呼び出し、転記エンジンはマークアップ言語で記述された転記処理記述に基づいて転記処理をおこなっているためである。
【００１２】
すなわち、この転記処理プログラムでは、マークアップ言語で記述された転記処理記述を転記エンジンが解釈実行することによって転記処理をおこなっており、仕様の変更や追加に対しては、プログラムのかわりに転記処理記述を変更することによって対応することができる。
【００１３】
また、転記処理記述ジェネレータは、表計算プログラムで作成された転記処理定義から、転記エンジンが使用する転記処理記述を自動的に作成する。したがって、転記処理の項目に対する仕様の変更や追加は、転記処理定義を修正するだけで済ますことができ、転記処理定義の変更は、表計算プログラムを用いて簡単におこなうことができる。
【００１４】
ここで、転記処理定義は、複数の転記命令から構成され、転記処理を定義した表の一行が一つの転記命令に対応する。そして、各転記命令は、転記対象項目を示す対象項目と、転記対象項目に対する演算を示す演算命令と、転記対象項目に対する演算の対象を示す演算対象と、転記処理または例外処理を示す処理種別と、転記先を示す転記先項目と、例外に関する情報を示す例外情報とから構成される。なお、転記先項目と例外情報は同じセルに定義され、このセルの内容は、処理種別が転記処理すなわち「＝」である場合には転記先項目となり、処理種別が例外処理すなわち「例外」である場合には例外情報となる。
【００１５】
たとえば、変更前の転記処理定義は、「対象項目Ｉｔｅｍ１と演算対象Ｉｔｅｍ２に対して演算命令で指定する加算を実行して転記先項目Ｉｔｅｍ３に転記する」と「対象項目Ｉｔｅｍ５と演算項目Ｉｔｅｍ６に対して演算命令で指定する加算を実行して転記先項目Ｉｔｅｍ４に転記する」の二つの転記命令から構成されることを示している。
【００１６】
同様に、変更後の転記処理定義は、Ｉｔｅｍ３への転記命令の後に「対象項目Ｉｔｅｍ３と演算対象である値が２の定数に対して演算命令で指定する減算を実行して転記先項目Ｉｔｅｍ３に転記する」転記命令を追加し、Ｉｔｅｍ４への転記命令の後に「対象項目Ｉｔｅｍ３と演算対象Ｉｔｅｍ４に対して演算命令で指定する加算を実行して転記先項目Ｉｔｅｍ７に転記する」および「対象項目Ｉｔｅｍ７と演算対象である値が０の定数に対して演算命令で指定する等号演算を実行し、その実行結果が真であれば例外発生とする」の二つの転記命令を追加することを示している。
【００１７】
そして、転記命令「対象項目Ｉｔｅｍ１と演算対象Ｉｔｅｍ２に対して演算命令で指定する加算を実行して転記先項目Ｉｔｅｍ３に転記する」に対応してマークアップ言語による転記命令記述＜ｔｅｒｍ　ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ１”　ｏｐ　＝”ＡＤＤ”　ｏｐｅｒａｎｄ＝”Ｉｔｅｍ２”　ｔａｒｇｅｔ＝”Ｉｔｅｍ３”／＞が生成され、転記命令「対象項目Ｉｔｅｍ５と演算項目Ｉｔｅｍ６に対して演算命令で指定する加算を実行して転記先項目Ｉｔｅｍ４に転記する」に対応してマークアップ言語による転記命令記述＜ｔｅｒｍ　ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ５”　ｏｐ　＝”ＡＤＤ”　ｏｐｅｒａｎｄ＝”Ｉｔｅｍ６”　ｔａｒｇｅｔ＝”Ｉｔｅｍ４”／＞が生成されることを示している。
【００１８】
ここで、ｔｅｒｍは転記命令を記述するための命令タグであり、ｐｒｏｐｅｒｔｙ、ｏｐ、ｏｐｅｒａｎｄおよびｔａｒｇｅｔは、転記命令の対象項目、演算命令、演算対象、転記先項目をそれぞれ属性値とする属性の名称である。
【００１９】
同様に、転記命令「対象項目Ｉｔｅｍ３と演算対象である値が２の定数に対して演算命令で指定する減算を実行して転記先項目Ｉｔｅｍ３に転記する」に対応してマークアップ言語による転記命令記述＜ｔｅｒｍ　ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ３”　ｏｐ　＝”ＳＵＢ”　ｏｐｅｒａｎｄ＝”２”　ｔａｒｇｅｔ＝”Ｉｔｅｍ３”／＞が生成され、転記命令「対象項目Ｉｔｅｍ３と演算対象Ｉｔｅｍ４に対して演算命令で指定する加算を実行して転記先項目Ｉｔｅｍ７に転記する」および転記命令「対象項目Ｉｔｅｍ７と演算対象である値が０の定数に対して演算命令で指定する等号演算を実行し、その実行結果が真であれば例外発生とする」に対応してマークアップ言語による転記命令記述＜ｔｅｒｍ　ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ３”　ｏｐ　＝”ＡＤＤ”　ｏｐｅｒａｎｄ＝”Ｉｔｅｍ４”　ｔａｒｇｅｔ＝”Ｉｔｅｍ７”／＞および＜ｔｅｒｍ　ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ７”　ｏｐ　＝”ＥＱ”　ｏｐｅｒａｎｄ＝”０”　ｅｘｃｅｐｔｉｏｎ＝”例外発生”／＞がそれぞれ追加されることを示している。ここで、ｅｘｃｅｐｔｉｏｎは、例外情報を属性値とする属性の名称である。
【００２０】
また、マークアップ言語はＸＭＬを用いて作成されており、マークアップ言語によって記述された転記処理記述の構文解析は、ＸＭＬパーサーを用いておこなうことができる。したがって、転記エンジン自身では転記処理記述の構文チェックをおこなう必要がなく、転記エンジンの開発を容易なものとしている。
【００２１】
次に、本実施の形態１に係る転記処理装置の構成について説明する。図２は、本実施の形態１に係る転記処理装置の構成を示す機能ブロック図である。同図に示すように、この転記処理装置は、転記エンジン２００と転記処理記述ジェネレータ３００を有する装置であり、転記処理記述ジェネレータ３００がマークアップ言語による転記処理記述を作成し、転記エンジン２００が転記処理記述を解釈することによって転記処理をおこなう。
【００２２】
転記処理記述ファイル２０は、転記処理記述ジェネレータ３００が転記処理記述を出力し、転記エンジン２００が転記処理記述を入力するファイルである。また、転記処理定義ファイル３０は、表計算プログラムを用いて作成された転記処理定義を記憶したファイルであり、ＤＴＤ（Ｄｏｃｕｍｅｎｔ　Ｔｙｐｅ　Ｄｅｆｉｎｉｔｉｏｎ）ファイル４０は、マークアップ言語を定義したＤＴＤを記憶したファイルである。
【００２３】
なお、転記エンジン２００は、ＸＭＬパーサー１０を用いて転記処理記述の構文解析をおこない、ＸＭＬパーサー１０および転記処理記述ジェネレータ３００は、ＤＴＤファイル４０を参照して処理をおこなう。
【００２４】
転記エンジン２００は、マークアップ言語で記述された転記処理記述を解釈して転記処理をおこなう処理部であり、構文解析部２１０と、記述解釈部２２０と、制御部２３０と、転記処理ツリー記憶部２４０とを有する。
【００２５】
構文解析部２１０は、転記処理記述ファイル２０から転記処理記述を読み込んで構文解析をおこない、その解析結果を転記処理ツリーとして転記処理ツリー記憶部２４０に格納する処理部であり、実際の処理はＸＭＬパーサー１０を用いておこなう。
【００２６】
記述解釈部２２０は、転記処理ツリー記憶部２４０に格納された転記処理ツリーを解釈して転記処理をおこなう処理部であり、項目間の演算をおこなう項目演算部２２１と、演算結果の代入および例外処理をおこなう転記例外処理部２２２とを有する。また、制御部２３０は、転記エンジン２００の全体を制御する処理部である。
【００２７】
転記処理ツリー記憶部２４０は、構文解析部２１０が転記処理記述を解析した結果を転記処理ツリーとして記憶した記憶部である。図３は、転記処理ツリーの一例を示す図である。同図に示すように、この転記処理ツリーは、転記処理記述の解析結果をツリー構造にしたものである。
【００２８】
すなわち、この転記処理ツリーは、転記処理記述全体の解析結果をルートノードとし、各転記命令記述の解析結果をルートノードの下のノードとし、各転記命令記述の解析結果のノード下に、各転記命令記述が有する全ての属性の値、すなわち、対象項目、演算命令、演算対象、処理種別、転記先項目および例外情報をリーフとするツリーである。なお、処理種別は、転記命令記述の中にｔａｒｇｅｔ属性がある場合には「＝」となり、ｅｘｃｅｐｔｉｏｎ属性がある場合には「例外」となる。
【００２９】
たとえば、転記命令記述＜ｔｅｒｍ　ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ１”　ｏｐ＝”ＡＤＤ”　ｏｐｅｒａｎｄ＝”Ｉｔｅｍ２”　ｔａｒｇｅｔ＝”Ｉｔｅｍ３”／＞を解析した結果は、Ｉｔｅｍ１、ＡＤＤ、Ｉｔｅｍ２、転記、Ｉｔｅｍ３、空の六つのリーフから構成される。
【００３０】
転記処理記述ジェネレータ３００は、転記処理定義からマークアップ言語で記述された転記処理記述を作成する処理部であり、表内容参照部３１０と、属性項目作成部３２０と、転記命令記述生成部３３０と、制御部３４０と、属性テーブル３５０と、転記命令レコード記憶部３６０とを有する。
【００３１】
表内容参照部３１０は、転記処理定義ファイル３０を参照して対象項目、演算命令、演算対象、処理種別、転記先項目および例外情報から構成される転記命令レコードを転記命令ごとに作成し、転記命令レコード記憶部３６０に格納する処理部である。
【００３２】
属性項目作成部３２０は、転記命令記述を構成する属性項目を作成する処理部であり、属性テーブル３５０および転記命令レコード記憶部３６０を用いて属性項目を作成する。ここで、属性項目とは、ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ１”　やｏｐ＝”ＡＤＤ”などの属性名称と属性値から構成される文字列である。
【００３３】
転記命令記述生成部３３０は、属性項目作成部３２０が作成した属性項目を組み合わせて転記命令記述を作成し、作成した転記命令記述を順に転記処理記述ファイル２０に出力する処理部である。また、制御部３４０は、転記処理記述ジェネレータ３００全体を制御する処理部である。
【００３４】
属性テーブル３５０は、転記命令記述を構成する属性項目についての情報を記憶した記憶部であり、この属性テーブル３５０は、マークアップ言語を定義したＤＴＤから作成される。
【００３５】
図４は、属性テーブル３５０の一例を示す図である。同図（ａ）は、属性テーブル３５０を作成するために用いられたＤＴＤを示し、同図（ｂ）は、属性テーブル３５０を示している。
【００３６】
同図（ａ）は、転記命令記述を記述するための命令タグをｔｅｒｍと定義し、ｐｒｏｐｅｒｔｙ、ｏｐ、ｏｐｅｒａｎｄ、ｔａｒｇｅｔおよびｅｘｃｅｐｔｉｏｎの属性名称を有する属性項目から転記命令記述を構成することを定義している。ここで、＃ＲＥＱＵＩＲＥＤおよび＃ＩＭＰＬＩＥＤは属性のデフォルトを定義し、＃ＲＥＱＵＩＲＥＤは属性が必須であることを定義し、＃ＩＭＰＬＩＥＤは属性が省略可能であることを定義している。
【００３７】
また、（ＡＤＤ｜ＳＵＢ｜ＥＱ）はｏｐ属性の属性値の候補としてＡＤＤ、ＳＵＢ、ＥＱがあることを定義している。ここで、属性値の候補とは、転記命令の演算命令である「＋」、「−」および「＝」（等価演算を意味する記号）を転記命令記述のｏｐ属性の値として使用するＡＤＤ、ＳＵＢおよびＥＱにそれぞれ置き換えるためのデータである。
【００３８】
同図（ｂ）に示す属性テーブル３５０は、ＤＴＤに定義された属性に対して、転記命令を構成する項目を属性値として対応付けたものであり、ｐｒｏｐｅｒｔｙ属性と対象項目、ｏｐ属性と演算命令、ｏｐｅｒａｎｄ属性と演算対象、ｔａｒｇｅｔ属性と転記先項目、ｅｘｃｅｐｔｉｏｎ属性と例外情報をそれぞれ対応付けている。これらの対応付けを用いて属性項目作成部３２０が属性項目を作成することができる。
【００３９】
転記命令レコード記憶部３６０は、表内容参照部３１０が転記処理定義から取り出した一つの転記命令の定義データを転記命令レコードとして記憶した記憶部であり、属性項目を作成するために属性項目作成部３２０によって使用される。
【００４０】
図５は、転記命令レコードの一例を示す図である。同図に示すように、この転記命令レコードは、転記命令を定義した対象項目、演算命令、演算対象、処理種別、転記先項目および例外情報から構成される。ここで、処理種別が「＝」である場合には例外情報はなく、処理種別が「例外」である場合には転記先項目はない。
【００４１】
次に、図２に示した記述解釈部２２０の処理手順について説明する。図６は、図２に示した記述解釈部２２０の処理手順を示すフローチャートである。なお、この記述解釈部２２０は、構文解析部２１０がＸＭＬパーサー１０を用いて転記処理記述の構文解析処理をおこない、その解析結果を転記処理ツリー記憶部２４０に格納した後に起動される。
【００４２】
この記述解釈部２２０は、転記処理ツリー記憶部２４０から各転記命令記述の解析結果を順番に取り出し、転記命令記述の解析結果が無くなった場合には（ステップＳ６０１の否定）、処理を終了する。
【００４３】
一方、転記命令記述の解析結果がある間は（ステップＳ６０１の肯定）、対象項目、演算対象および演算命令を転記処理ツリー記憶部２４０から取り出し（ステップＳ６０２〜ステップＳ６０４）、演算命令にしたがって対象項目と演算対象を演算する（ステップＳ６０５）。
【００４４】
そして、転記処理ツリー記憶部２４０から次のデータを取り出し、取り出したデータが処理種別であるか否かを調べ（ステップＳ６０６）、処理種別でない場合には、ステップＳ６０１に戻って次の転記命令の処理をおこなう。
【００４５】
これに対して、取り出したデータが処理種別の「＝」である場合には、項目転記処理、すなわち転記先項目データへの演算結果の転記をおこない（ステップＳ６０７）、取り出したデータが処理種別の「例外」である場合には、例外処理、すなわち例外情報データを参照して例外の発生をおこなう（ステップＳ６０８）。そして、どちらの場合にも、ステップＳ６０１に戻って次の転記命令の処理をおこなう。
【００４６】
次に、図２に示した転記処理記述ジェネレータ３００の処理手順について説明する。図７は、図２に示した転記処理記述ジェネレータ３００の処理手順を示すフローチャートである。この転記処理記述ジェネレータ３００は、転記処理定義ファイル３０から転記命令を順番に読み込んで処理し、転記命令がなくなった場合には（ステップＳ７０１の否定）、処理を終了する。
【００４７】
一方、転記命令がある間は（ステップＳ７０１の肯定）、表内容参照部３１０が転記命令を構成する対象項目セル、演算命令セル、演算対象セル、処理種別セルおよび転記先項目セルのデータから転記命令レコードを作成して転記命令レコード記憶部３６０に格納する（ステップＳ７０２〜ステップＳ７０７）。なお、転記種別が「例外」である場合には、転記先項目セルは例外情報を記憶した例外情報セルである。
【００４８】
そして、属性項目作成部３２０が属性テーブル３５０と転記命令レコード記憶部３６０を用いて転記命令記述を構成する属性項目を作成し（ステップＳ７０８）、転記命令記述生成部３３０がＤＴＤの命令タグｔｅｒｍの定義を参照し（ステップＳ７０９）、命令タグｔｅｒｍの構成にあわせて転記命令記述を作成し（ステップＳ７１０）、転記処理記述ファイル２０に出力する（ステップＳ７１１）。
【００４９】
次に、図７に示した属性項目作成処理（ステップＳ７０８）の処理手順について説明する。図８は、図７に示した属性項目作成処理（ステップＳ７０８）の処理手順を示すフローチャートである。この属性項目作成処理は、転記命令レコード記憶部３６０の先頭からデータを順番に取り出して属性値とし、属性値が処理種別でない場合には（ステップＳ８０１の否定）、属性テーブル３５０から属性値に対応する属性名称を取り出し（ステップＳ８０２）、属性値を属性値の候補に変換する必要があるか否かを調べる（ステップＳ８０３）。もし、属性値を属性値の候補に変換する必要がある場合には、属性テーブル３５０を用いて属性値を属性値の候補に変換し（ステップＳ８０４）、属性値を属性値の候補に変換する必要がない場合には、ステップＳ８０５へ進む。
【００５０】
そして、属性名称とデータを結合して属性項目を作成し（ステップＳ８０５）、ステップＳ８０１に戻って転記命令レコード記憶部３６０の次のデータの処理をおこなう。
【００５１】
一方、転記命令レコード記憶部３６０から取り出したデータが処理種別である場合には（ステップＳ８０１の肯定）、処理種別が「例外」であるか「＝」であるかを調べ（ステップＳ８０６）、処理種別が「例外」である場合には、属性名称ｅｘｃｅｐｔｉｏｎを属性テーブル３５０から取り出し、例外情報を転記命令レコード記憶部３６０から取り出して属性値とし（ステップＳ８０７）、属性名称と属性値を結合して属性項目を作成する（ステップＳ８０９）。
【００５２】
これに対して、処理種別が「＝」である場合には、属性名称ｔａｒｇｅｔを属性テーブル３５０から取り出し、転記先項目を転記レコード記憶部３６０から取り出して属性値とし（ステップＳ８０８）、属性名称と属性値を結合して属性項目を作成する（ステップＳ８０９）。
【００５３】
上述してきたように、本実施の形態１では、転記処理記述ジェネレータ３００が転記処理定義からマークアップ言語で記述した転記処理記述を作成し、転記エンジン２００の構文解析部２１０がＸＭＬパーサー１０を用いて転記処理記述の構文解析をおこなうとともに転記処理ツリーを作成し、転記エンジン２００の記述解釈部２２０が転記処理ツリーを解釈して転記処理をおこなうこととしたので、転記処理定義に変更があった場合でも、転記処理装置を変更することなく転記処理をおこなうことができる。
【００５４】
また、転記処理定義は表計算プログラムを用いて作成することとしたので、転記の仕様だけの知識を用いて転記処理定義を作成することができ、転記処理の仕様の変更および拡張を容易におこなうことができる。
【００５５】
さらに、転記処理定義には、項目の転記だけでなくエラー発生処理も指定することが可能であり、表計算プログラムだけを用いて容易にエラー処理も含めた転記処理をおこなうことができる。
【００５６】
（実施の形態２）
ところで、上記実施の形態１では、マークアップ言語の仕様は固定であり、マークアップ言語の仕様を定義したＤＴＤの情報は、固定の属性テーブル３５０に記憶して転記処理記述の生成に使用する場合を示した。しかしながら、転記処理定義の変更内容によっては、マークアップ言語の仕様も変更する必要が生じることがある。そこで、本実施の形態２では、ＤＴＤを変更することによってマークアップ言語の仕様を変更することができる転記処理装置について説明する。
【００５７】
まず、ＤＴＤを変更する場合の転記処理プログラムの原理について説明する。図９は、ＤＴＤを変更する場合の転記処理プログラムの原理を説明するための説明図である。
【００５８】
同図に示すように、変更後の転記処理定義には、変更前の転記処理定義と比較して、二つの転記命令が追加されている。その一つは、「Ｉｔｅｍ５をそのままＩｔｅｍ４に転記する」転記命令であり、この変更では、演算命令および演算対象が不要であるような転記命令の定義を可能とする必要がある。
【００５９】
他の一つは、「Ｉｔｅｍ６をＩｔｅｍ７で割って余りをＩｔｅｍ８に転記する」ＭＯＤ演算（演算記号は％）をおこなう転記命令である。この変更では、ＭＯＤ演算を可能とする必要がある。
【００６０】
このような変更を可能とするために、ＤＴＤは、ｏｐ属性およびｏｐｅｒａｎｄ属性の定義において、属性のデフォルトが＃ＲＥＱＵＩＲＥＤすなわち「省略不可」から、＃ＩＭＰＬＩＥＤすなわち「省略可」に変更されている。また、ｏｐ属性の属性値の候補としてＭＯＤが追加されている。
【００６１】
このように、ＤＴＤを変更することによって、変更後の転記処理記述に示すように、ｏｐ属性およびｏｐｅｒａｎｄ属性についての属性項目がない転記命令記述＜ｔｅｒｍ　ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ５”　ｔａｒｇｅｔ＝”Ｉｔｅｍ４”／＞およびＭＯＤ演算をｏｐ属性の属性値として有する転記命令記述＜ｔｅｒｍ　ｐｒｏｐｅｒｔｙ＝”Ｉｔｅｍ６”　ｏｐ＝”ＭＯＤ”　ｏｐｅｒａｎｄ＝”Ｉｔｅｍ７”　ｔａｒｇｅｔ＝”Ｉｔｅｍ８”／＞を可能とすることができる。
【００６２】
次に、本実施の形態２に係る転記処理記述ジェネレータの構成について説明する。図１０は、本実施の形態２に係る転記処理記述ジェネレータの構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図２に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００６３】
同図に示すように、この転記処理記述ジェネレータ１０００は、表内容参照部３１０と、属性項目作成部３２０と、転記命令記述生成部３３０と、制御部３４０と、属性テーブル１０２０と、転記命令レコード記憶部３６０に加えて、属性テーブル作成部１０１０を有する。
【００６４】
属性テーブル作成部１０１０は、ＤＴＤファイル４０からＤＴＤを読み込み、属性テーブル１０２０を作成する処理部である。この属性テーブル作成部１０１０は、転記処理定義の変更にともなってＤＴＤを変更した場合に、ＤＴＤの変更結果を属性テーブル１０２０に反映することによって、転記処理定義の変更に対応した転記処理記述を可能としている。
【００６５】
図１１は、属性テーブル１０２０の一例を示す図である。同図（ａ）は、属性テーブル１０２０を作成するために用いられたＤＴＤを示し、同図（ｂ）は、属性テーブル１０２０を示している。
【００６６】
同図（ａ）では、図４（ａ）と比較して、転記命令を記述する命令タグｔｅｒｍのｏｐ属性およびｏｐｅｒａｎｄ属性の、属性のデフォルトが＃ＲＥＱＵＩＲＥＤすなわち「省略付加」から、＃ＩＭＰＬＩＥＤすなわち「省略可」に変更されている。また、ｏｐ属性の属性値としてＭＯＤが追加されている。
【００６７】
同図（ｂ）では、図４（ｂ）と比較して、ＤＴＤ４０に対応して、演算命令および演算対象の属性値のデフォルトが「省略可」に変更され、演算命令の属性値の候補としてＭＯＤが追加されている。
【００６８】
次に、図１０に示した属性テーブル作成部１０１０の処理手順について説明する。図１２は、図１０に示した属性テーブル作成部１０１０の処理手順を示すフローチャートである。
【００６９】
この属性テーブル作成部１０１０は、ＤＴＤファイル４０から属性定義を順番に読み込み、属性定義がある間は（ステップＳ１２０１の肯定）、各属性定義に対して、ＤＴＤの属性名を属性テーブル１０２０の属性名称へ設定し（ステップＳ１２０２）、ＤＴＤの属性値の候補を属性テーブル１０２０の属性値の候補へ設定し（ステップＳ１２０３）、ＤＴＤの属性のデフォルトを属性テーブル１０２０の属性値のデフォルトへ設定する（ステップＳ１２０４）。一方、属性定義がなくなった場合には（ステップＳ１２０１の否定）、処理を終了する。
【００７０】
上述してきたように、本実施の形態２では、転記処理定義の変更や追加にともなって、転記処理記述に用いるマークアップ言語の仕様を拡張する必要がある場合に、属性テーブル作成部１０１０がＤＴＤファイル４０を参照して属性テーブル１０２０を作成することとしたので、マークアップ言語の仕様を変更するような転記処理仕様の変更に対しても、ＤＴＤを変更することによって容易に対応することができる。
【００７１】
なお、本実施の形態１および２では、転記処理装置について説明したが、この転記処理装置が有する構成をソフトウェアによって実現することで、同様の機能を有する転記処理プログラムを得ることができる。そこで、この転記処理プログラムを実行するコンピュータシステムについて説明する。
【００７２】
図１３に示すコンピュータシステム１００は、本体部１０１、本体部１０１からの指示により表示画面１０２ａに画像等の情報を表示するディスプレイ１０２、このコンピュータシステム１００に種々の情報を入力するためのキーボード１０３、ディスプレイ１０２の表示画面１０２ａ上の任意の位置を指定するマウス１０４、ローカルエリアネットワーク（ＬＡＮ）１０６または広域エリアネットワーク（ＷＡＮ）に接続するＬＡＮインタフェース、インターネットなどの公衆回線１０７に接続するモデム１０５が備えられている。ここで、ＬＡＮ１０６は、ほかのコンピュータシステム（ＰＣ）１１１、サーバ１１２、プリンタ１１３等とコンピュータシステム１００とを接続している。また、図１４に示すように、本体部１０１は、ＣＰＵ１２１、ＲＡＭ１２２、ＲＯＭ１２３、ハードディスクドライブ（ＨＤＤ）１２４、ＣＤ−ＲＯＭドライブ１２５、ＦＤドライブ１２６、Ｉ／Ｏインタフェース１２７およびＬＡＮインタフェース１２８を備えている。
【００７３】
このコンピュータシステム１００において転記処理プログラムを実行する場合、フロッピィディスク（ＦＤ）１０８、ＣＤ−ＲＯＭ１０９、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体、モデム１０５およびＬＡＮインタフェースを利用し回線を介して接続されたサーバ１１２のデータベース、あるいは、ほかのコンピュータシステム（ＰＣ）１１１のデータベースに格納等の記憶媒体に記憶された転記処理プログラムをコンピュータシステム１００にインストールする。インストールされた転記処理プログラムは、ＨＤＤ１２４に記憶され、ＲＡＭ１２２、ＲＯＭ１２３などを利用してＣＰＵ１２１により実行される。ここで、記憶媒体とは、ＣＤ−ＲＯＭ１０９、フロッピィディスク１０８、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体やコンピュータシステム１００の内外に備えられたハードディスク１２４等の記憶装置のほか、ＬＡＮ１０６を介して接続されたインストール元の転記処理プログラムを保持するサーバ１１２のデータベース、あるいは、ほかのコンピュータシステム１１１並びにそのデータベースや、さらに公衆回線１０７上の伝送媒体をも含むものである。
【００７４】
次に、図１３で示したコンピュータシステムで転記処理プログラムを実行する場合のソフトウェア構成について説明する。図１５は、図１３に示したコンピュータシステムで転記処理プログラムを実行する場合のソフトウェア構成を示す図である。同図に示すように、この転記処理プログラム１５０１は、転記エンジン１５０２を呼び出し、転記エンジン１５０２がＸＭＬパーサー１５０３およびＪａｖａ（登録商標、以下同様）ランタイムライブラリ１５０４を呼び出すことによって転記処理を実行する。ここで、転記エンジン１５０２およびＸＭＬパーサー１５０３が図２に示した転記エンジン２００およびＸＭＬパーサー１０にそれぞれ対応する。
【００７５】
また、図１６は、図１３に示したコンピュータシステムで転記処理記述を作成する場合のソフトウェア構成を示す図である。同図に示すように、転記処理定義の作成は表計算プログラム１６０１を用いておこない、表計算プログラム１６０１が転記処理記述ジェネレータ１６０２を呼び出し、転記処理記述ジェネレータ１６０２がＶＢ（Ｖｉｓｕａｌ　Ｂａｓｉｃ）ランタイムライブラリ１６０３を呼び出すことによって、転記処理定義から転記処理記述を生成する。ここで、転記処理記述ジェネレータ１６０２が図２に示した転記処理記述ジェネレータに対応する。
【００７６】
（付記１）所定のコンピュータ処理言語で記述されたプログラムを形成する各命令を順次取り出して実行処理する言語処理プログラムであって、
所定のマークアップ言語を用いて転記処理として記述された複数の転記命令からなるデータに含まれる各転記命令の構文を解析して転記処理記述解析結果を生成する構文解析手順と、
前記構文解析手順により生成された転記処理記述解析結果を用いて前記転記命令に応答する転記処理を順次解釈実行する解釈手順と、
をコンピュータで実行することを特徴とする言語処理プログラム。
【００７７】
（付記２）前記転記処理の仕様を定義した転記処理定義を参照して前記複数の転記命令からなるデータを生成する転記処理生成手順をさらにコンピュータで実行することを特徴とする付記１に記載の言語処理プログラム。
【００７８】
（付記３）前記マークアップ言語の構造を定義した文書構造定義から該マークアップ言語の属性を抽出して属性情報を作成する属性情報作成手順をさらにコンピュータで実行し、前記転記処理生成手順は、前記属性情報作成手順により作成された属性情報を用いて前記複数の転記命令からなるデータを生成することを特徴とする付記２に記載の言語処理プログラム。
【００７９】
（付記４）前記マークアップ言語はＸＭＬを用いて定義された言語であり、前記構文解析手順はＸＭＬパーサーを用いることを特徴とする付記１、２または３に記載の言語処理プログラム。
【００８０】
（付記５）前記マークアップ言語はＸＭＬを用いて定義された言語であり、前記文書構造定義はＤＴＤであり、前記構文解析手順はＸＭＬパーサーを用いることを特徴とする付記３に記載の言語処理プログラム。
【００８１】
（付記６）前記転記処理定義は表計算プログラムを用いて定義することを特徴とする付記２または３に記載の言語処理プログラム。
【００８２】
（付記７）前記複数の転記命令からなるデータは例外処理の記述を有し、前記解釈手順は例外処理をおこなうことを特徴とする付記１に記載の言語処理プログラム。
【００８３】
（付記８）前記転記処理生成手順は、前記転記処理定義を参照して転記命令構成項目を生成する構成項目生成手順と、前記構成項目生成手順により生成された転記命令構成項目を用いて、前記複数の転記命令からなるデータを生成する転記命令生成手順と、をコンピュータで実行することを特徴とする付記２または３に記載の言語処理プログラム。
【００８４】
（付記９）所定のコンピュータ処理言語で記述されたプログラムを形成する各命令を順次取り出して実行処理する言語処理方法であって、
所定のマークアップ言語を用いて転記処理として記述された複数の転記命令からなるデータに含まれる各転記命令の構文を解析して転記処理記述解析結果を生成する構文解析工程と、
前記構文解析工程により生成された転記処理記述解析結果を用いて前記転記命令に応答する転記処理を順次解釈実行する解釈工程と、
を含んだことを特徴とする言語処理方法。
【００８５】
（付記１０）所定のコンピュータ処理言語で記述されたプログラムを形成する各命令を順次取り出して実行処理する言語処理装置であって、
所定のマークアップ言語を用いて転記処理として記述された複数の転記命令からなるデータに含まれる各転記命令の構文を解析して転記処理記述解析結果を生成する構文解析手段と、
前記構文解析手段により生成された転記処理記述解析結果を用いて前記転記命令に応答する転記処理を順次解釈実行する解釈手段と、
を備えたことを特徴とする言語処理装置。
【００８６】
【発明の効果】
以上説明したように、本発明によれば、所定のマークアップ言語を用いて転記処理として記述された複数の転記命令からなるデータに含まれる各転記命令の構文を解析して転記処理記述解析結果を生成し、生成した転記処理記述解析結果を用いて転記命令に応答する転記処理を順次解釈実行するよう構成したので、転記処理仕様の変更にともなう転記処理プログラムの書き換えを不要とし、もって仕様変更作業を大幅に減らすことができるという効果を奏する。
【００８７】
また、本発明によれば、マークアップ言語の構造を定義した文書構造定義からマークアップ言語の属性を抽出して属性情報を作成し、作成した属性情報を用いて、複数の転記命令からなるデータを生成する構成としたので、マークアップ言語の仕様を変更するような転記処理仕様の変更に対しても、文書構造定義を変更することによって容易に対応することができるという効果を奏する。
【００８８】
また、本発明によれば、転記処理定義は表計算プログラムを用いて定義することとしたので、転記の仕様だけの知識を用いて転記処理定義を作成することができ、転記処理の仕様の変更および拡張を容易におこなうことができるという効果を奏する。
【図面の簡単な説明】
【図１】本実施の形態１に係る転記処理プログラムの原理を説明するための説明図である。
【図２】本実施の形態１に係る転記処理装置の構成を示す機能ブロック図である。
【図３】転記処理ツリーの一例を示す図である。
【図４】属性テーブルの一例を示す図である。
【図５】転記命令レコードの一例を示す図である。
【図６】図２に示した記述解釈部の処理手順を示すフローチャートである。
【図７】図２に示した転記処理記述ジェネレータの処理手順を示すフローチャートである。
【図８】図７に示した属性項目作成処理の処理手順を示すフローチャートである。
【図９】ＤＴＤを変更する場合の転記処理プログラムの原理を説明するための説明図である。
【図１０】本実施の形態２に係る転記処理記述ジェネレータの構成を示す機能ブロック図である。
【図１１】属性テーブルの一例を示す図である。
【図１２】図１０に示した属性テーブル作成部の処理手順を示すフローチャートである。
【図１３】本実施の形態１および２に係る転記処理プログラムを実行するコンピュータシステムを示す図である。
【図１４】図１３に示した本体部の機能構成を示す機能ブロック図である。
【図１５】図１３に示したコンピュータシステムで転記処理プログラムを実行する場合のソフトウェア構成を示す図である。
【図１６】図１３に示したコンピュータシステムで転記処理記述を作成する場合のソフトウェア構成を示す図である。
【符号の説明】
１０，１５０３　ＸＭＬパーサー
２０　転記処理記述ファイル
３０　転記処理定義ファイル
４０　ＤＴＤファイル
１００，１１１　コンピュータシステム
１０１　本体部
１０２　ディスプレイ
１０２ａ　表示画面
１０３　キーボード
１０４　マウス
１０５　モデム
１０６　ＬＡＮ
１０７　公衆回線
１０８　フロッピィディスク
１０９　ＣＤ−ＲＯＭ
１１２　サーバ
１１３　プリンタ
１２１　ＣＰＵ
１２２　ＲＡＭ
１２３　ＲＯＭ
１２４　ハードディスクドライブ
１２５　ＣＤ−ＲＯＭドライブ
１２６　フロッピィディスクドライブ
１２７　Ｉ／Ｏインタフェース
１２８　ＬＡＮインタフェース
２００，１５０２　転記エンジン
２１０　構文解析部
２２０　記述解釈部
２２１　項目演算部
２２２　転記例外処理部
２３０　制御部
２４０　転記処理ツリー記憶部
３００，１０００，１６０２　転記処理記述ジェネレータ
３１０　表内容参照部
３２０　属性項目作成部
３３０　転記命令記述生成部
３４０　制御部
３５０，１０２０　属性テーブル
３６０　転記命令レコード記憶部
１０１０　属性テーブル作成部
１５０１　転記処理プログラム
１５０４　Ｊａｖａランタイムライブラリ
１６０１　表計算プログラム
１６０３　ＶＢランタイムライブラリ
【図１】
2004038809.tif 000003
【図２】
2004038809.tif 000004
【図３】
2004038809.tif 000005
【図４】
2004038809.tif 000006
【図５】
2004038809.tif 000007
【図６】
2004038809.tif 000008
【図７】
2004038809.tif 000009
【図８】
2004038809.tif 000010
【図９】
2004038809.tif 000011
【図１０】
2004038809.tif 000012
【図１１】
2004038809.tif 000013
【図１２】
2004038809.tif 000014
【図１３】
2004038809.tif 000015
【図１４】
2004038809.tif 000016
【図１５】
2004038809.tif 000017
【図１６】
2004038809.tif 000018