(57)【要約】【課題】関数登録設定ファイルを作成することなく、単に部品を結合して製品を製造できるようにする。【解決手段】宣言文読み取り工程で、宣言文が登録ポイントの宣言文であれば該登録ポイントを登録ポイント一覧に記録し、宣言文がオブジェクト登録の宣言文であれば登録情報を登録情報一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返し、オブジェクト登録工程で、登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、登録ポイントに登録可能なオブジェクトを登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返し、コード生成工程で、登録ポイントとオブジェクトとの結合コードを生成する。【選択図】  図３
2006171898.tif 000002
【特許請求の範囲】
【請求項１】
ソースコード中のコメントあるいは別の関連文書でオブジェクトの登録を宣言して、その宣言文をオブジェクト結合ツールで読み取ってオブジェクトを登録することを特徴とするオブジェクト静的結合方法。
【請求項２】
宣言文が登録ポイントの宣言文であれば登録ポイント名から登録ポイントを検索し、宣言文がオブジェクト登録の宣言文であれば登録ポイントに登録可能なオブジェクトを登録し、登録ポイントとオブジェクトとの結合コードを生成することを、全てのソースファイルの全てのソースコードに対して繰り返すことを特徴とする請求項１記載のオブジェクト静的結合方法。
【請求項３】
宣言文が登録ポイントの宣言文であれば該登録ポイントを登録ポイント一覧に記録し、宣言文がオブジェクト登録の宣言文であれば登録情報を登録情報一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返す宣言文読み取り工程と、
登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、登録ポイントに登録可能なオブジェクトを登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返すオブジェクト登録工程と、
登録ポイントとオブジェクトとの結合コードを生成するコード生成工程と
を含むことを特徴とする請求項１記載のオブジェクト静的結合方法。
【請求項４】
宣言文であるかどうかを判定し、宣言文であれば、登録ポイントの宣言文であるかどうかを判定し、登録ポイントの宣言文であれば、登録ポイントを登録ポイント一覧に記録し、登録ポイントの宣言文でなければ、オブジェクト登録の宣言文であるかどうかを判定し、オブジェクト登録の宣言文であれば、登録情報を登録情報一覧に記録し、オブジェクト登録の宣言文でなければ、エラー情報をエラー一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返す宣言文読み取り工程と、
登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、対応する登録ポイントがあるかどうかを判定し、対応する登録ポイントがなければ、エラー情報をエラー一覧に記録し、対応する登録ポイントがあれば、オブジェクトが登録可能かどうかを判定し、オブジェクトが登録可能でなければ、エラー情報をエラー一覧に記録し、オブジェクトが登録可能であれば、オブジェクトを登録ポイントに登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返すオブジェクト登録工程と、
エラーコードを生成し、登録ポイントとオブジェクトとの結合コードを生成するコード生成工程と
を含むことを特徴とする請求項１記載のオブジェクト静的結合方法。
【請求項５】
前記登録ポイントの宣言文が、登録ポイントを識別するためのユニークな名前を指定する登録ポイント名と、その登録ポイントに対して、複数のオブジェクトが登録可能であるか、および、その順序を指定する登録ポイントのタイプと、プログラミング言語でサポートされる任意の型を指定できるオブジェクトの型情報とを含むことを特徴とする請求項２ないし請求項４のいずれかに記載のオブジェクト静的結合方法。
【請求項６】
前記オブジェクト登録の宣言文が、登録先の登録ポイント名と、登録するオブジェクトの名前を指定するオブジェクト名と、登録するオブジェクトの型を指定するオブジェクト型の情報とを含むことを特徴とする請求項２ないし請求項４のいずれかに記載のオブジェクト静的結合方法。
【請求項７】
ソースコード中のコメントあるいは別の関連文書でオブジェクトの登録を宣言して、その宣言文を読み取ってオブジェクトを登録することを特徴とするオブジェクト結合ツール。
【請求項８】
宣言文が登録ポイントの宣言文であれば登録ポイント名から登録ポイントを検索し、宣言文がオブジェクト登録の宣言文であれば登録ポイントに登録可能なオブジェクトを登録し、登録ポイントとオブジェクトとの結合コードを生成することを、全てのソースファイルの全てのソースコードに対して繰り返すことを特徴とする請求項７記載のオブジェクト結合ツール。
【請求項９】
宣言文が登録ポイントの宣言文であれば該登録ポイントを登録ポイント一覧に記録し、宣言文がオブジェクト登録の宣言文であれば登録情報を登録情報一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返す宣言文読み取り手段と、
登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、登録ポイントに登録可能なオブジェクトを登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返すオブジェクト登録手段と、
登録ポイントとオブジェクトとの結合コードを生成するコード生成手段と
を含むことを特徴とする請求項７記載のオブジェクト結合ツール。
【請求項１０】
宣言文であるかどうかを判定し、宣言文であれば、登録ポイントの宣言文であるかどうかを判定し、登録ポイントの宣言文であれば、登録ポイントを登録ポイント一覧に記録し、登録ポイントの宣言文でなければ、オブジェクト登録の宣言文であるかどうかを判定し、オブジェクト登録の宣言文であれば、登録情報を登録情報一覧に記録し、オブジェクト登録の宣言文でなければ、エラー情報をエラー一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返す宣言文読み取り手段と、
登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、対応する登録ポイントがあるかどうかを判定し、対応する登録ポイントがなければ、エラー情報をエラー一覧に記録し、対応する登録ポイントがあれば、オブジェクトが登録可能かどうかを判定し、オブジェクトが登録可能でなければ、エラー情報をエラー一覧に記録し、オブジェクトが登録可能であれば、オブジェクトを登録ポイントに登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返すオブジェクト登録手段と、
エラーコードを生成し、登録ポイントとオブジェクトとの結合コードを生成するコード生成手段と
を含むことを特徴とする請求項７記載のオブジェクト結合ツール。
【請求項１１】
前記登録ポイントの宣言文が、登録ポイントを識別するためのユニークな名前を指定する登録ポイント名と、その登録ポイントに対して、複数のオブジェクトが登録可能であるか、および、その順序を指定する登録ポイントのタイプと、プログラミング言語でサポートされる任意の型を指定できるオブジェクトの型情報とを含むことを特徴とする請求項８ないし請求項１０のいずれかに記載のオブジェクト結合ツール。
【請求項１２】
前記オブジェクト登録の宣言文が、登録先の登録ポイント名と、登録するオブジェクトの名前を指定するオブジェクト名と、登録するオブジェクトの型を指定するオブジェクト型の情報とを含むことを特徴とする請求項８ないし請求項１０のいずれかに記載のオブジェクト結合ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はオブジェクト静的結合方法およびオブジェクト結合ツールに関し、詳しくはオブジェクトの静的な結合を行うオブジェクト静的結合方法およびオブジェクト結合ツールに関する。なお、本願明細書においては、「オブジェクト」という用語は、実行形式のオブジェクトファイルだけを指すものではなく、アドレスによって指定できるものであればどのようなものでもよく、ソフトウェア部品，インターフェースプログラム（関数），変数等の静的結合の対象となる目的物一般を含むものである。
【背景技術】
【０００２】
近年、高性能マイクロプロセッサの出現などのエレクトロニクス技術の進歩を背景として、機械技術と電子技術とが結びついたメカトロニクス技術の進歩が著しい。メカトロニクスの進歩の一部として、自動車等の車両にも多くのコンピュータシステムが採用されてきている。
【０００３】
このような車載用のコンピュータシステムは、電子制御装置（以下、ＥＣＵ（Electronic
Control Unit）という）として実現されており、ＥＣＵが組み込み型のマイクロコンピュータ（以下、マイコンと略記する）を備えている。したがって、車両制御プログラムの開発においては、マイコン上で動作するソフトウェアを十分な品質で如何に簡単に作成するかが問題となっている。
【０００４】
コンピュータシステムのソフトウェアは、作成簡略化および再利用化といった観点から、プラットフォームと、アプリケーションプログラム（以下、単にアプリケーションという）とで構成されるのが一般的である。さらに、アプリケーションも機能ブロックに分けて、それらが互いにインタフェースで結合されるように構成される。これは、所定機能を実現するアプリケーションとハードウェアとの間に介在するプラットフォームを設けることによって、アプリケーション作成にあたってハードウェアの相違を吸収できるためである。なお、ここでいうプラットフォームは、アプリケーションに対する基本ソフトウェア（ＯＳ；Operating System）などをいうが、さらに、アプリケーションやハードウェアとの連携を図るインターフェースプログラムを含む。また、インターフェースプログラムは、例えばＡＰＩ（Application Programming Interface）と呼ばれる関数群などだけを指すのでなく、呼び出し可能な関数の型や、参照可能なオブジェクトの型定義とそれらの実体も含む。
【０００５】
このため、プラットフォーム上で動作するアプリケーションを作成するにあたっては、プラットフォームの一部であるインターフェースプログラムを、アプリケーションに合わせて作成する必要があった。
【０００６】
アプリケーションのソースコードはソフトウェア部品（以下、単に部品という）として、複数のソフトウェア製品（以下、単に製品という）で使用されるのが普通である。そして、製品で使用する部品の組み合わせは、例えば車両の車種，グレード，仕向地等に対応して異なり、一意には決まらないので、各製品毎に結合する部品の設定が必要である。
【０００７】
例えば、プラットフォームから呼んでもらうインターフェースプログラム（関数）は、部品であるソースファイルのソースコードとは独立したコンパイラ（オブジェクト結合ツールともいう）を使って登録している（例えば、特許文献１参照）。
【０００８】
例えば、図６の例を用いて説明すると、アプリケーション開発者は、各部品Ａ，Ｂ，Ｃ，Ｄを作成する。製品Ｘの担当者は、製品Ｘを構成する部品Ａ，Ｂ，Ｃ，Ｄを取得し、かつ製品Ｘの関数登録設定ファイルＦＸを作成して、コンパイラ１００により部品Ａ，Ｂ，Ｃ，Ｄを結合して製品Ｘを製造する。同様に、製品Ｙの担当者は、製品Ｙを構成する部品Ａ，Ｄを取得し、かつ製品Ｙの関数登録設定ファイルＦＹを作成して、コンパイラ１００により部品Ａ，Ｄを結合して製品Ｙを製造する。また、同様に、製品Ｚの担当者は、製品Ｚを構成する部品Ｂ，Ｃを取得し、かつ製品Ｚの関数登録設定ファイルＦＺを作成して、コンパイラ１００により部品Ｂ，Ｃを結合して製品Ｚを製造する。
【０００９】
このため、従来の技術では、部品を結合して製品を製造するためには、各製品担当者が、その部品を結合するための関数登録設定ファイルを作成して、部品とその関数登録設定ファイルを用いて部品を結合して製品を製造しなければならなかった。
【００１０】
通常、アプリケーション開発者と製品担当者とは別の人であるから、製品担当者は、どのような設定が必要なのかをアプリケーション開発者に確認するか、あるいは結合方法が書かれた文書を参照するかした上で、関数登録設定ファイルを作成しなければならなかった。
【特許文献１】特開２００２−２２９７９１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述した従来の技術では、部品を結合して製品を製造するためには、各製品担当者が、その部品を結合して製品を製造するための関数登録設定ファイルを作成して、部品を関数登録設定ファイルを用いて結合しなければならなかったので、部品を結合して製品を製造するたびに、関数登録設定ファイルを作成するという作業が発生するという問題点があった。
【００１２】
また、通常、アプリケーション開発者と製品担当者とは別の人であるので、製品担当者は、どのような設定が必要なのかをアプリケーション開発者に確認するか、部品の結合方法が書かれた文書を参照するかした上で関数登録設定ファイルを作成しなければならなかったので、設定ミスが発生しやすく、製品の不具合につながるという問題点があった。
【００１３】
さらに、従来の技術では、インターフェースプログラムの呼び出し側は、呼び出される側のアプリケーションに依存してはならない（例えば、プラットフォームはアプリケーションに依存していない：任意のアプリケーションが登録できる）が、このような依存関係はソフトウェアの再利用性の向上に有効である一方、そうした個所が増えると、登録の手間がかかって、管理が煩雑になるという問題点があった。例えば、イグニッションスイッチがオンになったときに、呼び出される側のアプリケーションには、エンジン始動、車室内通電等の多くのアプリケーションがあるが、イグニッションスイッチのオン／オフを検出するプログラムが、イグニッションスイッチがオンになったときに起動するアプリケーションを全て登録しておくことは、そうしたアプリケーションが増えるたびに登録しなければならないので、管理が煩雑になる。したがって、イグニッションスイッチがオンになったときに起動してもらいたいと考えるアプリケーションが、イグニッションスイッチのオンでイグニッションスイッチを検出するプログラムから呼び出してもらいたい旨を登録することにより呼び出してもらえるようにすれば、管理の煩雑さが軽減される。なぜならば、呼び出される側のアプリケーションがイグニッションスイッチがオンのときに呼び出されるべきであることを知っているからである。
【００１４】
そこで、本発明の課題は、部品を結合して製品を製造する際に関数登録設定ファイルを不要にしたオブジェクト静的結合方法およびオブジェクト結合ツールを提供することにある。
【００１５】
また、本発明の他の課題は、呼び出される側のアプリケーションが呼び出す側のオブジェクトを指定できるようにしたオブジェクト静的結合方法およびオブジェクト結合ツールを提供することにある。
【課題を解決するための手段および発明の効果】
【００１６】
請求項１記載のオブジェクト静的結合方法は、ソースコード中のコメントあるいは別の関連文書でオブジェクトの登録を宣言して、その宣言文をオブジェクト結合ツールで読み取ってオブジェクトを登録することを特徴とする。例えば、Ｊａｖａ（登録商標）などの、主に非組み込みコンピュータを対象としている言語の場合、ソースコード中に登録処理を記述して、実行時にインターフェースプログラムを登録することが可能である(ＲＡＭ（Random Access Memory）領域を使用)。しかし、組み込みコンピュータでは、静的に決まることはＲＯＭ（Read Only Memory）に記憶しなければならないので、この手法は使用できない。代わりに、請求項１記載のオブジェクト静的結合方法では、ソースコード中のコメント、あるいは別の関連文書で、登録を宣言して、その宣言文をオブジェクト結合ツールで読み取ってオブジェクトを登録する。
【００１７】
請求項２記載のオブジェクト静的結合方法は、請求項１記載のオブジェクト静的結合方法において、宣言文が登録ポイントの宣言文であれば登録ポイント名から登録ポイントを検索し、宣言文がオブジェクト登録の宣言文であれば登録ポイントに登録可能なオブジェクトを登録し、登録ポイントとオブジェクトとの結合コードを生成することを、全てのソースファイルの全てのソースコードに対して繰り返すことを特徴とする。請求項２記載のオブジェクト静的結合方法によれば、宣言文が登録ポイントの宣言文であれば登録ポイント名から登録ポイントを検索し、宣言文がオブジェクト登録の宣言文であれば登録ポイントに登録可能なオブジェクトを登録し、登録ポイントとオブジェクトとの結合コードを生成することを、全てのソースファイルの全てのソースコードに対して繰り返すことにより、部品を結合して製品を製造する際に関数登録設定ファイルを不要にするという効果がある。
【００１８】
請求項３記載のオブジェクト静的結合方法は、請求項１記載のオブジェクト静的結合方法において、宣言文が登録ポイントの宣言文であれば該登録ポイントを登録ポイント一覧に記録し、宣言文がオブジェクト登録の宣言文であれば登録情報を登録情報一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返す宣言文読み取り工程と、登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、登録ポイントに登録可能なオブジェクトを登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返すオブジェクト登録工程と、登録ポイントとオブジェクトとの結合コードを生成するコード生成工程とを含むことを特徴とする。請求項３記載のオブジェクト静的結合方法によれば、登録ポイントの宣言文があれば登録ポイントを登録ポイント一覧に記録し、オブジェクト登録の宣言文があれば登録情報を登録情報一覧に記録することにより、部品を結合して製品を製造する際に関数登録設定ファイルを不要にするという効果がある。
【００１９】
請求項４記載のオブジェクト静的結合方法は、請求項１記載のオブジェクト静的結合方法において、宣言文であるかどうかを判定し、宣言文であれば、登録ポイントの宣言文であるかどうかを判定し、登録ポイントの宣言文であれば、登録ポイントを登録ポイント一覧に記録し、登録ポイントの宣言文でなければ、オブジェクト登録の宣言文であるかどうかを判定し、オブジェクト登録の宣言文であれば、登録情報を登録情報一覧に記録し、オブジェクト登録の宣言文でなければ、エラー情報をエラー一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返す宣言文読み取り工程と、登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、対応する登録ポイントがあるかどうかを判定し、対応する登録ポイントがなければ、エラー情報をエラー一覧に記録し、対応する登録ポイントがあれば、オブジェクトが登録可能かどうかを判定し、オブジェクトが登録可能でなければ、エラー情報をエラー一覧に記録し、オブジェクトが登録可能であれば、オブジェクトを登録ポイントに登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返すオブジェクト登録工程と、エラーコードを生成し、登録ポイントとオブジェクトとの結合コードを生成するコード生成工程とを含むことを特徴とする。請求項４記載のオブジェクト静的結合方法によれば、登録ポイントの宣言文があれば登録ポイントを登録ポイント一覧に記録し、オブジェクト登録の宣言文があれば登録情報を登録情報一覧に記録し、登録ポイントの宣言文でもオブジェクト登録の宣言文でもなければエラー情報を記録することにより、部品を結合して製品を製造する際に関数登録設定ファイルを不要にするとともに宣言文のエラー検出を行うことができるという効果がある。また、オブジェクトが登録可能でない場合にもエラー検出を行うことができるという効果がある。
【００２０】
請求項５記載のオブジェクト静的結合方法は、請求項２ないし請求項４のいずれかに記載のオブジェクト静的結合方法において、前記登録ポイントの宣言文が、登録ポイントを識別するためのユニークな名前を指定する登録ポイント名と、その登録ポイントに対して、複数のオブジェクトが登録可能であるか、および、その順序を指定する登録ポイントのタイプと、プログラミング言語でサポートされる任意の型を指定できるオブジェクトの型情報とを含むことを特徴とする。請求項５記載のオブジェクト静的結合方法によれば、登録ポイントをその性質に合わせて指定することができるという効果がある。
【００２１】
請求項６記載のオブジェクト静的結合方法は、請求項２ないし請求項４のいずれかに記載のオブジェクト静的結合方法において、前記オブジェクト登録の宣言文が、登録先の登録ポイント名と、登録するオブジェクトの名前を指定するオブジェクト名と、登録するオブジェクトの型を指定するオブジェクト型の情報とを含むことを特徴とする。請求項６記載のオブジェクト静的結合方法によれば、登録するオブジェクトを名前および型で指定することができる。
【００２２】
請求項７記載のオブジェクト結合ツールは、ソースコード中のコメントあるいは別の関連文書でオブジェクトの登録を宣言して、その宣言文を読み取ってオブジェクトを登録することを特徴とする。例えば、Ｊａｖａ（登録商標）などの、主に非組み込みコンピュータを対象としている言語の場合、ソースコード中に登録処理を記述して、実行時にインターフェースプログラムを登録している(ＲＡＭ領域を使用)。しかし、組み込みコンピュータでは、静的に決まることはＲＯＭに記憶しなければならないので、この手法は使用できない。代わりに、請求項７記載のオブジェクト結合ツールによれは、ソースコード中のコメント、あるいは別の関連文書で、登録を宣言して、その宣言文を読み取ってオブジェクトを登録することができる。
【００２３】
請求項８記載のオブジェクト結合ツールは、請求項７記載のオブジェクト結合ツールにおいて、宣言文が登録ポイントの宣言文であれば登録ポイント名から登録ポイントを検索し、宣言文がオブジェクト登録の宣言文であれば登録ポイントに登録可能なオブジェクトを登録し、登録ポイントとオブジェクトとの結合コードを生成することを、全てのソースファイルの全てのソースコードに対して繰り返すことを特徴とする。請求項８記載のオブジェクト結合ツールによれば、宣言文が登録ポイントの宣言文であれば登録ポイント名から登録ポイントを検索し、宣言文がオブジェクト登録の宣言文であれば登録ポイントに登録可能なオブジェクトを登録し、登録ポイントとオブジェクトとの結合コードを生成することを、全てのソースファイルの全てのソースコードに対して繰り返すことにより、部品を結合して製品を製造する際に関数登録設定ファイルを不要にするという効果がある。
【００２４】
請求項９記載のオブジェクト結合ツールは、請求項７記載のオブジェクト結合ツールにおいて、宣言文が登録ポイントの宣言文であれば該登録ポイントを登録ポイント一覧に記録し、宣言文がオブジェクト登録の宣言文であれば登録情報を登録情報一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返す宣言文読み取り手段と、登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、登録ポイントに登録可能なオブジェクトを登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返すオブジェクト登録手段と、、登録ポイントとオブジェクトとの結合コードを生成するコード生成手段とを含むことを特徴とする。請求項９記載のオブジェクト結合ツールによれば、登録ポイントの宣言文があれば登録ポイントを登録ポイント一覧に記録し、オブジェクト登録の宣言文があれば登録情報を登録情報一覧に記録することにより、部品を結合して製品を製造する際に関数登録設定ファイルを不要にするという効果がある。
【００２５】
請求項１０記載のオブジェクト結合ツールは、請求項７記載のオブジェクト結合ツールにおいて、宣言文であるかどうかを判定し、宣言文であれば、登録ポイントの宣言文であるかどうかを判定し、登録ポイントの宣言文であれば、登録ポイントを登録ポイント一覧に記録し、登録ポイントの宣言文でなければ、オブジェクト登録の宣言文であるかどうかを判定し、オブジェクト登録の宣言文であれば、登録情報を登録情報一覧に記録し、オブジェクト登録の宣言文でなければ、エラー情報をエラー一覧に記録することを、全てのソースファイルの全てのソースコードに対して繰り返す宣言文読み取り手段と、登録ポイント一覧に記録されている登録ポイント名から登録ポイントを検索し、対応する登録ポイントがあるかどうかを判定し、対応する登録ポイントがなければ、エラー情報をエラー一覧に記録し、対応する登録ポイントがあれば、オブジェクトが登録可能かどうかを判定し、オブジェクトが登録可能でなければ、エラー情報をエラー一覧に記録し、オブジェクトが登録可能であれば、オブジェクトを登録ポイントに登録することを、登録情報一覧に記録されている全ての登録情報に対して繰り返すオブジェクト登録手段と、エラーコードを生成し、登録ポイントとオブジェクトとの結合コードを生成するコード生成手段とを含むことを特徴とする。請求項１０記載のオブジェクト結合ツールによれば、登録ポイントの宣言文があれば登録ポイントを登録ポイント一覧に記録し、オブジェクト登録の宣言文があれば登録情報を登録情報一覧に記録し、登録ポイントの宣言文でもオブジェクト登録の宣言文でもなければエラー情報を記録することにより、部品を結合して製品を製造する際に関数登録設定ファイルを不要にするとともに宣言文のエラー検出を行うことができるという効果がある。また、オブジェクトが登録可能でない場合にもエラー検出を行うことができるという効果がある。
【００２６】
請求項１１記載のオブジェクト結合ツールは、請求項８ないし請求項１０のいずれかに記載のオブジェクト結合ツールにおいて、前記登録ポイントの宣言文が、登録ポイントを識別するためのユニークな名前を指定する登録ポイント名と、その登録ポイントに対して、複数のオブジェクトが登録可能であるか、および、その順序を指定する登録ポイントのタイプと、プログラミング言語でサポートされる任意の型を指定できるオブジェクトの型情報とを含むことを特徴とする。請求項１１記載のオブジェクト結合ツールによれば、登録ポイントをその性質に合わせて指定することができるという効果がある。
【００２７】
請求項１２記載のオブジェクト結合ツールは、請求項８ないし請求項１０のいずれかに記載のオブジェクト結合ツールにおいて、前記オブジェクト登録の宣言文が、登録先の登録ポイント名と、登録するオブジェクトの名前を指定するオブジェクト名と、登録するオブジェクトの型を指定するオブジェクト型の情報とを含むことを特徴とする。請求項１２記載のオブジェクト結合ツールによれば、登録するオブジェクトを名前および型で指定することができる。
【発明を実施するための最良の形態】
【００２８】
ソースコード中のコメントあるいは別の関連文書でオブジェクトの登録を宣言して、その宣言文をオブジェクト結合ツールで読み取ってオブジェクトを登録する。
【００２９】
以下、本発明の実施例について図面を参照しながら詳細に説明する。
【実施例１】
【００３０】
図１は、本発明の実施例１に係るオブジェクト静的結合方法の概要を示すブロック図である。本実施例１に係るオブジェクト静的結合方法は、アプリケーション開発者が開発した宣言文付きの部品Ａ，Ｂ，Ｃ，Ｄと、製品Ｘ，Ｙ，Ｚの各担当者が部品を入力して動作させるオブジェクト結合ツール１０と、オブジェクト結合ツール１０内で自動生成される結合コードＣＸ，ＣＹ，ＣＺと、オブジェクト結合ツール１０によって出力される製品Ｘ，Ｙ，Ｚとから構成されている。なお、オブジェクト結合ツール１０は、部品Ａ，Ｂ，Ｃ，Ｄを入力して結合コードＣＸ，ＣＹ，ＣＺを生成するプレコンパイラ（図示せず）と、部品Ａ，Ｂ，Ｃ，Ｄおよび結合コードＣＸ，ＣＹ，ＣＺを入力してコンパイルおよびリンクを行うことにより製品Ｘ，Ｙ，Ｚを出力するコンパイラ（図示せず）とから構成されている。
【００３１】
図２は、本実施例１に係るオブジェクト静的結合方法の主処理を示すフローチャートである。この主処理は、宣言文読み取り工程Ｓ１と、オブジェクト登録工程Ｓ２と、コード生成工程Ｓ３とから構成されている。
【００３２】
図３は、宣言文読み取り工程Ｓ１およびオブジェクト登録工程Ｓ２のより詳細なステップを示すフローチャートである。宣言文読み取り工程Ｓ１は、宣言文判定ステップＳ１０３，登録ポイントの宣言文判定ステップＳ１０４，登録ポイント記録ステップＳ１０５，登録宣言文判定ステップＳ１０６，登録情報記録ステップＳ１０７，およびエラー情報記録ステップＳ１０８を、全てのソースファイルの全てのソースコードに対して繰り返す（ステップＳ１０１，Ｓ１０２）。また、オブジェクト登録工程Ｓ２は、登録ポイント検索ステップＳ２０２，対応登録ポイント有無判定ステップＳ２０３，登録可否判定ステップＳ２０４，オブジェクト登録ステップＳ２０５，およびエラー情報記録ステップＳ２０６を、全ての登録情報に対して繰り返す（ステップＳ２０１）。
【００３３】
図４は、コード生成工程Ｓ３のより詳細なステップを示すフローチャートである。コード生成工程Ｓ３は、エラーコード生成ステップＳ３０１，登録オブジェクト外部宣言文生成ステップＳ３０２，および結合コード生成ステップＳ３０３を実行する。
【００３４】
図５（ａ）および図５（ｂ）は、登録ポイントの宣言文およびオブジェクト登録の宣言文の一例をそれぞれ示す図である。ここで、図５（ａ）および図５（ｂ）を参照して宣言文の仕様について説明する。
【００３５】
＜宣言文の仕様＞
宣言文は、特殊な文字列“／＊＠［”で始まり、“］＊／”で終わる(Ｃ言語のコメント文形式)。
【００３６】
宣言文は、「登録ポイントの宣言文」か「オブジェクト登録の宣言文」かのどちらかである。
【００３７】
「登録ポイントの宣言文」には、下記の書式に示すように、登録ポイント名，登録ポイントのタイプ，および登録できるオブジェクトの型情報が含まれる。
【００３８】
書式：  ／＊＠［ 登録ポイント名: 名前  タイプ: タイプ  型: オブジェクト型  (デフォルト:  デフォルトオブジェクト) ］＊／
【００３９】
ただし、下線部分は、指定値（変数）であることを示す（以下同様）。
【００４０】
名前には、登録ポイントを識別するためのユニークな名前を指定する。
【００４１】
タイプには、一つのオブジェクトだけを登録できる「シングル登録ポイント」と、複数のオブジェクトを順不同に登録できる「リスト型登録ポイント」と、複数のオブジェクトを指定したインデックスに登録できる「配列型登録ポイント」との３つのうちのいずれかを指定する。
【００４２】
オブジェクト型には、プログラミング言語（Ｃ言語）でサポートされる任意の型（ｉｎｔ型，構造体ポインタ型，関数ポインタ型など）を指定できる。
【００４３】
また、オプションとして、デフォルトオブジェクトを指定できる。デフォルトオブジェクトには、リスト型であればリストの終端を示すオブジェクト、配列型であれば空き領域を埋めるためのオブジェクトを指定する。指定しない場合はＮＵＬＬが使われる。
【００４４】
「オブジェクト登録の宣言文」には、下記の書式で示すように、登録先の登録ポイント名、オブジェクト名、オブジェクト型、(登録先が配列型であればインデックス)の情報が含まれる。
【００４５】
書式：  ／＊＠［ 登録オブジェクト:  オブジェクト名  型: オブジェクト型  登録ポイント:  登録ポイント名 ］＊／
【００４６】
オブジェクト名には、登録するオブジェクトの名前を指定する（ソースコード中に実体が宣言されていなければならない）。
【００４７】
オブジェクト型には、登録するオブジェクトの型を指定する。
【００４８】
登録ポイント名には、オブジェクトを登録する登録ポイントを指定する。
【００４９】
なお、コードを生成するためには、以下の条件を満たす必要がある。
【００５０】
（１）  同じ登録ポイント名の宣言文が複数あってはならない。
【００５１】
（２）  書式で指定した登録ポイント名に一致する登録ポイントの宣言文がなければならない。
【００５２】
（３）  登録オブジェクトの型と登録ポイントの型とは一致していなければならない。
【００５３】
（４）  登録ポイントが「シングル登録ポイント」であれば、その登録ポイントに対するオブジェクト登録の宣言文が複数あってはならない。
【００５４】
（５）  登録ポイントが「配列型登録ポイント」であれば、その登録ポイントの同じインデックスに対して、複数のオブジェクト登録の宣言文があってはならない。
【００５５】
これらのいずれかを検出した場合は、エラーコードを出力する。生成コードをコンパイルすると、エラーになる。
【００５６】
＜登録ポイントの宣言文の例＞
図５（ａ）は、イグニッションスイッチＩｇＳｗがＯＮになった時のイベントを通知するための登録ポイントの宣言文を例示する。
【００５７】
登録ポイント名は、IgOnEventListenerで、登録できるオブジェクトの型は、SWEventListener型のポインタである。ここでは省略されているが、SWEventListener型は通知する時に呼び出すオブジェクトへのポインタと関数ポインタとを要素として持つ構造体型である。
【００５８】
図５（ｂ）は、イグニッションスイッチＩｇＳｗがＯＮになった時のイベントを通知してもらうアプリケーションのソースコードである。
【００５９】
まず、イグニッションスイッチＩｇＳｗがＯＮになったイベント時の関数（onSWEvent）を定義して、その関数をイグニッションＯＮイベントで呼ばれるようにSWEventListenerオブジェクト（APP_SWListener）を定義して、その登録を宣言している。
【００６０】
図５（ｃ）は、図５（ａ）および図５（ｂ）の２つの宣言文を含むソースコード一式から生成されたコードのうち、図５（ａ）および図５（ｂ）の宣言文に関する部分を抜粋したものである。
【００６１】
まず、オブジェクト登録の宣言文から、この生成コード中でオブジェクトを扱えるように外部宣言を生成している（１行目）。ここで、ポインタ型は自動的に非ポインタ型の外部宣言に変換される。
【００６２】
次に、登録ポイントの宣言文から、リスト用の配列IgOnEventListener[]を定義（５行目）して、その配列の中にオブジェクトAPP_SWListenerを登録している（６行目）。
【００６３】
次に、このように構成された実施例１に係るオブジェクト静的結合方法の処理について、図１ないし図５を参照しながら説明する。
【００６４】
まず、宣言文読み取り工程Ｓ１では、図３に示すように、宣言文であるかどうかを判定し（ステップＳ１０３）、宣言文であれば、登録ポイントの宣言文であるかどうかを判定する（ステップＳ１０４）。登録ポイントの宣言文であれば、登録ポイント（登録ポイント名，種類，型）を登録ポイント一覧Ｍ１に記録し（ステップＳ１０５）、登録ポイントの宣言文でなければ、オブジェクト登録の宣言文であるかどうかを判定する（ステップＳ１０６）。オブジェクト登録の宣言文であれば、登録情報（オブジェクト名，型，登録ポイント名）を登録情報一覧Ｍ２に記録し（ステップＳ１０７）、オブジェクト登録の宣言文でなければ、エラー情報をエラー一覧Ｍ３に記録する（ステップＳ１０８）。これらステップＳ１０３〜Ｓ１０８の処理を、全てのソースファイルの全てのソースコードに対して繰り返す（ステップＳ１０１およびＳ１０２）。
【００６５】
次に、オブジェクト登録工程Ｓ２では、図３に示すように、登録ポイント一覧Ｍ１に記録されている登録ポイント名から登録ポイントを検索し（ステップＳ２０２）、対応する登録ポイントがあるかどうかを判定する（ステップＳ２０３）。対応する登録ポイントがなければ、エラー情報をエラー一覧Ｍ３に記録し（ステップＳ２０６）、対応する登録ポイントがあれば、オブジェクトが登録可能かどうかを判定する（ステップＳ２０４）。オブジェクトが登録可能でなければ、エラー情報をエラー一覧Ｍ３に記録し（ステップＳ２０６）、オブジェクトが登録可能であれば、オブジェクトを登録ポイントに登録する（ステップＳ２０５）。これらステップＳ２０２〜Ｓ２０６の処理を、登録情報一覧Ｍ２に記録されている全ての登録情報に対して繰り返す（ステップＳ２０１）。
【００６６】
続いて、コード生成工程Ｓ３では、図４に示すように、エラーコードを生成し（ステップＳ３０１）、登録オブジェクトの外部宣言文を生成し（ステップＳ３０２）、登録ポイントをオブジェクトとの結合コードを生成する（ステップＳ３０３）。
【００６７】
この後、オブジェクト結合ツール１０に含まれるコンパイラは、結合コードＣＸに基づいて部品Ａ，Ｂ，Ｃ，Ｄを結合して製品Ｘを製造する。同様に、オブジェクト結合ツール１０に含まれるコンパイラは、結合コードＣＹに基づいて部品Ａ，Ｄを結合して製品Ｙを製造する。また、同様に、オブジェクト結合ツール１０に含まれるコンパイラは、結合コードＣＺに基づいて部品Ｂ，Ｃを結合して製品Ｚを製造する。
【００６８】
本実施例１に係るオブジェクト静的結合方法では、製品担当者は、部品を結合して製品を製造するための関数登録設定ファイルを作成する必要がなく、単に部品をそのまま結合して製品を製造するだけでよい。なぜならば、アプリケーション開発者が、部品の結合方法を部品であるソースコード中に記述していて、そこから結合コードを自動で生成するからである。
【００６９】
本実施例１に係るオブジェクト静的結合方法によれば、登録ポイントの宣言文およびオブジェクト登録の宣言文をソースファイルにコーディングしてしまえば、部品が自動的に結合されるので、製品毎の部品の結合作業が減り、全体として大きな工数削減になる。また、部品に一番詳しいアプリケーション開発者が結合方法を定義して、それが確実に各製品に反映されるので、不具合が生じるおそれが減少する。よって、本実施例１に係るオブジェクト静的結合方法は、部品を広く配布するためには、必要不可欠な技術である。
【００７０】
ところで、本実施例１では、ソースコード中のコメントでオブジェクトの登録を宣言して、その宣言文をオブジェクト結合ツールで読み取ってオブジェクトを登録するようにしたが、オブジェクトの登録をソースコードとは別の関連文書で宣言するようにしてもよい。このようにしても、ソースファイルと同時に関連文書を入力することによって、本実施例１と同様の作用および効果が得られることはいうまでもない。
【００７１】
以上、本発明の実施例を説明したが、これはあくまでも例示にすぎず、本発明はこれに限定されるものではなく、特許請求の範囲の趣旨を逸脱しない限りにおいて、当業者の知識に基づく種々の変更が可能である。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施例１に係るオブジェクト静的結合方法の構成を示すブロック図。
【図２】本実施例１に係るオブジェクト静的結合方法の主処理を示すフローチャート。
【図３】図２中の宣言文読み取り工程およびオブジェクト登録工程のより詳細なステップを示すフローチャート。
【図４】図２中のコード生成工程のより詳細なステップを示すフローチャート。
【図５】（ａ）および（ｂ）は図１中の宣言文付きの部品の一例を示す図、（ｃ）は（ａ）および（ｂ）の宣言文から生成されたコードの一例を示す図。
【図６】従来のオブジェクト静的結合方法を示すブロック図。
【符号の説明】
【００７３】
１０  オブジェクト結合ツール
Ａ，Ｂ，Ｃ，Ｄ  宣言文付きの部品
ＣＸ，ＣＹ，ＣＺ  結合コード
Ｍ１  登録ポイント一覧
Ｍ２  登録情報一覧
Ｍ３  エラー一覧
Ｓ１  宣言文読み取り工程
Ｓ２  オブジェクト登録工程
Ｓ３  コード生成工程
Ｓ１０３  宣言文判定ステップ
Ｓ１０４  登録ポイントの宣言文判定ステップ
Ｓ１０５  登録ポイント記録ステップ
Ｓ１０６  登録宣言文判定ステップ
Ｓ１０７  登録情報記録ステップ
Ｓ１０８  エラー情報記録ステップ
Ｓ２０２  登録ポイント検索ステップ
Ｓ２０３  対応登録ポイント有無判定ステップ
Ｓ２０４  登録可否判定ステップ
Ｓ２０５  オブジェクト登録ステップ
Ｓ２０６  エラー情報記録ステップ
Ｓ３０１  エラーコード生成ステップ
Ｓ３０２  登録オブジェクト外部宣言文生成ステップ
Ｓ３０３  結合コード生成ステップ
Ｘ，Ｙ，Ｚ  製品
【図１】
2006171898.tif 000003
【図２】
2006171898.tif 000004
【図３】
2006171898.tif 000005
【図４】
2006171898.tif 000006
【図５】
2006171898.tif 000007
【図６】
2006171898.tif 000008