(57)【要約】【課題】データを直列化及び非直列化する機能を実現するためのプログラムソースコードの生成に要する労力を軽減することを可能にする。【解決手段】プログラムソースコード自動生成部２０（２０ａ，２０ｂ…）は、データを直列化及び非直列化する単位を示す集合体とこの集合体の中の直列化及び非直列化する要素が定義されたデータ構造の定義ファイル２２を参照し、集合体に含まれる要素をもとに、データを直列化及び非直列化するためのプログラムソースコードを生成し、要素をもとに生成されたプログラムソースコードをまとめて、集合体に対する直列化及び非直列化するためのプログラムソースコードを含むプログラムソースコードファイル２４を生成する。【選択図】　　図１
2004038319.tif 000002
【特許請求の範囲】
【請求項１】
データを直列化及び非直列化する機能を実現するためのプログラムソースコードを生成するプログラムソースコード生成方法であって、
データを直列化及び非直列化する単位を示す集合体とこの集合体の中の直列化及び非直列化する要素が定義された情報を参照し、
前記集合体に含まれる前記要素をもとに、データを直列化及び非直列化するためのプログラムソースコードを生成し、
前記要素をもとに生成されたプログラムソースコードをまとめて、前記集合体に対する直列化及び非直列化するためのプログラムソースコードを生成することを特徴とするプログラムソースコード生成方法。
【請求項２】
前記情報に複数の集合体が定義されている場合に、それぞれの集合体についてプログラムソースコードを生成することを特徴とする請求項１記載のプログラムソースコード生成方法。
【請求項３】
データを直列化及び非直列化する手法に応じて、生成するプログラムソースコードを変更することを特徴とする請求項１記載のプログラムソースコード生成方法。
【請求項４】
プログラムソースコードのプログラミング言語に応じて、生成するプログラムソースコードを変更することを特徴とする請求項１記載のプログラムソースコード生成方法。
【請求項５】
データを直列化及び非直列化する機能を実現するためのプログラムソースコードを生成するプログラムソースコード生成プログラムであって、
コンピュータを、
データを直列化及び非直列化する単位を示す集合体とこの集合体の中の直列化及び非直列化する要素が定義された情報を参照させ、
前記集合体に含まれる前記要素をもとに、データを直列化及び非直列化するためのプログラムソースコードを生成させ、
前記要素をもとに生成されたプログラムソースコードをまとめて、前記集合体に対する直列化及び非直列化するためのプログラムソースコードを生成させるためのプログラムソースコード生成プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムソースコードを生成するプログラムソースコード生成方法、プログラムソースコード生成プログラムに関する。
【０００２】
【従来の技術】
一般に、コンピュータ等の情報処理装置では、所定のデータ構造をもって管理されて記録媒体に記録されているデータを、通信経路を通じて伝送して他の記録媒体に記録させる場合には、所定のデータ構造のデータを直列化（シリアライズ）した上で通信経路を伝送し、直列化されたデータを非直列化（ストラクチャ）して元のデータ構造となるように構造化する処理が実行されている。
【０００３】
例えば、パーソナルコンピュータにおいて、処理対象としていたデータをハードディスク装置に書き戻す場合には、プログラムが管理していたデータ構造（例えば、階層構造など）に従ってデータをシリアライズし、またシリアライズされたデータをストラクチャすることで構造化する。
【０００４】
従来、こうした所定のデータ構造をもったデータをシリアライズ及びストラクチャするプログラムを作成する場合、データ構造の定義が記載された仕様書などを参照しながら、プログラマがプログラムソースコードを作成している。データ構造の定義では、例えば作成対象とするプログラムソースコードファイルのそれぞれに応じた集合体の定義や、集合体におけるデータに関する情報（サイズやデータ型（文字列、数値など））が定義されている。
【０００５】
プログラマは、データ構造の定義に従って、データを所定の手法によってシリアライズ及びストラクチャするプログラムソースコードを、目的とするプログラミング言語を用いて記述することになる。
【０００６】
ところで、特開平５−２１６６８３には、プログラム記述言語に依存せずにファイル化手順を自動生成するための非言語依存のファイル化手順自動生成方法が記載されている。この生成方法は、ソースプログラムから目的とするマシンの目的ファイルを作成するものであって、データベースにおいて定義された目的ファイルに関与するファイルを定義する構成定義データなどを参照し、ファイル化手順を自動生成する手段を備えている。
【０００７】
【発明が解決しようとする課題】
このように従来では、データをシリアライズ及びストラクチャする機能を実現するためのプログラムソースコードを生成する場合には、プログラマがデータ構造の定義が記載された仕様書などを参照しながら、定義されたデータ構造、すなわち集合体や各集合体における要素を定義する記述に応じたプログラムソースコードを入力する作業が必要となっていた。
【０００８】
このため、データ構造の定義において集合体及び要素の数が多かったり、さらにデータ構造が多段階の階層構造あるいは要素の定義が他の集合体の定義を引用するといった複雑なものであったりした場合には、プログラマは多大な労力を要してプログラムソースコードを入力していかなければならなかった。
【０００９】
また、データ構造の定義が一部変更となった場合には、プログラムソースコードの再生成をしたり、変更が必要なソースコードを抽出して変更したりする必要があった。さらに、シリアライズ及びストラクチャする手法を変更したり、対象とするプログラミング言語を変更する場合などにおいても、プログラムソースコードの再生成が必要な場合があり、多大な労力が必要となっていた。
【００１０】
また、特開平５−２１６６８３に開示されたファイル化手順自動生成方法は、ファイル化手順作成を自動化することで人間による誤り防止と時間短縮を可能とするものであるが、ソースプログラムから目的とするマシンの目的ファイルを作成するものであって、プログラムソースコードを作成するものではなかった。
【００１１】
本発明は前記のような事情を考慮してなされたもので、データを直列化及び非直列化する機能を実現するためのプログラムソースコードの生成に要する労力を軽減することが可能なプログラムソースコード生成方法、プログラムソースコード生成プログラムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、データを直列化及び非直列化する機能を実現するためのプログラムソースコードを生成するプログラムソースコード生成方法であって、データを直列化及び非直列化する単位を示す集合体とこの集合体の中の直列化及び非直列化する要素が定義された情報を参照し、前記集合体に含まれる前記要素をもとに、データを直列化及び非直列化するためのプログラムソースコードを生成し、前記要素をもとに生成されたプログラムソースコードをまとめて、前記集合体に対する直列化及び非直列化するためのプログラムソースコードを生成することを特徴とする。
【００１３】
また、前記情報に複数の集合体が定義されている場合に、それぞれの集合体についてプログラムソースコードを生成することを特徴とする。
【００１４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は本実施形態に係わるプログラムソースコード生成方法を実現するための機能構成を示すブロック図である。本実施形態におけるプログラムソースコード生成方法は、プログラムソースコード生成プログラムをコンピュータ上で実行することで実現される。コンピュータは、例えば半導体メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、磁気ディスク等の記録媒体に記録されたプログラムソースコード生成プログラムを読み込み、このプログラムによって動作が制御される。
【００１５】
図１に示すように、プログラムソースコード生成方法は、ソースコード生成処理部１０、定義ファイル記憶部１２、ソースコードファイル記憶部１４、定義ファイル変更部１６、及び変更部１８の機能が設けられる。
【００１６】
ソースコード生成処理部１０は、データ構造を定義する情報をもとにプログラムソースコードを生成する処理を実行するもので、プログラムソースコード自動生成部２０（２０ａ，２０ｂ…）の機能が設けられる。プログラムソースコード自動生成部２０は、定義ファイル記憶部１２に記憶されたデータ構造の定義ファイル２２を参照し、定義ファイル２２において定義されたデータ構造に応じた、データをシリアライズ及びストラクチャする機能を実現するためのプログラムソースコードを生成する。
【００１７】
なお、ソースコード生成処理部１０には、複数のプログラムソースコード自動生成部２０ａ，２０ｂ…を設けることができる。各プログラムソースコード自動生成部２０ａ，２０ｂ…は、生成の対象とするプログラムソースコードのプログラミング言語の違い、あるいはシリアライズ及びストラクチャの手法の違いに応じたプログラムソースコードを生成する機能が設けられており、何れかが選択されて実行される。
【００１８】
定義ファイル記憶部１２は、ソースコード生成処理部１０（プログラムソースコード自動生成部２０）によって生成されるプログラムソースコードのもとになるデータ構造の定義ファイル２２が記憶される。データ構造の定義ファイル２２では、データをシリアライズ（直列化）及びストラクチャ（非直列化）する単位を示す集合体とこの集合体の中のシリアライズ及びストラクチャする要素が定義された情報が含まれている。
【００１９】
ソースコードファイル記憶部１４は、ソースコード生成処理部１０（プログラムソースコード自動生成部２０）によって生成されたプログラムソースコードファイル２４を記憶する。
【００２０】
定義ファイル変更部１６は、定義ファイル記憶部１２に記憶されたデータ構造の定義ファイル２２に対して変更を加えるもので、異なるデータ構造に対するプログラムソースコードを再生成する場合などにおいて定義ファイル中のデータ構造の定義を変更する。
【００２１】
変更部１８は、プログラムソースコードのプログラミング言語の違い、あるいはシリアライズ及びストラクチャの手法の違いに応じたプログラムソースコードを生成するために、必要に応じてデータ構造の定義ファイル２２をもとにプログラムソースコードファイル２４を生成するプログラムソースコード自動生成部２０を変更、すなわち複数のプログラムソースコード自動生成部２０ａ，２０ｂ…の何れかを選択して実行させる。なお、ソースコード生成処理部１０に複数のプログラムソースコード自動生成部２０ａ，２０ｂ…を設けておいて何れかを選択して使用するのではなく、必要に応じて変更部１８によってプログラムソースコード自動生成部２０を変更する、あるいは別のプログラムソースコード自動生成部２０に置き換えるものとしても良い。
【００２２】
次に、本実施形態におけるプログラムソースコード作成の動作について、図２に示すフローチャートを参照しながら説明する。
【００２３】
図３には、プログラムソースコードファイル２４の生成のもとになるデータ構造の定義ファイル２２に定義される情報の一例を示している。データ構造の定義ファイル２２には、データをシリアライズ及びストラクチャする単位を示す集合体と、この集合体の中のシリアライズ及びストラクチャする要素が定義された情報が含まれている。図３に示す例では、１つの集合体「集合体１」が定義され、この「集合体１」には２つの要素「要素Ａ」「要素Ｂ」が定義されている。要素には、例えばデータサイズやデータ型（文字列、数値など）の情報が定義されている。
【００２４】
まず、プログラムソースコード自動生成部２０は、データ構造の定義ファイル２２を参照し、このファイル中に定義された集合体について、定義された要素の有無を判別する（ステップＡ１）。ここで、集合体に要素が定義されている場合にはその要素を読み込む（ステップＡ２）。図３に示す例では、「集合体１」に「要素Ａ」「要素Ｂ」が定義されているので、まず「要素Ａ」の定義を読み込む。
【００２５】
プログラムソースコード自動生成部２０は、要素の情報（すなわちデータサイズやデータ型）をもとに、所定の手法によりデータをシリアライズ及びストラクチャするためのプログラムソースコード生成する（ステップＡ３）。
【００２６】
例えば、データをシリアライズするプログラムソースコードは、スタックの位置を順次更新しながら、各要素に定義されたデータをスタックに順次格納していく手続きが記述される。また、データをストラクチャするプログラムソースコードは、シリアライズの手続きと逆となるように、スタックに格納されたデータを、スタックの位置を順次更新しながら読み出して、各要素で定義されたデータを構築する手続きが記述される（なお、具体例について、図５及び図６に示す）。
【００２７】
次に、プログラムソースコード自動生成部２０は、前述と同様にして定義ファイル２２を参照し、このファイル中に定義された集合体について、定義された要素の有無を判別し（ステップＡ１）、集合体に要素が定義されている場合にはその要素を読み込む（ステップＡ２）。図３に示す例では、次に「要素Ｂ」の定義を読み込む。
【００２８】
プログラムソースコード自動生成部２０は、要素の情報をもとに、所定の手法によりデータをシリアライズ及びストラクチャするためのプログラムソースコード生成する（ステップＡ３）。
【００２９】
以下、同様にして、集合体に定義された要素の数だけ前述した処理を繰り返して実行し、それぞれの要素のデータをシリアライズ及びストラクチャするためのプログラムソースコード生成する（ステップＡ１〜Ａ３）。
【００３０】
こうして、データ構造の定義ファイル２２に定義された集合体に含まれる各要素のデータをシリアライズ及びストラクチャするためのプログラムソースコードを生成すると、これらをまとめて集合体をシリアライズ及びストラクチャするためのプログラムソースコードを生成し、プログラムソースコードファイル２４としてソースコードファイル記憶部１４に記憶させる（ステップＡ４）。
【００３１】
このようにして、プログラムソースコード自動生成部２０は、例えば図３に示すデータ構造の定義ファイル２２を参照することで、図４に示すような、定義ファイル２２に記述された要素Ａ及び要素Ｂのデータを扱うことができる、集合体１をシリアライズ及びストラクチャするためのプログラムソースコードからなるプログラムソースコードファイル２４を自動生成することができる。
【００３２】
次に、データをシリアライズ及びストラクチャをするためのプログラムソースコードの具体例について説明する。
図５は、図３に示すデータ構造の定義ファイル２２に該当する定義内容の具体例を示す図、図６は、図５に示すデータ構造の定義ファイル２２の定義に応じてプログラムソースコード自動生成部２０によって生成されるプログラムソースコードファイル２４の具体例を示す図である。
【００３３】
図５に示すように、データ構造の定義ファイル２２には、「要素Ａ」については「＜ｔｙｐｅ＞ｌｏｎｇ＜／ｔｙｐｅ＞」の記述にあるように、「ｌｏｎｇ」サイズ（例えば、４ｂｙｔｅ）のデータであることが定義され、「要素Ｂ」については「＜ｔｙｐｅ＞Ｓｔｒｉｎｇ＜／ｔｙｐｅ＞」の記述にあるように、文字列のデータであることが定義されている。
【００３４】
プログラムソースコード自動生成部２０は、図５に示す定義ファイル２２の記述に対して、図６に示すようなプログラムソースコードファイル２４を生成する。図６に示すプログラムソースコードファイル２４では、（１）に示すシリアライズのプログラムソースコードと、（２）に示すストラクチャのプログラムソースコードが含まれている。
【００３５】
シリアライズのプログラムソースコード（１）には、要素Ａのデータに対するソースコード（１Ａ）と要素Ｂのデータに対するソースコード（１Ｂ）が含まれている。
【００３６】
ソースコード（１Ａ）には、「ｓｔａｃｋ［ｃｏｕｎｔ］」によって示すスタック位置に、要素Ａのデータを、要素Ａのデータ分のデータサイズを確保して格納し（「ｍｅｍｃｐｙ…」の行の記述）、スタックの次にデータを格納する位置を要素Ａのデータ分更新する（「ｃｏｕｎｔ＝…」の行の記述）ことを表すソースコードが含まれている。
【００３７】
また、ソースコード（１Ｂ）には、要素Ｂのデータ（文字列）の長さを定義し（「ｓｉｚｅ＝…」の行の記述）、「ｓｔａｃｋ［ｃｏｕｎｔ］」によって示すスタック位置に、定義した要素Ｂのデータの長さを示すデータ（「ｓｉｚｅ」）を、このデータ分を確保して格納し（「ｍｅｍｃｐｙ（＆ｓｔａｃｋ…ｓｉｚｅｏｆ（ｓｉｚｅ）」の行の記述）、スタックの次にデータを格納する位置を要素Ｂのデータの長さを示すデータ分更新する（「ｃｏｕｎｔ＝…」の行の記述）ことを表すソースコードが含まれている。すなわち、要素Ｂのデータをスタックに格納する前に、要素Ｂのデータ（文字列）の長さを示すデータを格納するためのソースコードを生成している。次に、「ｓｔａｃｋ［ｃｏｕｎｔ］」によって示すスタック位置に、要素Ｂのデータを、要素Ｂのデータ分のデータサイズを確保して格納し（「ｍｅｍｃｐｙ（＆ｓｔａｃｋ…ｓｉｚｅ）」の行の記述）、スタックの次にデータを格納する位置を要素Ｂのデータ分更新する（「ｃｏｕｎｔ＝…」の行の記述）ことを表すソースコードが含まれている。
【００３８】
一方、ストラクチャのプログラムソースコード（２）には、要素Ａのデータに対するソースコード（２Ａ）と要素Ｂのデータに対するソースコード（２Ｂ）が含まれている。
【００３９】
ソースコード（２Ａ）には、要素Ａに対するシリアライズのプログラムソースコード（１Ａ）の記述とは逆の手順で、スタックからデータを読み出して要素Ａのデータとし、同様にしてソースコード（２Ｂ）には、要素Ｂに対するシリアライズのプログラムソースコード（１Ｂ）の記述とは逆の手順でスタックからデータを読み出して要素Ｂのデータとするプログラムソースコードが含まれている。要素Ｂのデータについては、先に要素Ｂのデータ（文字列）の長さを示すデータを読み出し、このデータに従う長さのデータを読み出している。
【００４０】
このようにして、図５に示すような内容を持つデータ構造の定義ファイル２２を用意することで、この定義ファイル２２で定義された内容に従って、図６に示すようなデータをシリアライズ及びストラクチャするためのプログラムソースコードファイルを自動生成することができる。
【００４１】
なお、図５に示す定義ファイル２２における要素の記述は一例であって、様々な形式による記述が可能である。プログラムソースコード自動生成部２０は、それらの様々な記述による定義に応じた、シリアライズ及びストラクチャするためのプログラムソースコードを生成する機能が設けられている。
【００４２】
次に、定義ファイル２２に複数の集合体を含むデータ構造が定義される場合について説明する。
前述した説明では、集合体が１つの単純なパターンのデータ構造を対象としているが、本実施形態におけるプログラムソースコード自動生成部２０は、集合体が複数有り、また集合体中の要素の定義が他の集合体の定義を引用するような複雑なパターンのデータ構造を対象とすることもできる。
【００４３】
図７は、本実施形態における複雑なパターンのデータ構造が定義されたデータ構造の定義ファイル２２を対象とした場合のプログラムソースコード作成の動作について説明するフローチャートである。
【００４４】
図８には、集合体が複数有り、また集合体中の要素の定義が他の集合体の定義を引用するような複雑なパターンのデータ構造の定義ファイル２２の一例を示している。データ構造の定義ファイル２２には、複数の集合体１，２と、この集合体１，２の中のシリアライズ及びストラクチャする要素が定義された情報が含まれている。図８に示す例では、「集合体１」には２つの要素「要素Ａ」「要素Ｂ」が定義され、「集合体２」には３つの要素「要素Ａ」「要素Ｂ」「要素Ｃ」が定義されている。なお、集合体２の要素Ｃは、集合体１全体を引用する定義がされているものとする（具体例については図１０（２３）に示す）。
【００４５】
まず、プログラムソースコード自動生成部２０は、データ構造の定義ファイル２２を参照し、このファイル中に定義された集合体にの有無を判別する（ステップＢ１）。ここで、集合体が定義されている場合にはその集合体を読み込む（ステップＢ２）。図８に示す例では、２つの「集合体１」「集合体２」が定義されているので、まず「集合体１」を読み込む。
【００４６】
次に、プログラムソースコード自動生成部２０は、この読み込んだ集合体について、定義された要素の有無を判別する（ステップＢ３）。なお、以下の図７に示すステップＢ３〜Ｂ６の処理は、図２に示すフローチャートのステップＡ１〜Ａ４の処理と同様にして実行されるものとして詳細な説明は省略する。
【００４７】
プログラムソースコード自動生成部２０は、１つの集合体についてのプログラムソースコードファイル２４を生成すると、前述と同様にして定義ファイル２２を参照し、このファイル中に他に定義された集合体の有無を判別し（ステップＢ１）、集合体が定義されている場合にはその集合体を読み込み（ステップＢ２）。以下同様にして、この集合体に対するプログラムソースコードファイル２４を生成する（ステップＢ３〜Ｂ５）。図８に示す例では、次に集合体２を読み込み、この集合体２についてのプログラムソースコードファイル２４を生成する。
【００４８】
以下、同様にして、集合体の数だけ前述した処理を繰り返して実行し、それぞれの集合体に対するプログラムソースコードファイル２４を生成する。
【００４９】
このようにして、プログラムソースコード自動生成部２０は、例えば図８に示すデータ構造の定義ファイル２２を参照することで、図９に示すような、データ構造の定義ファイル２２に記述された集合体１，２をそれぞれシリアライズ及びストラクチャするためのプログラムソースコードからなるプログラムソースコードファイル２４を自動生成することができる。すなわち、集合体１については要素Ａ，Ｂのデータを扱うことができ、集合体２については要素Ａ，Ｂ，Ｃのデータを扱うことができる、プログラムソースコードファイル２４をそれぞれ生成することができる。
【００５０】
次に、図８及び図９に対応する、データをシリアライズ及びストラクチャをするためのプログラムソースコードの具体例について説明する。
図１０は、図８に示すデータ構造の定義ファイル２２に該当する定義内容の具体例を示す図、図１１は、図１０に示すデータ構造の定義ファイル２２の集合体１についての定義に応じてプログラムソースコード自動生成部２０によって生成されるプログラムソースコードファイル２４の具体例を示す図、図１２は、図１０に示すデータ構造の定義ファイル２２の集合体２についての定義に応じて生成されるプログラムソースコードファイル２４の具体例を示す図である。
【００５１】
図１０に示すように、データ構造の定義ファイル２２には、集合体１についての定義（１）と集合体（２）についての定義（２）が記述されている。
集合体１の定義（１）には、要素Ａについての定義（１１）と要素Ｂについての定義（１２）が含まれている。なお、要素Ａ，Ｂの定義（１１）（１２）の定義の記述は、図５に示すプログラムソースコードファイル２４の具体例と同一であるので詳細な説明を省略する。
【００５２】
一方、集合体２の定義（２）には、要素Ａについての定義（２１）と要素Ｂについての定義（２２）、及び要素Ｃについての定義（２３）が含まれている。なお、要素Ａ，Ｂの定義（２１）（２２）の定義の記述は、図５に示すプログラムソースコードファイル２４の具体例と同一であるので詳細な説明を省略する。要素Ｃについての定義（２３）には、「＜ｃｌａｓｓＮａｍｅ＞Ｃｌａｓｓ１＜／ｃｌａｓｓＮａｍｅ＞」の記述にあるように、「Ｃｌａｓｓ１」に記述された定義、すなわち集合体１の定義（１）を引用することが定義されている。
【００５３】
プログラムソースコード自動生成部２０は、図１０に示す定義ファイル２２の記述に対して、集合体１に対しては図１１に示すようなプログラムソースコードファイル２４を生成し、集合体２については図１２に示すようなプログラムソースコードファイル２４を生成する。なお、図１１に示すプログラムソースコードファイル２４の例は、図６に示す具体例と同一であるので説明を省略する。図１２に示すプログラムソースコードファイル２４の例では、シリアライズのプログラムソースコード（１）には、要素Ａのデータに対するソースコード（１Ａ）と要素Ｂのデータに対するソースコード（１Ｂ）と要素Ｃのデータに対するソースコード（１Ｃ）が含まれている。ソースコード（１Ｃ）では、定義ファイル２２における定義に従って、集合体１に関係するシリアライズのプログラムソースコード「ｃｏｕｎｔ＝ｃｏｕｎｔ＋ｅｌｅｍｅｎｔＣ．Ｓｅｒｉａｌｉｚｅ（＆ｓｔａｃｋ［ｃｏｕｎｔ］）」が生成されている。
【００５４】
また、ストラクチャのプログラムソースコード（２）には、シリアライズのソースコード（１Ｃ）に対応したソースコード（２Ｃ）「ｃｏｕｎｔ＝ｃｏｕｎｔ＋ｅｌｅｍｅｎｔＣ．Ｓｔｒｕｃｔｕｒｅ（＆ｓｔａｃｋ［ｃｏｕｎｔ］）」が生成されている。
【００５５】
図１０に示すデータ構造の定義ファイル２２は、２つの集合体が定義され、集合体２の要素Ｃのみが他の記述を引用している例を示しているが、膨大な数の集合体が定義され、引用関係が複雑に定義されていたとしても、プログラムソースコード自動生成部２０がそれらの定義を参照して、正確に対応するプログラムソースコードを生成する。
【００５６】
このようにして、プログラムソースコード自動生成部２０によってデータ構造の定義ファイル２２において定義された集合体、及び各集合体における要素の定義をもとに、シリアライズ及びストラクチャするためのプログラムソースコードファイル２４を生成することができる。従って、データ構造の定義内容が、集合体及び要素の数が多かったり、さらに図１０（２３）に示すように、要素の定義が他の集合体の定義を引用するような複雑な定義がされていたりしても、誤り無くプログラムソースコードを生成することができる。プログラムソースコード自動生成部２０を用いることで、人手によるソースコードを作成するプログラミング作業を排除することができるので、人為的修正誤りを無くし、作業に要していた手間を大幅に削減することが可能となる。
【００５７】
なお、データ構造の定義ファイル２２に記述された定義の内容が変更が必要な場合には、定義ファイル変更部１６によって変更することができる。定義ファイル２２による定義を変更してしまえば、前述したようにプログラムソースコード自動生成部２０を実行させることで、変更されたデータ構造の定義ファイル２２に応じたプログラムソースコードファイル２４を簡単に自動生成することができる。
【００５８】
また、データのシリアライズ及びストラクチャの手法を変更する必要がある場合、ソースコード生成処理部１０に用意されている複数のプログラムソースコード自動生成部２０ａ，２０ｂ…のうち、この変更後の手法に対応しているプログラムソースコード自動生成部２０が実行されるように、変更部１８によって変更する。これにより、データのシリアライズ及びストラクチャの手法を変更する場合であっても簡単に対応することができる。同様にして、プログラム言語を変更する場合であっても、変更後のプログラム言語に対応するプログラムソースコード自動生成部２０が実行されるように変更することで対応することができる。
【００５９】
なお、前述した説明では、データ構造の定義ファイル２２をもとにプログラムソースコードファイル２４を生成するものとして説明しているが、データ構造を定義するために作成された専用のファイルではなく、データ構造を表していれはば他のデータを参照して、プログラムソースコードファイル２４を生成するように構成することもできる。
【００６０】
また、上述した実施形態において記載した手法は、コンピュータに実行させることのできるプログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。本装置を実現するコンピュータは、記録媒体に記録されたプログラムを読み込み、または通信媒体を介してプログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【００６１】
また、本願発明は、前述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、前記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００６２】
【発明の効果】
以上詳述したように本発明によれば、データを直列化及び非直列化する単位を示す集合体とこの集合体の中の直列化及び非直列化する要素が定義された情報を参照し、集合体に含まれる要素をもとに、データを直列化及び非直列化するためのプログラムソースコードを生成し、要素をもとに生成されたプログラムソースコードをまとめて、集合体に対する直列化及び非直列化するためのプログラムソースコードを生成することにより、データを直列化及び非直列化する機能を実現するためのプログラムソースコードの生成に要する労力を軽減することが可能となる。
【図面の簡単な説明】
【図１】本実施形態に係わるプログラムソースコード生成方法を実現するための機能構成を示すブロック図。
【図２】本実施形態におけるプログラムソースコード作成の動作について説明するためのフローチャート。
【図３】プログラムソースコードファイル２４の生成のもとになるデータ構造の定義ファイル２２に定義される情報の一例を示す図。
【図４】図３に示す定義ファイル２２に対応する集合体１をシリアライズ及びストラクチャするためのプログラムソースコードからなるプログラムソースコードファイル２４の一例を示す図。
【図５】図３に示すデータ構造の定義ファイル２２に該当する定義内容の具体例を示す図。
【図６】図５に示すデータ構造の定義ファイル２２の定義に応じて生成されるプログラムソースコードファイル２４の具体例を示す図。
【図７】本実施形態における複雑なパターンのデータ構造が定義されたデータ構造の定義ファイル２２を対象とした場合のプログラムソースコード作成の動作について説明するフローチャート。
【図８】本実施形態における複雑なパターンのデータ構造の定義ファイル２２の一例を示す図。
【図９】図８に示すデータ構造の定義ファイル２２に記述された集合体１，２をそれぞれシリアライズ及びストラクチャするためのプログラムソースコードからなるプログラムソースコードファイル２４の具体例を示す図。
【図１０】図８に示すデータ構造の定義ファイル２２に該当する定義内容の具体例を示す図。
【図１１】図１０に示すデータ構造の定義ファイル２２の集合体１についての定義に応じて生成されるプログラムソースコードファイル２４の具体例を示す図。
【図１２】図１０に示すデータ構造の定義ファイル２２の集合体２についての定義に応じて生成されるプログラムソースコードファイル２４の具体例を示す図。
【符号の説明】
１０…ソースコード生成処理部
１２…定義ファイル記憶部
１４…ソースコードファイル記憶部
１６…定義ファイル変更部
１８…変更部
２０…プログラムソースコード自動生成部
２２…データ構造の定義ファイル
２４…プログラムソースコードファイル
【図１】
2004038319.tif 000003
【図２】
2004038319.tif 000004
【図３】
2004038319.tif 000005
【図４】
2004038319.tif 000006
【図５】
2004038319.tif 000007
【図６】
2004038319.tif 000008
【図７】
2004038319.tif 000009
【図８】
2004038319.tif 000010
【図９】
2004038319.tif 000011
【図１０】
2004038319.tif 000012
【図１１】
2004038319.tif 000013
【図１２】
2004038319.tif 000014