(57)【要約】【課題】起動時のコンポーネント間の情報交換を不要とし、かつアプリケーションの動作を高速化することのできるコンパイラを提供する。【解決手段】インタフェース定義解析装置５１は、アプリケーションが使用するデータ型の情報を含むインタフェース定義２を解析し、コンパイル装置５内で使用される形式に変換したインタフェース定義解析情報５２を生成する。ドメイン共有情報解析装置５３は、アプリケーションが参加するドメイン毎の、そのドメインで使用されるデータ型に関する情報を含むドメイン共有情報６を解析し、コンパイル装置５内で使用される形式に変換したドメイン共有情報解析情報５４を生成する。ドメイン用コード生成装置５５は、インタフェース定義解析情報５２と共有情報解析情報５４とを入力として、ドメイン毎に、そのドメインに適合した専用のコードを生成する。【選択図】図１
2008146383.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションがデータ送受信に使用するコードを生成するコンパイル装置であって、
前記アプリケーションがデータ送受信に使用するデータ型の情報を含むインタフェース定義を解析し、前記コンパイル装置内で使用される形式に変換したインタフェース定義解析情報を生成するインタフェース定義解析装置と、
前記アプリケーションが参加するドメイン毎の、該ドメインで使用されるデータ型に関する情報を含むドメイン共有情報を解析し、前記コンパイル装置内で使用される形式に変換したドメイン共有情報解析情報を生成するドメイン共有情報解析装置と、
前記インタフェース定義解析装置で生成された前記インタフェース定義解析情報と、前記ドメイン共有情報解析装置で生成された前記ドメイン共有情報解析情報とを入力として、前記ドメイン毎に、該ドメインに適合した専用のコードを生成するドメイン用コード生成装置と、を有するコンパイル装置。
【請求項２】
前記ドメイン用コード生成装置は、前記ドメインの各々について、前記インタフェース定義解析情報に含まれている各データ型についての部分コードを生成した後に該部分コードを統合することにより、前記ドメインに専用のコードを生成する、請求項１に記載のコンパイル装置。
【請求項３】
前記ドメイン用コード生成装置は、前記データ型についての部分コードを生成するとき、
該データ型に関する情報が、前記ドメイン共有情報解析情報の前記ドメインの部分に含まれていれば、前記ドメイン共有情報を含んだ前記部分コードを生成し、
該データ型に関する情報が、前記ドメイン共有情報解析情報の前記ドメインの部分に含まれていなければ、前記ドメイン共有情報を含まない前記部分コードを生成する、
請求項２に記載のコンパイル装置。
【請求項４】
アプリケーションがデータ送受信に使用するコードをコンパイラによって生成するためのコンパイル方法であって、
前記アプリケーションがデータ送受信に使用するデータ型の情報を含むインタフェース定義を解析し、前記コンパイラ内で使用される形式に変換したインタフェース定義解析情報を生成し、
前記アプリケーションが参加するドメイン毎の、該ドメインで使用されるデータ型に関する情報を含むドメイン共有情報を解析し、前記コンパイラ内で使用される形式に変換したドメイン共有情報解析情報を生成し、
生成した前記インタフェース定義解析情報と前記ドメイン共有情報解析情報とから、前記ドメイン毎に、該ドメインに適合した専用のコードを生成する、コンパイル方法。
【請求項５】
前記ドメインの各々について、前記インタフェース定義解析情報に含まれている各データ型についての部分コードを生成した後に該部分コードを統合することにより、前記ドメインに専用のコードを生成する、請求項４に記載のコンパイル方法。
【請求項６】
前記データ型についての部分コードを生成するとき、
該データ型に関する情報が、前記ドメイン共有情報解析情報の前記ドメインの部分に含まれていれば、前記ドメイン共有情報を含んだ前記部分コードを生成し、
該データ型に関する情報が、前記ドメイン共有情報解析情報の前記ドメインの部分に含まれていなければ、前記ドメイン共有情報を含まない前記部分コードを生成する、
請求項５に記載のコンパイル方法。
【請求項７】
アプリケーションがデータ送受信に使用するコードのコンパイラによる生成をコンピュータに実行させるためのプログラムであって、
前記アプリケーションがデータ送受信に使用するデータ型の情報を含むインタフェース定義を解析し、前記コンパイラ内で使用される形式に変換したインタフェース定義解析情報を生成する手順と、
前記アプリケーションが参加するドメイン毎の、該ドメインで使用されるデータ型に関する情報を含むドメイン共有情報を解析し、前記コンパイラ内で使用される形式に変換したドメイン共有情報解析情報を生成する手順と、
生成した前記インタフェース定義解析情報と前記ドメイン共有情報解析情報とから、前記ドメイン毎に、該ドメインに適合した専用のコードを生成する手順とを、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションがデータの送受信に使用するコードを生成するコンパイラに関する。
【背景技術】
【０００２】
ＣＯＲＢＡ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ）やＤＤＳ（Ｄａｔａ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｓｅｒｖｉｃｅ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ  Ｓｙｓｔｅｍｓ）技術を使用したアプリケーションはアプリケーション間でデータを送受信する。そのため、この種のソフトウェアではデータを送受信するためのインタフェースの定義が必要である。そのインタフェースを定義するための言語がＩＤＬ（Ｉｎｔｅｒｆａｃｅ  Ｄｅｆｉｎｉｔｉｏｎ  Ｌａｎｇｕａｇｅ）である。
【０００３】
また、通常、アプリケーションは複数のソフトウェアコンポーネント（以下「コンポーネント」という）から構成されており、データの送受信はコンポーネントによって実現される。ＩＤＬで定義されたＩＤＬ定義情報を解析し、コンポーネントで使用できるコードを生成するのがＩＤＬコンパイラである（例えば特許文献１参照）。
【０００４】
図１０は、ＩＤＬコンパイラの構成を示すブロック図である。図１０を参照すると、ＩＤＬコンパイラ１はＩＤＬ定義解析装置１１およびコード生成装置１３を有し、ＩＤＬ定義２を入力として、Ｐｕｂｌｉｓｈｅｒコード３およびＳｕｂｓｃｒｉｂｅｒコード４を生成する。
【０００５】
ＩＤＬ定義２は、ＤＤＳ技術を使用するアプリケーション間で送受信されるデータの型（以下「ＩＤＬ型」という）の定義である。
【０００６】
ＩＤＬ定義解析装置１１は、文字列等の形式で入力されたＩＤＬ定義２を解析し、ＩＤＬ定義２をＩＤＬコンパイラ１内で使用しやすい形式に変換した情報（以下「ＩＤＬ定義解析情報」という）１２を生成する装置である。
【０００７】
コード生成装置１３は、ＩＤＬ定義解析装置１１で生成されたＩＤＬ定義解析情報１２に基づいてＰｕｂｌｉｓｈｅｒコード３およびＳｕｂｓｃｒｉｂｅｒコード４を生成する装置である。
【０００８】
ＩＤＬコンパイラによって生成されるコードには、送信機能を備えたコンポーネントが使用するＰｕｂｌｉｓｈｅｒコードと、受信機能を備えたコンポーネントが使用するＳｕｂｓｃｒｉｂｅｒコードとがある。ＩＤＬコンパイラは、ＩＤＬ定義情報に基づいてコードを生成するとき、様々なコンポーネント構成に対応できるように汎用的なコードを生成する。
【０００９】
ＩＤＬコンパイラによって生成されるコードは汎用的なものであり、ドメインに固有の情報を含んでいない。そのため、どのドメインに参加するアプリケーションでも、そのコードを利用することができる。ただし、アプリケーション起動時には、データの送受信を可能するために、アプリケーションを構成するコンポーネント間で、そのドメイン内で共通に使用するための情報を交換する。
【００１０】
コンポーネント間の情報交換の方法として、コンポーネントの各々が起動時にドメインで標準的に必要な情報をそれぞれ生成し、それを相互に交換するという方法があった。また、他の方法として、特定のコンポーネントがドメイン内で標準的に必要とされる情報を生成し、他のコンポーネントに配信するという方法があった。
【特許文献１】特開２００６−４８２３６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、図１０に示したようなＩＤＬコンパイラが生成したコードを使用したアプリケーションでは、アプリケーション起動時に、コンポーネント間で情報を交換するので、アプリケーションの起動にかかる時間が長くなるという問題があった。また、起動時にコンポーネント間で情報交換する構成により生じる様々な不都合があった。例えば、コンポーネントの各々が起動時にドメインで標準的に必要な情報をそれぞれ生成し、それを交換する方法の場合、コンポーネントの各々が情報を生成するので全体として冗長な処理をしていた。また、各コンポーネントが個別に生成した情報が互いに矛盾しないようにするために情報の管理が複雑となっていた。また、特定のコンポーネントから他のコンポーネントにドメイン内で標準的に必要となる情報を配信する方法の場合、特定のコンポーネントがドメインに必要な情報を管理しているので、そのコンポーネントに障害が発生したとき他のコンポーネントも使用できなくなる可能性があった。
【００１２】
また、ＩＤＬコンパイラの生成するコードは汎用的なので個々のコンポーネントから見ると冗長な機能を備えており、それがアプリケーションの高速動作を妨げていた。
【００１３】
本発明の目的は、起動時のコンポーネント間の情報交換を不要とし、かつアプリケーションの動作を高速化することのできるコンパイラを提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明のコンパイル装置は、
アプリケーションがデータ送受信に使用するコードを生成するコンパイル装置であって、
前記アプリケーションがデータ送受信に使用するデータ型の情報を含むインタフェース定義を解析し、前記コンパイル装置内で使用される形式に変換したインタフェース定義解析情報を生成するインタフェース定義解析装置と、
前記アプリケーションが参加するドメイン毎の、該ドメインで使用されるデータ型に関する情報を含むドメイン共有情報を解析し、前記コンパイル装置内で使用される形式に変換したドメイン共有情報解析情報を生成するドメイン共有情報解析装置と、
前記インタフェース定義解析装置で生成された前記インタフェース定義解析情報と、前記ドメイン共有情報解析装置で生成された前記ドメイン共有情報解析情報とを入力として、前記ドメイン毎に、該ドメインに適合した専用のコードを生成するドメイン用コード生成装置と、を有している。
【００１５】
本発明によれば、コンパイル装置は各ドメインに専用のコードを生成するので、汎用的なコードを各ドメインに適合させるために行なうコンポーネント間での情報交換を不要とし、またアプリケーションの動作を高速化することができる。
【００１６】
また、前記ドメイン用コード生成装置は、前記ドメインの各々について、前記インタフェース定義解析情報に含まれている各データ型についての部分コードを生成した後に該部分コードを統合することにより、前記ドメインに専用のコードを生成することにしてもよい。
【００１７】
また、前記ドメイン用コード生成装置は、前記データ型についての部分コードを生成するとき、
該データ型に関する情報が、前記ドメイン共有情報解析情報の前記ドメインの部分に含まれていれば、前記ドメイン共有情報を含んだ前記部分コードを生成し、
該データ型に関する情報が、前記ドメイン共有情報解析情報の前記ドメインの部分に含まれていなければ、前記ドメイン共有情報を含まない前記部分コードを生成することにしてもよい。
【発明の効果】
【００１８】
本発明によれば、起動時にアプリケーションを構成するコンポーネント間で情報を交換しなくてもデータの送受信が可能となり、またアプリケーションの動作を高速化できる。
【発明を実施するための最良の形態】
【００１９】
本発明を実施するための形態について図面を参照して詳細に説明する。本実施形態によるＩＤＬコンパイラは汎用的なコードを生成するのではなく、各ドメインに適合した専用のコードを生成する。専用コードはドメインに適した内容になっており、起動時にコンポーネント間で情報を交換しなくてもデータの送受信が可能となる。また、専用コードは、対象とするドメインに必要とされない冗長な機能は持たず、そのことがアプリケーションの動作の高速化に寄与する。
【００２０】
図１は、本実施形態によるＩＤＬコンパイラの構成を示すブロック図である。図１を参照すると、ＩＤＬコンパイラ５は、ＩＤＬ定義解析装置５１、ドメイン共有情報解析装置５３、およびドメイン用コード生成装置５５を有しており、ＩＤＬ定義２およびドメイン共有情報６を入力とし、ドメイン用Ｐｕｂｌｉｓｈｅｒコード７およびドメイン用Ｓｕｂｓｃｒｉｂｅｒコード８を生成する。ＩＤＬ定義２は、ＤＤＳ技術を使用するアプリケーション間で送受信されるデータ型（以下「ＩＤＬ型」という）の定義である。ドメイン共有情報６にはドメイン毎の情報が含まれている。各ドメインの情報には、アプリケーションが参加する各ドメインについて、ドメインで標準的に使用されるデータ型に関する情報が含まれている。
【００２１】
ＩＤＬ定義解析装置５１は、文字列等の形式で入力されたＩＤＬ定義２に定義されているＩＤＬ型を解析し、ＩＤＬ定義２をＩＤＬコンパイラ１内で使用される形式に変換した情報（以下「ＩＤＬ定義解析情報」という）５２を生成する装置である。
【００２２】
ドメイン共有情報解析装置５３は、文字列等の形式で入力されたドメイン共有情報６を解析し、ドメイン共有情報６をＩＤＬコンパイラ５内で使用される形式に変換した情報（以下「ドメイン共有情報解析情報」という）５４を生成する装置である。
【００２３】
ドメイン用コード生成装置５５は、ＩＤＬ定義解析装置５１で生成されたＩＤＬ定義解析情報５２と、ドメイン共有情報解析装置５３で生成されたドメイン共有情報解析情報５４とに基づいて、それぞれのドメインに専用のドメイン用Ｐｕｂｌｉｓｈｅｒコード７およびドメイン用Ｓｕｂｓｃｒｉｂｅｒコード８を生成する装置である。ドメイン用Ｐｕｂｌｉｓｈｅｒコード７およびドメイン用Ｓｕｂｓｃｒｉｂｅｒコード８はドメイン毎の専用コードであり、ドメインに適合するためにそのドメインで標準的に使用される情報が埋め込まれている。この専用コードはそのドメインに特化し適合しているので、起動時にアプリケーションを構成するコンポーネント間で情報を交換しなくてもデータの送受信が可能となる。また、専用コードは冗長な機能を削減しているので、アプリケーションの動作の高速化に寄与する。
【００２４】
図２は、本実施形態によるＩＤＬコンパイラの動作を示すフローチャートである。図２を参照すると、ＩＤＬコンパイラ５は、まずＩＤＬ定義解析装置５１がＩＤＬ定義解析手順を実行することにより、ＩＤＬ定義２を解析してＩＤＬ定義解析情報５２を生成する（ステップ２００）。また、ＩＤＬコンパイラ５は、ドメイン共有情報解析装置５３によってドメイン共有情報解析手順を実行することにより、ドメイン共有情報６を解析してドメイン共有情報解析情報５４を生成する（ステップ３００）。
【００２５】
次に、ＩＤＬコンパイラ５は、ドメイン用コード生成装置５５によってドメイン用コード生成手順を実行することにより、ＩＤＬ定義解析情報５２とドメイン共有情報解析情報５４から、各ドメインについてのドメイン用Ｐｕｂｌｉｓｈｅｒコード７およびドメイン用Ｓｕｂｓｃｒｉｂｅｒコード８を生成する（ステップ４００）。
【００２６】
図３は、図２に示したＩＤＬ定義解析手順の詳細な動作を示すフローチャートである。図３を参照すると、まず、ＩＤＬ定義解析装置５１は、ファイル等として記憶装置（不図示）に保存されているＩＤＬ定義２を読み込む（ステップ２０１）。
【００２７】
次に、ＩＤＬ定義解析装置５１は、そのＩＤＬ定義２に含まれているＩＤＬ型の定義を取り出して解析し、解析結果である定義解析情報をＩＤＬ定義解析情報５２に書き込む（ステップ２０２）。続いて、ＩＤＬ定義解析装置５１は、ＩＤＬ定義２に含まれている全てのＩＤＬ型の定義を全て解析し終えたか否か判定する（ステップ２０３）。
【００２８】
未解析のＩＤＬ型があれば、ＩＤＬ定義解析装置５１はステップ２０２に戻って未解析のＩＤＬ型の解析を続ける。全てのＩＤＬ型が解析済であれば、ＩＤＬ定義解析装置５１は、次にＩＤＬ定義解析情報５２をドメイン用コード生成装置５５に送信する（ステップ２０４）。
【００２９】
図４は、図２に示したドメイン共有情報解析手順の詳細な動作を示すフローチャートである。図４を参照すると、まず、ドメイン共有情報解析装置５３は、ファイル等として記憶装置（不図示）に保存されているドメイン共有情報６を読み込む（ステップ３０１）。
【００３０】
次に、ドメイン共有情報解析装置５３は、そのドメイン共有情報６に含まれているドメイン毎の共有情報を取り出して解析し、解析結果である共有情報解析情報をドメイン共有情報解析情報５４に書き込む（ステップ３０２）。続いて、ドメイン共有情報解析装置５３は、ドメイン共有情報６に含まれている全ての共有情報を解析し終えたか否か判定する（ステップ３０３）。
【００３１】
未解析の共有情報があれば、ＩＤＬ定義解析装置５１はステップ３０２に戻って未解析の共有情報の解析を続ける。全ての共有情報が解析済であれば、ドメイン共有情報解析装置５３は、次にドメイン共有情報解析情報５４をドメイン用コード生成装置５５に送信する（ステップ３０４）。
【００３２】
図５は、図２に示したドメイン用コード生成手順の詳細な動作を示すフローチャートである。図５を参照すると、まず、ドメイン用コード生成装置５５は、ＩＤＬ定義解析装置５１からのＩＤＬ定義解析情報５２を受信する（ステップ４０１）。また、ドメイン用コード生成装置５５は、ドメイン共有情報解析装置５３からのドメイン共有情報解析情報５４を受信する（ステップ４０２）。
【００３３】
次に、ドメイン用コード生成装置５５は、ドメイン共有情報解析情報５４に含まれているドメイン毎の共有情報解析情報のいずれか１つを取り出す（ステップ４０３）。
【００３４】
次に、ドメイン用コード生成装置５５は、ＩＤＬ定義解析情報５２に含まれているＩＤＬ型毎の定義解析情報のいずれか１つを取り出す（ステップ４０４）。
【００３５】
続いて、ドメイン用コード生成装置５５は、ステップ４０４で取得した定義解析情報のＩＤＬ型が、ステップ４０３で取得した共有情報解析情報に含まれているか否か判定する（ステップ４０５）。
【００３６】
ステップ４０５の判定で、定義解析情報のＩＤＬ型が共有情報解析情報に含まれていれば、ドメイン用コード生成装置５５は、その共有情報解析情報および定義解析情報に基づいて、共有情報解析情報に対応するドメインで標準的に使用される共有情報を含んだＩＤＬ型のＰｕｂｌｉｓｈｅｒ部分コードおよびＳｕｂｓｃｒｉｂｅｒ部分コードを生成する（ステップ４０６）。
【００３７】
ステップ４０５の判定で、定義解析情報のＩＤＬ型が共有情報解析情報に含まれていなければ、ドメイン用コード生成装置５５は、その定義解析情報に基づいて、ドメインで使用される共有情報を含まないＩＤＬ型のＰｕｂｌｉｓｈｅｒ部分コードおよびＳｕｂｓｃｒｉｂｅｒ部分コードを生成する（ステップ４０７）。
【００３８】
ステップ４０６またはステップ４０７の次に、ドメイン用コード生成装置５５は、ステップ４０１で受信したＩＤＬ定義解析情報に含まれている全てのＩＤＬ型の定義解析情報についてＩＤＬ型のＰｕｂｌｉｓｈｅｒ部分コードおよびＳｕｂｓｃｒｉｂｅｒ部分コードを生成する処理が終わったか否か判定する（ステップ４０８）。
【００３９】
全てのＩＤＬ型の定義解析情報についての処理が終わっていなければ、ドメイン用コード生成装置５５は、ステップ４０４に戻って、未だ処理していないＩＤＬ型の定義解析情報の処理を続ける。全てのＩＤＬ型の定義解析情報についての処理が終わっていれば、ドメイン用コード生成装置５５は、ステップ４０３で取り出した共有情報解析情報に対応するドメインについて、ステップ４０６またはステップ４０７で生成した部分コードを統合してドメイン用コードを生成する（ステップ４０９）。具体的には、ステップ４０６またはステップ４０７で生成したＰｕｂｌｉｓｈｅｒ部分コードを統合してドメイン用Ｐｕｂｌｉｓｈｅｒコードを生成し、ステップ４０６またはステップ４０７で生成したＳｕｂｓｃｒｉｂｅｒ部分コードを統合してドメイン用Ｓｕｂｓｃｒｉｂｅｒコードを生成する。
【００４０】
次に、ドメイン用コード生成装置５５は、ステップ４０２で受信したドメイン共有情報解析情報に含まれている全ての共有情報解析情報に対応するドメインについて、ドメイン用コードを生成し終えたか否か判定する（ステップ４１０）。
【００４１】
ステップ４１０において、未だドメイン用コードの生成が終わっていないドメインがあれば、ドメイン用コード生成装置５５は、ステップ４０３に戻って、ドメイン用コードの生成が終わっていないドメインについての処理を続ける。全てのドメインについてドメイン用コードの生成が終わっていれば、ドメイン用コード生成装置５５は処理を終了する。
【００４２】
本実施形態によるＩＤＬコンパイラ５が、あるアプリケーションについてドメイン用コードを生成する実施例について説明する。
【００４３】
図６は、ＩＤＬコンパイラが扱うアプリケーションのコンポーネント構成の一例を示す図である。図６を参照すると、アプリケーションＡは、ドメインＭおよびドメインＮの双方に参加するコンポーネントＸおよびコンポーネントＹで構成されている。
【００４４】
図７はＩＤＬ定義の一例を示す図である。ＩＤＬ定義２はアプリケーションＡ全体で使用するＩＤＬ型の定義である。図７の例では、ＩＤＬ定義２は、構造体Ｓ１定義２１と構造体Ｓ２定義２２とから構成されている。これは、アプリケーションＡが使用するＩＤＬ型は構造体Ｓ１定義２１と構造体Ｓ２定義２２であることを意味する。構造体Ｓ１定義２１はｌｏｎｇ型の要素ｅ１を有している。構造体Ｓ２定義２２はｆｌｏａｔ型の要素ｅ２を有している。
【００４５】
図７に示したＩＤＬ定義２がＩＤＬ定義解析装置５１で解析され、その解析結果がドメイン用コード生成装置５５に与えられる。
【００４６】
図８はドメイン共有情報の一例を示す図である。図８を参照すると、ドメイン共有情報６はドメインＭ共有情報６１とドメインＮ共有情報６２とで構成されている。ドメインＭ共有情報６１は、ドメインＭで標準的に使用される型に関する情報である。これによれば、ドメインＭは、構造体Ｓ１型２１をＴｏｐｉｃＡという名前で使用し、構造体Ｓ２型２２をＴｏｐｉｃＢという名前で使用する。ドメインＮ共有情報６２は、ドメインＮで標準的に使用される型に関する情報である。これによれば、ドメインＮは、構造体Ｓ１型２１をＴｏｐｉｃＣという名前で使用する。
【００４７】
図８に示したドメイン共有情報６がドメイン共有情報解析装置５３で解析され、解析結果がドメイン用コード生成装置５５に与えられる。
【００４８】
図９は、ＩＤＬコンパイラにおけるコード生成の様子の一例を示す図である。本実施例では、ドメイン用コード生成装置５５は、図７に示したＩＤＬ定義２に基づくＩＤＬ定義解析情報５２と、図８に示したドメイン共有情報６に基づくドメイン共有情報解析情報５４とを入力として、図５に示したドメイン用コード生成手順を実行する。それによってＩＤＬコンパイラ５からは、図９に示すように、ドメインＭ用Ｐｕｂｌｉｓｈｅｒコード７１、ドメインＮ用Ｐｕｂｌｉｓｈｅｒコード７２、ドメインＭ用Ｓｕｂｓｃｒｉｂｅｒコード８１、およびドメインＮ用Ｓｕｂｓｃｒｉｂｅｒコード８２が生成される。
【００４９】
図８に示したように、ドメインＭの共有情報解析情報には構造体Ｓ１型２１と構造体Ｓ２型２２の両方が含まれているので、生成されるドメインＭのドメイン用コードにおいて、構造体Ｓ１型２１についての部分コードと構造体Ｓ２型２２についての部分コードの両方にドメイン共有情報が含まれる。
【００５０】
また、ドメインＮの共有情報解析情報には構造体Ｓ１型２１のみが含まれているので、生成されるドメインＮのドメイン用コードにおいて、構造体Ｓ１型２１についての部分コードにはドメイン共有情報が含まれるが、構造体Ｓ２型２２についての部分コードにはドメイン共有情報が含まれない。
【００５１】
以上説明したように、本実施形態によれば、ＩＤＬコンパイラ５は各ドメインに専用のコードを生成することができるので、起動時にアプリケーションを構成するコンポーネント間で情報を交換しなくてもデータの送受信が可能となり、また専用のコードにすることで冗長な機能が削減されるのでアプリケーションの動作を高速化できる。
【００５２】
なお、本実施形態に例示したＩＤＬコンパイラ５はソフトウェアプログラムをコンピュータに実行させることによって実現してもよい。その場合、ＩＤＬ定義解析装置５１、ドメイン共有情報解析装置５３、およびドメイン用コード生成装置５５による処理の一連の手順をコンピュータに実行させるためのソフトウェアプログラムを用いればよい。
【図面の簡単な説明】
【００５３】
【図１】本実施形態によるＩＤＬコンパイラの構成を示すブロック図である。
【図２】本実施形態によるＩＤＬコンパイラの動作を示すフローチャートである。
【図３】図２に示したＩＤＬ定義解析手順の詳細な動作を示すフローチャートである。
【図４】図２に示したドメイン共有情報解析手順の詳細な動作を示すフローチャートである。
【図５】図２に示したドメイン用コード生成手順の詳細な動作を示すフローチャートである。
【図６】ＩＤＬコンパイラが扱うアプリケーションのコンポーネント構成の一例を示す図である。
【図７】ＩＤＬ定義の一例を示す図である。
【図８】ドメイン共有情報の一例を示す図である。
【図９】ＩＤＬコンパイラにおけるコード生成の様子の一例を示す図である。
【図１０】ＩＤＬコンパイラの構成を示すブロック図である。
【符号の説明】
【００５４】
２    ＩＤＬ定義
２１    構造体Ｓ１定義
２２    構造体Ｓ２定義
５    ＩＤＬコンパイラ
５１    ＩＤＬ定義解析装置
５２    ＩＤＬ定義解析情報
５３    ドメイン共有情報解析装置
５４    ドメイン共有情報解析情報
５５    ドメイン用コード生成装置
６    ドメイン共有情報
６１    ドメインＭ共有情報
６２    ドメインＮ共有情報
７    ドメイン用Ｐｕｂｌｉｓｈｅｒコード
７１    ドメインＭ用Ｐｕｂｌｉｓｈｅｒコード
７２    ドメインＮ用Ｐｕｂｌｉｓｈｅｒコード
８    ドメイン用Ｓｕｂｓｃｒｉｂｅｒコード
８１    ドメインＭ用Ｓｕｂｓｃｒｉｂｅｒコード
８２    ドメインＮ用Ｓｕｂｓｃｒｉｂｅｒコード
２００〜２０４、３００〜３０４、４００〜４１０    ステップ
【図１】
2008146383.tif 000003
【図２】
2008146383.tif 000004
【図３】
2008146383.tif 000005
【図４】
2008146383.tif 000006
【図５】
2008146383.tif 000007
【図６】
2008146383.tif 000008
【図７】
2008146383.tif 000009
【図８】
2008146383.tif 000010
【図９】
2008146383.tif 000011
【図１０】
2008146383.tif 000012