JP2006048236A - Idl compilation system, idl compilation method and idl compiler - Google Patents

Idl compilation system, idl compilation method and idl compiler Download PDF

Info

Publication number
JP2006048236A
JP2006048236A JP2004225847A JP2004225847A JP2006048236A JP 2006048236 A JP2006048236 A JP 2006048236A JP 2004225847 A JP2004225847 A JP 2004225847A JP 2004225847 A JP2004225847 A JP 2004225847A JP 2006048236 A JP2006048236 A JP 2006048236A
Authority
JP
Japan
Prior art keywords
component
definition
interface
idl
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004225847A
Other languages
Japanese (ja)
Other versions
JP4371000B2 (en
Inventor
Hirotatsu Osaki
寛達 大崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2004225847A priority Critical patent/JP4371000B2/en
Publication of JP2006048236A publication Critical patent/JP2006048236A/en
Application granted granted Critical
Publication of JP4371000B2 publication Critical patent/JP4371000B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To automatically generate a light stub or skeleton whose components do not include any unnecessary function. <P>SOLUTION: An IDL definition analyzing part 51 analyzes inputted IDL definition 2, and generates IDL definition analytic information 52. Also, a component definition analyzing part 53 analyzes inputted component definition 6, and generates component definition analytic information 54. A component function analyzing part 55 analyzes a function which is used by each component based on the IDL definition analytic information 52 and the component definition analytic information 54, and generates component function analytic information 56 including the analytic result. A component code generating part 57 generates a code corresponding to the function which is used by each component based on the component analytic information 56, and generates a stub 7 for components or a skeleton 8 for components including the generated code. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、IDL定義データをコンパイルして、アプリケーションソフトウェアのコンポーネントで用いられるスタブやスケルトンを生成するIDLコンパイル装置、IDLコンパイル方法及びIDLコンパイラに関する。   The present invention relates to an IDL compiling device, an IDL compiling method, and an IDL compiler that compile IDL definition data and generate stubs and skeletons used in application software components.

Common Object Request Broker Architecture (CORBA)技術を利用したアプリケーションソフトウェアのソフトウェアコンポーネント(コンポーネント)で用いられるスタブやスケルトンを生成するために、Interface Definition Language (IDL)コンパイラが用いられる。図11は、IDLコンパイラの構成の一例を示すブロック図である。図11に示すように、IDLコンパイラ1101は、IDL定義解析部1111及びコード生成部1113を含む。IDLコンパイラ1101は、CORBA技術を利用したコンポーネント間通信で送受信されるデータのデータ型の定義であるIDL定義1102を入力し、コンポーネントで用いられるスタブ1103やスケルトン1104を生成する。   An Interface Definition Language (IDL) compiler is used to generate stubs and skeletons used in software components (components) of application software using Common Object Request Broker Architecture (CORBA) technology. FIG. 11 is a block diagram showing an example of the configuration of the IDL compiler. As shown in FIG. 11, the IDL compiler 1101 includes an IDL definition analysis unit 1111 and a code generation unit 1113. The IDL compiler 1101 inputs an IDL definition 1102 that is a data type definition of data transmitted and received by inter-component communication using the CORBA technology, and generates a stub 1103 and a skeleton 1104 used by the component.

IDL定義解析部1111は、入力したIDL定義1102を解析する。また、IDL定義解析部1111は、IDLコンパイラ1101の各構成部が使用可能なデータ形式にIDL定義1102を変換し、IDL定義解析情報912を生成する。コード生成部1113は、IDL定義解析情報912にもとづいて、クライアント機能をもつコンポーネントで用いられるスタブ1103を生成する。また、コード生成部1113は、IDL定義解析情報912にもとづいて、サーバ機能をもつコンポーネントで用いられるスケルトン1104を生成する。   The IDL definition analysis unit 1111 analyzes the input IDL definition 1102. The IDL definition analysis unit 1111 converts the IDL definition 1102 into a data format that can be used by each component of the IDL compiler 1101, and generates IDL definition analysis information 912. Based on the IDL definition analysis information 912, the code generation unit 1113 generates a stub 1103 used by a component having a client function. Also, the code generation unit 1113 generates a skeleton 1104 used by a component having a server function based on the IDL definition analysis information 912.

また、IDLコンパイラの例として、例えば、特許文献1には、インタフェース定義ファイルにもとづいて字句解析及び構文解析を行い、クライアントスタブやサーバスケルトン、ルーティングプログラムを生成するIDLコンパイラが記載されている。   As an example of an IDL compiler, for example, Patent Document 1 describes an IDL compiler that performs lexical analysis and syntax analysis based on an interface definition file to generate a client stub, a server skeleton, and a routing program.

特開平10−232780号公報(段落0017−0028、図2−5)JP-A-10-232780 (paragraphs 0017-0028, FIG. 2-5)

図11や特許文献1に記載されたIDLコンパイラは、大規模なアプリケーションソフトウェアのコンポーネントで使用できるように、一般に様々なコンポーネントの機能に対応した汎用的なスタブやスケルトンを生成する。そのため、IDLコンパイラが生成するスタブやスケルトンのファイルサイズが大きく、メモリを必要以上に使用してしまう。また、組み込み機器等に用いる場合にはコンポーネントの機能や構成を予め予測できるにもかかわらず、IDLコンパイラは、コンポーネントに不要な機能を多く含んだスタブやスケルトンを生成してしまう。   The IDL compiler described in FIG. 11 and Patent Document 1 generally generates general-purpose stubs and skeletons corresponding to the functions of various components so that they can be used as components of large-scale application software. Therefore, the file size of the stub and skeleton generated by the IDL compiler is large, and the memory is used more than necessary. In addition, when used in an embedded device or the like, the IDL compiler generates a stub or skeleton including many functions unnecessary for the component, although the function and configuration of the component can be predicted in advance.

必要な機能だけを含むスタブやスケルトンを生成するために、組み込みアプリケーションソフトウェアの開発者がコンポーネントで必要となる機能だけを抜き出したりIDL定義情報を分割して、個別にスタブやスケルトンを生成することが考えられる。しかし、コンポーネントで必要となる機能を抜き出したりIDL定義情報を分割したりする作業が必要となり、ソフトウェア開発者の作業負担が大きい。   In order to generate stubs and skeletons that include only the necessary functions, the developer of the embedded application software can extract only the functions that are required by the components or divide the IDL definition information and generate stubs or skeletons individually. Conceivable. However, it is necessary to extract functions necessary for components and to divide IDL definition information, which places a heavy burden on software developers.

そこで、本発明は、コンポーネントに不要な機能を含まない軽量なスタブやスケルトンを自動生成できるIDLコンパイル装置、IDLコンパイル方法及びIDLコンパイラを提供することを目的とする。   Therefore, an object of the present invention is to provide an IDL compiling device, an IDL compiling method, and an IDL compiler that can automatically generate a lightweight stub or skeleton that does not include unnecessary functions in a component.

本発明によるIDLコンパイル装置は、ソフトウェアで用いられるインタフェースの定義を示すインタフェース定義データ(例えば、IDL定義2)にもとづいて、スタブ又はスケルトンを生成するIDLコンパイル装置であって、ソフトウェアに含まれるコンポーネントで用いられる機能の定義を示すコンポーネント定義データ(例えば、コンポーネント定義6)を入力するコンポーネント定義入力手段(例えば、コンポーネント定義解析部53によって実現される)と、コンポーネント定義入力手段が入力したコンポーネント定義データにもとづいて、インタフェース定義データで定義されるインタフェースのうち、コンポーネントで用いられる機能に対応するインタフェースを抽出するインタフェース抽出手段(例えば、コンポーネント機能解析部55によって実現される)と、インタフェース抽出手段が抽出したインタフェースに対応するコードを生成し、生成したコードを含むスタブ又はスケルトンを生成するコード生成手段(例えば、コンポーネントコード生成部57によって実現される)とを備えたことを特徴とする。   An IDL compiling device according to the present invention is an IDL compiling device that generates a stub or a skeleton based on interface definition data (for example, IDL definition 2) indicating a definition of an interface used in software, and is a component included in software. Component definition input means (for example, realized by the component definition analysis unit 53) for inputting component definition data (for example, component definition 6) indicating the definition of the function used, and component definition data input by the component definition input means Based on the interface defined in the interface definition data, an interface extraction means (for example, a component) that extracts an interface corresponding to a function used in the component. And a code generation unit (for example, realized by the component code generation unit 57) that generates a code corresponding to the interface extracted by the interface extraction unit and generates a stub or skeleton including the generated code. And the like.

また、コンポーネント定義入力手段は、ソフトウェアに含まれる複数のコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力し、インタフェース抽出手段は、コンポーネント定義データにもとづいて、コンポーネントで用いられる機能に対応するインタフェースをコンポーネントごとに抽出し、コード生成手段は、インタフェース抽出手段が抽出したインタフェースに対応するコードを含むスタブ又はスケルトンをコンポーネントごとに生成するものであってもよい。そのような構成によれば、1つのインタフェース定義データにもとづいて、複数のコンポーネント用のスタブやスケルトンを自動生成する。従って、各コンポーネント用にインタフェース定義データを分割して使用する場合と比較して、インタフェース定義データを容易に管理することができる。   The component definition input means inputs component definition data indicating the definition of functions used in a plurality of components included in the software, and the interface extraction means corresponds to the functions used in the components based on the component definition data. The interface may be extracted for each component, and the code generation unit may generate a stub or skeleton including a code corresponding to the interface extracted by the interface extraction unit for each component. According to such a configuration, stubs and skeletons for a plurality of components are automatically generated based on one interface definition data. Therefore, the interface definition data can be easily managed as compared with the case where the interface definition data is divided and used for each component.

また、IDLコンパイル装置は、コンポーネント定義入力手段が入力したコンポーネント定義データの内容を解析し、解析結果を含むコンポーネント定義解析データ(例えば、コンポーネント定義解析情報54)を生成するコンポーネント定義解析手段(例えば、コンポーネント定義解析部53によって実現される)を備え、インタフェース抽出手段は、コンポーネント定義解析手段が生成したコンポーネント定義解析データにもとづいて、コンポーネントで用いられる機能に対応するインタフェースを抽出するものであってもよい。   Further, the IDL compiling device analyzes the content of the component definition data input by the component definition input unit, and generates component definition analysis data (for example, component definition analysis information 54) including the analysis result (for example, component definition analysis information 54). And the interface extracting unit extracts an interface corresponding to the function used in the component based on the component definition analysis data generated by the component definition analyzing unit. Good.

また、IDLコンパイル装置は、インタフェース定義データを入力するインタフェース定義入力手段(例えば、IDL定義解析部51によって実現される)と、インタフェース入力手段が入力したインタフェース定義データの内容を解析し、解析結果を含むインタフェース定義解析データ(例えば、IDL定義解析情報52)を生成するインタフェース定義解析手段(例えば、IDL定義解析部51によって実現される)とを備え、インタフェース抽出手段は、インタフェース定義解析手段が生成したインタフェース定義解析データにもとづいて、コンポーネントで用いられる機能に対応するインタフェースを抽出するものであってもよい。   The IDL compiling device analyzes the contents of the interface definition data input by the interface definition input means (for example, realized by the IDL definition analysis unit 51) for inputting the interface definition data and the interface input means, and outputs the analysis result. Interface definition analysis means (for example, realized by the IDL definition analysis unit 51) that generates interface definition analysis data (for example, IDL definition analysis information 52) including the interface definition analysis means generated by the interface definition analysis means An interface corresponding to a function used in a component may be extracted based on the interface definition analysis data.

また、インタフェース抽出手段は、コンポーネント定義解析手段が生成したコンポーネント定義解析データ、及びインタフェース定義解析手段が生成したインタフェース定義解析データにもとづいて、コンポーネントで用いられる機能を解析し、解析結果を含むコンポーネント機能解析データ(例えば、コンポーネント機能解析情報56)を生成し、コード生成手段は、インタフェース抽出手段が生成したコンポーネント機能解析データにもとづいて、コンポーネントで用いられる機能に対応するコードを生成するものであってもよい。   The interface extraction means analyzes the function used in the component based on the component definition analysis data generated by the component definition analysis means and the interface definition analysis data generated by the interface definition analysis means, and includes a component function including the analysis result. Analysis data (for example, component function analysis information 56) is generated, and the code generation unit generates a code corresponding to a function used in the component based on the component function analysis data generated by the interface extraction unit. Also good.

また、コード生成手段は、インタフェース抽出手段が生成したコンポーネント機能解析データにもとづいて、処理対象のコンポーネントがコンポーネントとは別のコンポーネントの機能を利用するか否かを判断し、処理対象のコンポーネントとは別のコンポーネントの機能を利用すると判断すると、処理対象のコンポーネントとは別のコンポーネントの機能に対応するコードを含むスタブを生成するものであってもよい。   The code generation means determines whether the processing target component uses a function of a component different from the component based on the component function analysis data generated by the interface extraction means. If it is determined that the function of another component is used, a stub including a code corresponding to the function of a component different from the component to be processed may be generated.

また、コード生成手段は、インタフェース抽出手段が生成したコンポーネント機能解析データにもとづいて、処理対象のコンポーネントがコンポーネントとは別のコンポーネントに利用させる機能をもつか否かを判断し、処理対象のコンポーネントとは別のコンポーネントに利用させる機能をもつと判断すると、処理対象のコンポーネントとは別のコンポーネントに利用させる機能に対応するコードを含むスケルトンを生成するものであってもよい。   Further, the code generation means determines whether or not the processing target component has a function to be used by a component different from the component based on the component function analysis data generated by the interface extraction means. When it is determined that has a function to be used by another component, a skeleton including a code corresponding to a function to be used by a component different from the component to be processed may be generated.

本発明によるIDLコンパイル方法は、ソフトウェアで用いられるインタフェースの定義を示すインタフェース定義データにもとづいて、スタブ又はスケルトンを生成するIDLコンパイル方法であって、ソフトウェアに含まれるコンポーネントで用いられる機能の定義を含むコンポーネント定義データを入力するコンポーネント定義入力ステップと、入力したコンポーネント定義データにもとづいて、インタフェース定義データで定義されるインタフェースのうち、コンポーネントで用いられる機能に対応するインタフェースを抽出するインタフェース抽出ステップと、抽出したインタフェースに対応するコードを生成し、生成したコードを含むスタブ又はスケルトンを生成するコード生成ステップとを含むことを特徴とする。   An IDL compiling method according to the present invention is an IDL compiling method for generating a stub or a skeleton based on interface definition data indicating a definition of an interface used in software, and includes definition of functions used in components included in the software. A component definition input step for inputting component definition data, an interface extraction step for extracting an interface corresponding to a function used in the component from the interfaces defined by the interface definition data based on the input component definition data, and extraction A code generation step of generating a code corresponding to the interface and generating a stub or skeleton including the generated code.

また、IDLコンパイル方法は、コンポーネント定義入力ステップで、ソフトウェアに含まれる複数のコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力し、インタフェース抽出ステップで、コンポーネント定義データにもとづいて、コンポーネントで用いられる機能に対応するインタフェースをコンポーネントごとに抽出し、コード生成ステップで、抽出したインタフェースに対応するコードを含むスタブ又はスケルトンをコンポーネントごとに生成するものであってもよい。そのような構成によれば、1つのインタフェース定義データにもとづいて、複数のコンポーネント用のスタブやスケルトンを自動生成する。従って、各コンポーネント用にインタフェース定義データを分割して使用する場合と比較して、インタフェース定義データを容易に管理することができる。   In the IDL compilation method, component definition data indicating the definition of functions used in a plurality of components included in the software is input in the component definition input step, and used in the component based on the component definition data in the interface extraction step. An interface corresponding to a function to be extracted may be extracted for each component, and a stub or skeleton including code corresponding to the extracted interface may be generated for each component in the code generation step. According to such a configuration, stubs and skeletons for a plurality of components are automatically generated based on one interface definition data. Therefore, the interface definition data can be easily managed as compared with the case where the interface definition data is divided and used for each component.

本発明によるIDLコンパイラは、ソフトウェアで用いられるインタフェースの定義を示すインタフェース定義データにもとづいて、スタブ又はスケルトンを生成するためのIDLコンパイラであって、コンピュータに、ソフトウェアに含まれるコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力する処理と、入力したコンポーネント定義データにもとづいて、インタフェース定義データで定義されるインタフェースのうち、コンポーネントで用いられる機能に対応するインタフェースを抽出する処理と、抽出したインタフェースに対応するコードを生成し、生成したコードを含むスタブ又はスケルトンを生成する処理とを実行させることを特徴とする。   An IDL compiler according to the present invention is an IDL compiler for generating a stub or a skeleton based on interface definition data indicating a definition of an interface used in software, and includes functions used by components included in the software on a computer. A process for inputting component definition data indicating a definition, a process for extracting an interface corresponding to a function used in the component from the interfaces defined by the interface definition data based on the input component definition data, and the extracted interface And a process of generating a stub or skeleton including the generated code.

本発明によれば、コンポーネント定義データにもとづいて、インタフェース定義データで定義されるインタフェースのうち、コンポーネントで用いられるインタフェースを抽出する。そして、抽出したインタフェースに対応するコードを生成し、生成したコードを含むスタブやスケルトンを生成する。従って、コンポーネントに不要な機能を含まない軽量なスタブやスケルトンを自動生成することができる。   According to the present invention, based on the component definition data, the interface used by the component is extracted from the interfaces defined by the interface definition data. Then, a code corresponding to the extracted interface is generated, and a stub and a skeleton including the generated code are generated. Accordingly, it is possible to automatically generate a lightweight stub or skeleton that does not include unnecessary functions in the component.

以下、本発明の実施の形態を図面を参照して説明する。図1は、本発明によるIDLコンパイラの構成の一例を示す説明図である。本実施の形態では、情報処理装置のCPUが図1に示すIDLコンパイラに従って動作することによってIDLコンパイル装置が実現される。本実施の形態では、IDLコンパイル装置は、アプリケーションソフトウェアで用いられるインタフェースの定義を示すインタフェース定義データをコンパイルして、スタブやスケルトンを生成する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is an explanatory diagram showing an example of the configuration of an IDL compiler according to the present invention. In the present embodiment, the IDL compiling device is realized by the CPU of the information processing device operating according to the IDL compiler shown in FIG. In this embodiment, the IDL compiling device compiles interface definition data indicating interface definitions used in application software, and generates stubs and skeletons.

図1に示すように、IDLコンパイラ5は、IDL定義解析部51、コンポーネント定義解析部53、コンポーネント機能解析部55及びコンポーネントコード生成部57を含む。本実施の形態では、IDLコンパイラ5は、図11に示す構成要素に加えて、コンポーネント定義解析部53及びコンポーネント機能解析部55を含む点で、図11に示す従来のIDLコンパイラ1101と異なる。また、本実施の形態では、IDLコンパイラ5のコンポーネントコード生成部57の機能が、図11に示す従来のIDLコンパイラ1101のコード生成部1113の機能と異なる。   As shown in FIG. 1, the IDL compiler 5 includes an IDL definition analysis unit 51, a component definition analysis unit 53, a component function analysis unit 55, and a component code generation unit 57. In this embodiment, the IDL compiler 5 is different from the conventional IDL compiler 1101 shown in FIG. 11 in that it includes a component definition analysis unit 53 and a component function analysis unit 55 in addition to the components shown in FIG. Further, in the present embodiment, the function of the component code generation unit 57 of the IDL compiler 5 is different from the function of the code generation unit 1113 of the conventional IDL compiler 1101 shown in FIG.

IDLコンパイラ5は、インタフェース定義データとして、CORBA技術を利用したソフトウェアコンポーネント(以下、単にコンポーネントという)間通信で送受信されるデータのデータ型(以下、IDL型という)の定義を含むIDL定義2を入力する。また、IDLコンパイラ5は、IDL定義2に加えて、アプリケーションソフトウェアに含まれる複数のコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力する。本実施の形態では、IDLコンパイラ5は、コンポーネント定義データとして、各コンポーネントが他のコンポーネントに提供する機能や、各コンポーネントが使用する他のコンポーネントの機能、各コンポーネントが内部で使用する機能の定義を含むコンポーネント定義6を入力する。   The IDL compiler 5 inputs, as interface definition data, an IDL definition 2 including a definition of a data type (hereinafter referred to as IDL type) of data transmitted / received through communication between software components (hereinafter simply referred to as components) using CORBA technology. To do. In addition to the IDL definition 2, the IDL compiler 5 inputs component definition data indicating the definition of functions used in a plurality of components included in the application software. In this embodiment, the IDL compiler 5 defines, as component definition data, functions provided by each component to other components, functions of other components used by each component, and functions used internally by each component. Input the component definition 6 to be included.

また、IDLコンパイラ5は、IDL定義2及びコンポーネント定義6にもとづいて、各コンポーネントで用いられるコンポーネント用スタブ7やコンポーネント用スケルトン8を生成する。なお、本実施の形態では、IDLコンパイラ5が生成する等の表現を用いるが、実際には、情報処理装置のCPUがIDLコンパイラ5に従って処理を実行する。   The IDL compiler 5 generates a component stub 7 and a component skeleton 8 used in each component based on the IDL definition 2 and the component definition 6. In this embodiment, an expression such as that generated by the IDL compiler 5 is used, but actually, the CPU of the information processing apparatus executes processing according to the IDL compiler 5.

IDL定義解析部51は、IDL定義解析手順を実行して、IDL定義2に含まれるIDL型の解析を行い、IDL定義解析情報52を生成する機能を備える。本実施の形態では、IDL定義解析部51は、文字列等の形式で記載されたIDL定義2に含まれるIDL型を解析する。また、IDL定義解析部51は、解析結果にもとづいて、IDL定義2をIDLコンパイラ5の各構成部が使用可能なデータ形式に変換したデータであるIDL定義解析情報52を生成する。   The IDL definition analysis unit 51 has a function of executing an IDL definition analysis procedure, performing an IDL type analysis included in the IDL definition 2, and generating IDL definition analysis information 52. In the present embodiment, the IDL definition analysis unit 51 analyzes the IDL type included in the IDL definition 2 described in a format such as a character string. Further, the IDL definition analysis unit 51 generates IDL definition analysis information 52 that is data obtained by converting the IDL definition 2 into a data format that can be used by each component of the IDL compiler 5 based on the analysis result.

コンポーネント定義解析部53は、コンポーネント定義解析手順を実行して、コンポーネント定義6の解析を行い、コンポーネント定義解析情報54を生成する機能を備える。本実施の形態では、コンポーネント定義解析部53は、文字列等の形式で記載されたコンポーネント定義6を解析する。また、コンポーネント定義解析部53は、解析結果にもとづいて、コンポーネント定義6をIDLコンパイラ5の各構成部が使用可能なデータ形式に変換したデータであるコンポーネント定義解析情報54を生成する。   The component definition analysis unit 53 has a function of executing a component definition analysis procedure, analyzing the component definition 6, and generating component definition analysis information 54. In the present embodiment, the component definition analyzing unit 53 analyzes the component definition 6 described in a format such as a character string. Further, the component definition analysis unit 53 generates component definition analysis information 54 that is data obtained by converting the component definition 6 into a data format that can be used by each component of the IDL compiler 5 based on the analysis result.

コンポーネント機能解析部55は、コンポーネント機能解析手順を実行して、各コンポーネントが必要とする機能の解析を行い、コンポーネント機能解析情報56を生成する機能を備える。すなわち、コンポーネント機能解析部55は、インタフェース定義データ(IDL定義2)で定義されるインタフェースのうち、コンポーネントで用いられる機能に対応するインタフェースを抽出し、コンポーネント機能解析情報56を生成する機能を備える。本実施の形態では、コンポーネント機能解析部55は、IDL定義解析情報52及びコンポーネント定義解析情報54にもとづいて、各コンポーネントが必要とする機能及び各コンポーネントが必要としない機能をコンポーネントごとに解析する。また、コンポーネント機能解析部55は、解析結果を含むデータであるコンポーネント機能解析情報56を生成する。   The component function analysis unit 55 has a function of executing a component function analysis procedure, analyzing a function required by each component, and generating component function analysis information 56. That is, the component function analysis unit 55 has a function of extracting an interface corresponding to a function used in a component from interfaces defined by the interface definition data (IDL definition 2) and generating component function analysis information 56. In the present embodiment, the component function analysis unit 55 analyzes the function required by each component and the function not required by each component for each component based on the IDL definition analysis information 52 and the component definition analysis information 54. In addition, the component function analysis unit 55 generates component function analysis information 56 that is data including an analysis result.

コンポーネントコード生成部57は、コンポーネントコード生成手順を実行して、コンポーネント機能解析情報56にもとづいて各コンポーネント用のスタブやスケルトンを生成する機能を備える。すなわち、コンポーネントコード生成部57は、コンポーネント機能解析部55が抽出したインタフェースに対応するコードを生成し、生成したコードを含むスタブやスケルトンを生成する機能を備える。本実施の形態では、コンポーネントコード生成部57は、コンポーネント機能解析情報56にもとづいて、コンポーネントが必要とする機能だけを含むコンポーネント用スタブ7やコンポーネント用スケルトン8を、コンポーネントごとに生成して出力する。   The component code generation unit 57 has a function of executing a component code generation procedure and generating a stub and a skeleton for each component based on the component function analysis information 56. That is, the component code generation unit 57 has a function of generating a code corresponding to the interface extracted by the component function analysis unit 55 and generating a stub and a skeleton including the generated code. In the present embodiment, the component code generation unit 57 generates and outputs, for each component, the component stub 7 and the component skeleton 8 including only the functions required by the component based on the component function analysis information 56. .

次に、動作について具体例を用いて説明する。図2は、CORBA技術を利用したアプリケーションソフトウェアの一例を示す説明図である。図2に示すように、アプリケーションソフトウェア9は、CORBA技術を利用したコンポーネントX91及びコンポーネントY92を含む。   Next, the operation will be described using a specific example. FIG. 2 is an explanatory diagram showing an example of application software using the CORBA technology. As shown in FIG. 2, the application software 9 includes a component X91 and a component Y92 using CORBA technology.

また、図3は、図2に示すアプリケーションソフトウェア9全体で用いられるIDL型のIDL定義2の例を示す説明図である。本実施の形態では、アプリケーションソフトウェア9全体で2つの構造体S1,S2のIDL型と、2つのインタフェースI1,I2のIDL型とが用いられる。そのため、図3に示すように、本実施の形態では、IDL定義2は、構造体S1の定義21、構造体S2の定義22、インタフェースI1の定義23及びインタフェースI2の定義24を含む。   FIG. 3 is an explanatory diagram showing an example of IDL type IDL definition 2 used in the entire application software 9 shown in FIG. In the present embodiment, the entire application software 9 uses the IDL type of the two structures S1 and S2 and the IDL type of the two interfaces I1 and I2. Therefore, as shown in FIG. 3, in this embodiment, the IDL definition 2 includes a definition 21 of the structure S1, a definition 22 of the structure S2, a definition 23 of the interface I1, and a definition 24 of the interface I2.

また、図4は、図2に示す各コンポーネント91,92で用いられる機能のコンポーネント定義6の例を示す説明図である。図4に示すように、本実施の形態では、コンポーネント定義6は、コンポーネントX91に対応するコンポーネントX定義61と、コンポーネントY92に対応するコンポーネントY定義62とを含む。   FIG. 4 is an explanatory diagram showing an example of a component definition 6 of functions used in the components 91 and 92 shown in FIG. As shown in FIG. 4, in the present embodiment, the component definition 6 includes a component X definition 61 corresponding to the component X91 and a component Y definition 62 corresponding to the component Y92.

また、図5は、図2に示す各コンポーネント91,92で用いられるスタブ及びスケルトンを生成する場合のIDLコンパイラ5の具体的な構成の一例を示すブロック図である。本実施の形態では、図2に示すアプリケーションソフトウェア9のコンポーネントX91及びコンポーネントY92が用いるスタブやスケルトンを、IDLコンパイラ5が生成する場合の動作を説明する。本実施の形態では、IDLコンパイラ5は、図3に示すIDL定義2及び図4に示すコンポーネント定義6を入力し解析する。そして、IDLコンパイラ5は、図5に示すように、解析結果にもとづいて、コンポーネントX用スタブ71、コンポーネントY用スタブ72及びコンポーネントX用スケルトン81を生成する。   FIG. 5 is a block diagram showing an example of a specific configuration of the IDL compiler 5 when generating stubs and skeletons used in the components 91 and 92 shown in FIG. In the present embodiment, an operation when the IDL compiler 5 generates stubs and skeletons used by the component X91 and the component Y92 of the application software 9 shown in FIG. 2 will be described. In this embodiment, the IDL compiler 5 inputs and analyzes the IDL definition 2 shown in FIG. 3 and the component definition 6 shown in FIG. Then, as shown in FIG. 5, the IDL compiler 5 generates a component X stub 71, a component Y stub 72, and a component X skeleton 81 based on the analysis result.

図6は、IDLコンパイラ5が実行するIDLコンパイル手順の処理の一例を示す流れ図である。IDLコンパイラ5は、IDLコンパイル手順の実行を開始すると、IDL定義2を解析するIDL定義解析手順を実行する(ステップS200)。ステップS200において、IDLコンパイラ5は、ファイル等からIDL定義2を読み込み、IDL定義2で定義されたIDL型がもつ要素やオペレーション、引数等の解析を行い、IDL定義解析情報52を生成する。   FIG. 6 is a flowchart showing an example of processing of the IDL compilation procedure executed by the IDL compiler 5. When starting the execution of the IDL compilation procedure, the IDL compiler 5 executes an IDL definition analysis procedure for analyzing the IDL definition 2 (step S200). In step S200, the IDL compiler 5 reads the IDL definition 2 from a file or the like, analyzes the elements, operations, arguments, etc. of the IDL type defined in the IDL definition 2, and generates IDL definition analysis information 52.

また、IDLコンパイラ5は、コンポーネント定義6を解析するコンポーネント定義解析手順を実行する(ステップS300)。ステップS300において、IDLコンパイラ5は、ファイル等からコンポーネント定義6を読み込こむ。また、IDLコンパイラ5は、読み込んだコンポーネント定義6にもとづいて、各コンポーネントが他のコンポーネントに提供する機能や、各コンポーネントが使用する他のコンポーネントの機能を解析する。そして、IDLコンパイラ5は、解析結果にもとづいてコンポーネント定義解析情報54を生成する。   The IDL compiler 5 executes a component definition analysis procedure for analyzing the component definition 6 (step S300). In step S300, the IDL compiler 5 reads the component definition 6 from a file or the like. Further, the IDL compiler 5 analyzes functions provided by each component to other components and functions of other components used by each component based on the read component definition 6. Then, the IDL compiler 5 generates component definition analysis information 54 based on the analysis result.

また、IDLコンパイラ5は、各コンポーネントが必要とする機能を解析するコンポーネント機能解析手順を実行する(ステップS400)。ステップS400において、IDLコンパイラ5は、IDL定義解析情報52及びコンポーネント定義解析情報54にもとづいて、各コンポーネントが必要とするIDL型を抽出したり、抽出したIDL型のうち不要な機能があるか否か解析する。また、IDLコンパイラ5は、解析結果を含むコンポーネント機能解析情報56を生成する。   Further, the IDL compiler 5 executes a component function analysis procedure for analyzing a function required by each component (step S400). In step S400, the IDL compiler 5 extracts the IDL type required by each component based on the IDL definition analysis information 52 and the component definition analysis information 54, and whether there is an unnecessary function among the extracted IDL types. Or analyze. Further, the IDL compiler 5 generates component function analysis information 56 including an analysis result.

また、IDLコンパイラ5は、スタブやスケルトンを生成するコンポーネントコード生成手順を実行する(ステップS500)。ステップS500において、IDLコンパイラ5は、コンポーネント機能解析情報56にもとづいて、各コンポーネントが用いるスタブやスケルトンを生成する。   Further, the IDL compiler 5 executes a component code generation procedure for generating stubs and skeletons (step S500). In step S <b> 500, the IDL compiler 5 generates a stub or skeleton used by each component based on the component function analysis information 56.

図7は、ステップS200のIDL定義解析手順の処理の一例を示す流れ図である。ステップS200のIDL定義解析手順において、IDLコンパイラ5のIDL定義解析部51は、ファイル等に保存されているIDL定義2を読み込む(ステップS201)。   FIG. 7 is a flowchart showing an example of processing of the IDL definition analysis procedure in step S200. In the IDL definition analysis procedure in step S200, the IDL definition analysis unit 51 of the IDL compiler 5 reads the IDL definition 2 stored in a file or the like (step S201).

IDL定義解析部51は、読み込んだIDL定義2で定義されているIDL型がどのような要素やオペレーション、引数をもつかを解析する(ステップS202)。また、IDL定義解析部51は、IDL定義解析情報52を生成し、生成したIDL定義解析情報52に解析結果の内容を書き込む。   The IDL definition analysis unit 51 analyzes what elements, operations, and arguments the IDL type defined in the read IDL definition 2 has (step S202). The IDL definition analysis unit 51 also generates IDL definition analysis information 52 and writes the contents of the analysis result in the generated IDL definition analysis information 52.

IDL定義解析部51は、IDL定義2で定義されている全てのIDL型の解析を終了したか否かを判断する(ステップS203)。全てのIDL型の解析を終了していない(未解析のIDL型がある)と判断した場合、IDL定義解析部51は、未解析のIDL型についてステップS202の処理を繰り返し実行し、IDL定義解析情報52に解析結果の内容を書き込んで加える。   The IDL definition analysis unit 51 determines whether or not analysis of all IDL types defined in the IDL definition 2 has been completed (step S203). When it is determined that analysis of all IDL types has not been completed (there is an unanalyzed IDL type), the IDL definition analysis unit 51 repeatedly executes the process of step S202 for the unanalyzed IDL type, and performs IDL definition analysis. The contents of the analysis result are written in information 52 and added.

ステップS203で全てのIDL型の解析を終了した(未解析のIDL型がない)と判断した場合、IDL定義解析部51は、生成したIDL定義解析情報52をコンポーネント機能解析部55に送信(出力)する(ステップS204)。   If it is determined in step S203 that analysis of all IDL types has been completed (no unanalyzed IDL type), the IDL definition analysis unit 51 transmits the generated IDL definition analysis information 52 to the component function analysis unit 55 (output) (Step S204).

本実施の形態では、IDL定義解析部51は、図3に示すIDL定義2にもとづいて、アプリケーションソフトウェア9で用いられるIDL型が構造体S1型、構造体S2型、インタフェースI1型及びインタフェースI2型である旨の解析内容を含むIDL定義解析情報52を生成する。   In the present embodiment, the IDL definition analysis unit 51 uses the structure S1 type, the structure S2 type, the interface I1 type, and the interface I2 type based on the IDL definition 2 shown in FIG. IDL definition analysis information 52 including the analysis contents indicating that is generated.

例えば、IDL定義解析部51は、構造体S1型がlong型の要素e1をもち、構造体S2型がfloat 型の要素e2をもつ旨の解析内容を含むIDL定義解析情報52を生成する。また、IDL定義解析部51は、インタフェースI1型がオペレーションop1_1 ,op1_2 をもち、オペレーションop1_1 が引数として構造体S1型の要素をもち、オペレーションop1_2 が引数として構造体S2型の要素をもつ旨の解析内容を含むIDL定義解析情報52を生成する。また、IDL定義解析部51は、インタフェースI2型がオペレーションop2_1 ,op2_2 をもち、オペレーションop2_1 が引数として構造体S1型の要素をもち、オペレーションop2_2 が引数として構造体S2型の要素をもつ旨の解析内容を含むIDL定義解析情報52を生成する。   For example, the IDL definition analysis unit 51 generates IDL definition analysis information 52 including analysis contents indicating that the structure S1 type has a long type element e1 and the structure S2 type has a float type element e2. The IDL definition analysis unit 51 also analyzes that the interface I1 type has operations op1_1 and op1_2, the operation op1_1 has a structure S1 type element as an argument, and the operation op1_2 has a structure S2 type element as an argument. IDL definition analysis information 52 including the contents is generated. The IDL definition analysis unit 51 also analyzes that the interface I2 type has operations op2_1 and op2_2, the operation op2_1 has a structure S1 type element as an argument, and the operation op2_2 has a structure S2 type element as an argument. IDL definition analysis information 52 including the contents is generated.

図8は、ステップS300のコンポーネント定義解析手順の処理の一例を示す流れ図である。ステップS300のコンポーネント定義解析手順において、IDLコンパイラ5のコンポーネント定義解析部53は、ファイル等に保存されているコンポーネント定義6を読み込む(ステップS301)。   FIG. 8 is a flowchart illustrating an example of the process of the component definition analysis procedure in step S300. In the component definition analysis procedure of step S300, the component definition analysis unit 53 of the IDL compiler 5 reads the component definition 6 stored in a file or the like (step S301).

コンポーネント定義解析部53は、読み込んだコンポーネント定義6で定義されている各コンポーネントがどのような機能を他のコンポーネントに提供するかや、他のコンポーネントのどのような機能を使用するかを解析する(ステップS302)。また、コンポーネント定義解析部53は、コンポーネント定義解析情報54を生成し、生成したコンポーネント定義解析情報54に解析結果の内容を書き込む。   The component definition analyzing unit 53 analyzes what functions each component defined in the read component definition 6 provides to other components and what functions of other components are used ( Step S302). In addition, the component definition analysis unit 53 generates component definition analysis information 54 and writes the contents of the analysis result in the generated component definition analysis information 54.

コンポーネント定義解析部53は、コンポーネント定義6で定義されている全てのコンポーネントの解析を終了したか否かを判断する(ステップS303)。全てのコンポーネントの解析を終了していない(未解析のコンポーネントの定義がある)と判断した場合、コンポーネント定義解析部53は、未解析のコンポーネントについてステップS302の処理を繰り返し実行し、コンポーネント定義解析情報54に解析結果の内容を書き込んで加える。   The component definition analysis unit 53 determines whether or not the analysis of all the components defined in the component definition 6 has been completed (step S303). If it is determined that the analysis of all components has not been completed (there is an unanalyzed component definition), the component definition analysis unit 53 repeatedly executes the process of step S302 for the unanalyzed component, and component definition analysis information The contents of the analysis result are written in 54 and added.

ステップS303で全てのコンポーネントの解析を終了した(未解析のコンポーネントの定義がない)と判断した場合、コンポーネント定義解析部53は、生成したコンポーネント定義解析情報54をコンポーネント機能解析部55に送信(出力)する(ステップS304)。   If it is determined in step S303 that the analysis of all components has been completed (there is no definition of unanalyzed components), the component definition analysis unit 53 transmits the generated component definition analysis information 54 to the component function analysis unit 55 (output) (Step S304).

本実施の形態では、コンポーネント定義解析部53は、図4に示すコンポーネント定義6にもとづいて、コンポーネントX91及びコンポーネントY92で用いられる機能の定義の解析内容を含むコンポーネント定義解析情報54を生成する。   In the present embodiment, the component definition analysis unit 53 generates component definition analysis information 54 including the analysis contents of the function definitions used in the component X91 and the component Y92 based on the component definition 6 shown in FIG.

例えば、コンポーネント定義解析部53は、コンポーネントX91が、サーバ機能として、他のコンポーネントにインタフェースI1型で定義される全機能と、インタフェースI2型のop2_1 で定義される機能とを提供する旨の解析内容を含むコンポーネント定義解析情報54を生成する。また、コンポーネント定義解析部53は、コンポーネントX91が、クライアント機能として、インタフェースI1型で定義される機能を使用する旨の解析内容を含むコンポーネント定義解析情報54を生成する。また、コンポーネント定義解析部53は、コンポーネントY92が、クライアント機能として、他のコンポーネントが提供するインタフェースI1型のop1_1 の機能を使用する旨の解析内容を含むコンポーネント定義解析情報54を生成する。   For example, the component definition analyzing unit 53 analyzes that the component X91 provides all functions defined by the interface I1 type and other functions defined by the interface I2 type op2_1 as the server functions. The component definition analysis information 54 including is generated. Further, the component definition analysis unit 53 generates component definition analysis information 54 including analysis contents indicating that the component X 91 uses a function defined by the interface I1 type as a client function. Further, the component definition analysis unit 53 generates component definition analysis information 54 including analysis contents indicating that the component Y92 uses the function of the interface I1 type op1_1 provided by another component as a client function.

図9は、ステップS400のコンポーネント機能解析手順の処理の一例を示す流れ図である。ステップS400のコンポーネント機能解析手順において、IDLコンパイラ5のコンポーネント機能解析部55は、IDL定義解析部51からのIDL定義解析情報52を受信(入力)する(ステップS401)。また、コンポーネント機能解析部55は、コンポーネント定義解析部53からのコンポーネント定義解析情報54を受信(入力)する(ステップS402)。   FIG. 9 is a flowchart showing an example of the component function analysis procedure in step S400. In the component function analysis procedure of step S400, the component function analysis unit 55 of the IDL compiler 5 receives (inputs) the IDL definition analysis information 52 from the IDL definition analysis unit 51 (step S401). In addition, the component function analysis unit 55 receives (inputs) the component definition analysis information 54 from the component definition analysis unit 53 (step S402).

コンポーネント機能解析部55は、入力したコンポーネント定義解析情報54から、各コンポーネントの機能に対応するインターフェース型を抽出する(ステップS403)。本実施の形態では、コンポーネント機能解析部55は、コンポーネントX91に対応するインタフェース型として、インタフェースI1型及びインタフェースI2型を抽出して取得する。また、コンポーネント機能解析部55は、コンポーネントY92に対応するインタフェース型として、インタフェースI1型を抽出して取得する。   The component function analysis unit 55 extracts an interface type corresponding to the function of each component from the input component definition analysis information 54 (step S403). In the present embodiment, the component function analysis unit 55 extracts and acquires the interface I1 type and the interface I2 type as the interface types corresponding to the component X91. Also, the component function analysis unit 55 extracts and acquires the interface I1 type as the interface type corresponding to the component Y92.

また、コンポーネント機能解析部55は、入力したIDL定義解析情報52から、ステップS403で取得したインタフェース型の情報と、ステップS403で取得したインタフェース型で提供されるオペレーションの引数となっているIDL型の情報とを抽出する(ステップS404)。   Further, the component function analysis unit 55 uses the IDL type analysis information 52, which is the interface type information acquired in step S403 and the IDL type that is an argument of the operation provided in the interface type acquired in step S403. Information is extracted (step S404).

本実施の形態では、コンポーネント機能解析部55は、コンポーネントX91について、インタフェースI1型と、インタフェースI1型がもつオペレーションop1_1 の引数である構造体S1型と、オペレーションop1_2 の引数である構造体S2型との情報を抽出する。また、コンポーネント機能解析部55は、コンポーネントX91について、インタフェースI2型と、インタフェースI2型がもつオペレーションop2_1 ,op2_2 の引数である構造体S1型及び構造体S2型との情報を抽出する。また、同様に、コンポーネント機能解析部55は、コンポーネントY92について、インタフェースI1型と、構造体S1型及び構造体S2型との情報を抽出する。   In the present embodiment, for the component X91, the component function analysis unit 55 includes the interface I1 type, the structure S1 type that is the argument of the operation op1_1 of the interface I1 type, and the structure S2 type that is the argument of the operation op1_2. Extract information. Further, the component function analysis unit 55 extracts information about the interface I2 type and the structure S1 type and the structure S2 type that are arguments of the operations op2_1 and op2_2 of the interface I2 type for the component X91. Similarly, the component function analysis unit 55 extracts information on the interface I1 type, the structure S1 type, and the structure S2 type for the component Y92.

また、コンポーネント機能解析部55は、コンポーネント定義解析情報54とステップS404で抽出したIDL型の情報とにもとづいて、抽出したIDL型の機能のうちいずれが必要な機能又は不要な機能であるかを解析し、省略できる機能を抽出する(ステップS405)。また、コンポーネント機能解析部55は、コンポーネント機能解析情報56を生成し、生成したコンポーネント機能解析情報56に解析結果の内容を書き込む。   Also, the component function analysis unit 55 determines which one of the extracted IDL type functions is a necessary function or an unnecessary function based on the component definition analysis information 54 and the IDL type information extracted in step S404. Analysis is performed and functions that can be omitted are extracted (step S405). Further, the component function analysis unit 55 generates component function analysis information 56 and writes the contents of the analysis result in the generated component function analysis information 56.

コンポーネント機能解析部55は、全てのコンポーネントの解析を終了したか否かを判断する(ステップS406)。全てのコンポーネントの解析を終了していない(未解析のコンポーネントがある)と判断した場合、コンポーネント機能解析部55は、未解析のコンポーネントについてステップS403以降の処理を繰り返し実行し、コンポーネント機能解析情報56に解析結果の内容を書き込んで加える。   The component function analysis unit 55 determines whether or not the analysis of all components has been completed (step S406). If it is determined that the analysis of all components has not been completed (there is an unanalyzed component), the component function analysis unit 55 repeatedly executes the processing from step S403 on the unanalyzed component, and the component function analysis information 56 Write the contents of the analysis result in and add it.

ステップS406で全てのコンポーネントの解析を終了した(未解析のコンポーネントがない)と判断した場合、コンポーネント機能解析部55は、生成したコンポーネント機能解析情報56をコンポーネントコード生成部57に送信(出力)する(ステップS407)。   If it is determined in step S406 that the analysis of all components has been completed (there is no unanalyzed component), the component function analysis unit 55 transmits (outputs) the generated component function analysis information 56 to the component code generation unit 57. (Step S407).

本実施の形態では、コンポーネント機能解析部55は、IDL定義解析情報52及びコンポーネント定義解析情報54にもとづいて、コンポーネントX91及びコンポーネントY92が必要とする機能の解析内容を含むコンポーネント機能解析情報56を生成する。   In the present embodiment, the component function analysis unit 55 generates component function analysis information 56 including analysis contents of functions required by the component X91 and the component Y92 based on the IDL definition analysis information 52 and the component definition analysis information 54. To do.

例えば、コンポーネント機能解析部55は、コンポーネントX91について、スタブとして、インタフェースI1型の全ての機能と構造体S1型及び構造体S2型をオペレーションの引数として送信する機能とが必要であり、インタフェースI2型の機能が必要でない旨の解析内容を含むコンポーネント機能解析情報56を生成する。また、コンポーネント機能解析部55は、コンポーネントX91について、スケルトンとして、インタフェースI1型の全ての機能と、構造体S1型及び構造体S2型をオペレーションの引数として受信する機能と、インタフェースI2型のop2_1 の機能とが必要である旨の解析内容を含むコンポーネント機能解析情報56を生成する。   For example, the component function analysis unit 55 requires all functions of the interface I1 type as a stub and a function of transmitting the structure S1 type and the structure S2 type as operation arguments for the component X91, and the interface I2 type. The component function analysis information 56 including the analysis content indicating that the function is not required is generated. Further, the component function analyzing unit 55, as a skeleton, for the component X91, all functions of the interface I1 type, a function of receiving the structure S1 type and the structure S2 type as operation arguments, and an interface I2 type op2_1 Component function analysis information 56 including analysis contents indicating that a function is required is generated.

また、コンポーネント機能解析部55は、コンポーネントY92について、スタブとして、インタフェースI1型のオペレーションop1_1 の機能と構造体S1型をオペレーションの引数として送信する機能とが必要であり、オペレーションop1_2 の機能と構造体S1型を受信する機能と構造体S2の送受信を行う機能とが不要である旨の解析内容を含むコンポーネント機能解析情報56を生成する。また、コンポーネント機能解析部55は、コンポーネントY92について、他のコンポーネントに提供する機能がなく、スケルトンが不要である旨の解析内容を含むコンポーネント機能解析情報56を生成する。   Further, the component function analysis unit 55 needs a function of the interface I1 type operation op1_1 and a function of transmitting the structure S1 type as an argument of the operation as a stub for the component Y92, and the function and structure of the operation op1_2 Component function analysis information 56 including analysis contents indicating that the function of receiving the S1 type and the function of transmitting and receiving the structure S2 are unnecessary is generated. In addition, the component function analysis unit 55 generates component function analysis information 56 including analysis contents indicating that the component Y92 has no function to be provided to other components and a skeleton is unnecessary.

図10は、ステップS500のコンポーネントコード生成手順の処理の一例を示す流れ図である。ステップS500のコンポーネントコード生成手順において、IDLコンパイラ5のコンポーネントコード生成部57は、コンポーネント機能解析部55からのコンポーネント機能解析情報56を受信(入力)する(ステップS501)。   FIG. 10 is a flowchart showing an example of the component code generation procedure in step S500. In the component code generation procedure of step S500, the component code generation unit 57 of the IDL compiler 5 receives (inputs) the component function analysis information 56 from the component function analysis unit 55 (step S501).

コンポーネントコード生成部57は、入力したコンポーネント機能解析情報56にもとづいて、処理対象のコンポーネントが他のコンポーネントの機能を使用する(利用する)か否かを判断する(ステップS502)。他のコンポーネントの機能を使用しないと判断した場合、コンポーネントコード生成部57は、ステップS503の処理を実行せずに、そのままステップS504の処理を実行する。   Based on the input component function analysis information 56, the component code generation unit 57 determines whether or not the processing target component uses (uses) the function of another component (step S502). If it is determined that the function of another component is not used, the component code generation unit 57 directly executes the process of step S504 without executing the process of step S503.

ステップS502で処理対象のコンポーネントが他のコンポーネントの機能を使用すると判断した場合、コンポーネントコード生成部57は、コンポーネント機能解析情報56にもとづいてコード生成を行い、処理対象のコンポーネントに対応するコンポーネント用スタブを生成する(ステップS503)。すなわち、コンポーネントコード生成部57は、処理対象のコンポーネントが使用する他のコンポーネントの機能に対応するコードを含むコンポーネント用スタブを生成する。   If it is determined in step S502 that the processing target component uses the function of another component, the component code generation unit 57 generates code based on the component function analysis information 56, and the component stub corresponding to the processing target component is generated. Is generated (step S503). In other words, the component code generation unit 57 generates a component stub including a code corresponding to the function of another component used by the component to be processed.

コンポーネントコード生成部57は、コンポーネント機能解析情報56にもとづいて、処理対象のコンポーネントが他のコンポーネントに提供する機能が存在するか否かを判断する(ステップS504)。他のコンポーネントに提供する機能がないと判断した場合、コンポーネントコード生成部57は、ステップS505の処理を実行せずに、そのままステップS506の処理を実行する。   Based on the component function analysis information 56, the component code generation unit 57 determines whether there is a function that the component to be processed provides to other components (step S504). When determining that there is no function to be provided to another component, the component code generation unit 57 directly executes the process of step S506 without executing the process of step S505.

ステップS504で処理対象のコンポーネントが他のコンポーネントに提供する機能があると判断した場合、コンポーネントコード生成部57は、コンポーネント機能解析情報56にもとづいてコード生成を行い、処理対象のコンポーネントに対応するコンポーネント用スケルトンを生成する(ステップS505)。すなわち、コンポーネントコード生成部57は、処理対象のコンポーネントが他のコンポーネントに提供する機能に対応するコードを含むコンポーネント用スケルトンを生成する。   When it is determined in step S504 that the component to be processed has a function provided to another component, the component code generation unit 57 generates a code based on the component function analysis information 56, and the component corresponding to the component to be processed A skeleton for use is generated (step S505). That is, the component code generation unit 57 generates a component skeleton including a code corresponding to a function that the component to be processed provides to another component.

コンポーネントコード生成部57は、全てのコンポーネントについて処理を終了したか否かを判断する(ステップS506)。全てのコンポーネントについて処理を終了していない(未処理のコンポーネントが存在する)と判断した場合、コンポーネントコード生成部57は、ステップS502以降の処理を繰り返し実行し、未処理のコンポーネントのコード生成を行う。全てのコンポーネントについて処理を終了した(未処理のコンポーネントが存在する)と判断した場合、コンポーネントコード生成部57は、コンポーネントコード生成手順の処理を終了する。   The component code generation unit 57 determines whether or not the processing has been completed for all components (step S506). If it is determined that the processing has not been completed for all components (there are unprocessed components), the component code generation unit 57 repeatedly executes the processes in and after step S502 to generate code for the unprocessed components. . If it is determined that the processing has been completed for all components (there are unprocessed components), the component code generation unit 57 ends the processing of the component code generation procedure.

本実施の形態では、コンポーネントコード生成部57は、コンポーネント機能解析情報56にもとづいて、コンポーネントX91について、コンポーネントX用スタブ71及びコンポーネントX用スケルトン81を生成する。また、コンポーネントコード生成部57は、コンポーネントY92について、コンポーネントY用スタブ72を生成する。   In the present embodiment, the component code generation unit 57 generates a component X stub 71 and a component X skeleton 81 for the component X 91 based on the component function analysis information 56. In addition, the component code generation unit 57 generates a component Y stub 72 for the component Y92.

例えば、コンポーネントコード生成部57は、コンポーネント機能解析情報56にもとづいて、インタフェースI1型、構造体S1型及び構造体S2型についてのコードを含むコンポーネントX用スタブ71を生成する。また、コンポーネントコード生成部57は、インタフェースI1型の全機能とインタフェースI2型のop2_1 の機能についてのコードを含むコンポーネントX用スケルトン81を生成する。すなわち、コンポーネントX用スケルトン81ではインタフェースI2型のop2_2 の機能が使用されないので、コンポーネントコード生成部57は、インタフェースI2型のop2_2 の機能を省略したコードを含むコンポーネントX用スケルトン81を生成する。そのようにすることによって、コンポーネントコード生成部57は、コードサイズの小さいコンポーネントX用スケルトン81を生成する。   For example, based on the component function analysis information 56, the component code generation unit 57 generates the component X stub 71 including codes for the interface I1, type S1, and structure S2. Further, the component code generation unit 57 generates a component X skeleton 81 including codes for all the functions of the interface I1 type and the functions of the interface I2 type op2_1. That is, since the function of the interface I2 type op2_2 is not used in the component X skeleton 81, the component code generation unit 57 generates the component X skeleton 81 including the code in which the function of the interface I2 type op2_2 is omitted. By doing so, the component code generation unit 57 generates the component X skeleton 81 having a small code size.

また、コンポーネントコード生成部57は、コンポーネント機能解析情報56にもとづいて、インタフェースI1型のop1_1 の機能を含むコンポーネントY用スタブ72を生成する。すなわち、コンポーネントY用スタブ72ではインタフェースI1型のop1_2 の機能が使用されないので、コンポーネントコード生成部57は、インタフェースI1型のop1_2 の機能を省略したコードを含むコンポーネントY用スタブ72を生成する。そのようにすることによって、コンポーネントコード生成部57は、コードサイズの小さいコンポーネントY用スタブ72を生成する。   Further, the component code generation unit 57 generates the component Y stub 72 including the function of the interface I1 type op1_1 based on the component function analysis information 56. That is, since the function of the interface I1 type op1_2 is not used in the component Y stub 72, the component code generation unit 57 generates the component Y stub 72 including the code in which the function of the interface I1 type op1_2 is omitted. By doing so, the component code generator 57 generates the component Y stub 72 having a small code size.

なお、本実施の形態では、コンポーネントY92は他のコンポーネントに提供する機能をもたないので、コンポーネントコード生成部57は、コンポーネントY92に対応するスケルトンを生成しない。   In the present embodiment, since the component Y92 does not have a function to be provided to other components, the component code generation unit 57 does not generate a skeleton corresponding to the component Y92.

以上のように、本実施の形態によれば、IDLコンパイラ5は、コンポーネント定義6にもとづいて、各コンポーネントが必要とするIDL定義を解析して、各コンポーネントが使用するIDL型を抽出する。また、IDLコンパイラ5は、抽出したIDL型で提供される機能のうち必要な機能と不要な機能とを解析することによって、コンポーネントが使用しないコードを含まないスタブやスケルトンを生成する。従って、コンポーネントに不要なデータ型や機能を含まない軽量なスタブやスケルトンを自動生成することができる。   As described above, according to the present embodiment, the IDL compiler 5 analyzes the IDL definition required by each component based on the component definition 6 and extracts the IDL type used by each component. The IDL compiler 5 generates a stub or skeleton that does not include code that is not used by the component by analyzing a necessary function and an unnecessary function among the functions provided in the extracted IDL type. Therefore, lightweight stubs and skeletons that do not contain unnecessary data types and functions can be automatically generated.

特に、本実施の形態によれば、コンポーネントの機能や構成を予め予測できる組み込み機器等において、組み込みアプリケーションソフトウェアのコンポーネントに不要な機能を含まない軽量なスタブやスケルトンを自動生成することができる。従って、組み込み機器ソフトウェア向けのスタブやスケルトンを生成するIDLコンパイラを実装する用途に適用することができる。   In particular, according to the present embodiment, it is possible to automatically generate a lightweight stub or skeleton that does not include an unnecessary function in a component of the embedded application software in an embedded device or the like that can predict the function and configuration of the component in advance. Therefore, the present invention can be applied to a purpose of mounting an IDL compiler that generates a stub or skeleton for embedded device software.

また、本実施の形態によれば、IDLコンパイラ5は、1つのIDL定義2にもとづいて、複数のコンポーネント用のスタブやスケルトンを自動生成する。従って、各コンポーネント用にIDL定義2を分割して使用する場合と比較して、IDL定義2を容易に管理することができる。   Further, according to the present embodiment, the IDL compiler 5 automatically generates stubs and skeletons for a plurality of components based on one IDL definition 2. Therefore, the IDL definition 2 can be easily managed as compared with the case where the IDL definition 2 is divided and used for each component.

本発明は、IDL定義データをコンパイルしてスタブやスケルトンを生成するIDLコンパイラに適用できる。特に、本発明を用いることによって、コンポーネントに不要なデータ型や機能を含まない軽量なスタブやスケルトンを自動生成することができる。また、組み込み機器ソフトウェア向けのスタブやスケルトンを生成するIDLコンパイラを実装する用途に適用することができる。   The present invention can be applied to an IDL compiler that compiles IDL definition data and generates stubs and skeletons. In particular, by using the present invention, lightweight stubs and skeletons that do not include unnecessary data types and functions in components can be automatically generated. Further, the present invention can be applied to an application for mounting an IDL compiler that generates a stub or skeleton for embedded device software.

本発明によるIDLコンパイラの構成の一例を示す説明図である。It is explanatory drawing which shows an example of a structure of the IDL compiler by this invention. CORBA技術を利用したアプリケーションソフトウェアの一例を示す説明図である。It is explanatory drawing which shows an example of the application software using a CORBA technique. 図2に示すアプリケーションソフトウェア9全体で用いられるIDL型のIDL定義2の例を示す説明図である。It is explanatory drawing which shows the example of the IDL type IDL definition 2 used with the application software 9 whole shown in FIG. 図2に示す各コンポーネント91,92で用いられる機能のコンポーネント定義6の例を示す説明図である。It is explanatory drawing which shows the example of the component definition 6 of the function used by each component 91,92 shown in FIG. 図2に示す各コンポーネント91,92で用いられるスタブ及びスケルトンを生成する場合のIDLコンパイラ5の具体的な構成の一例を示すブロック図である。FIG. 3 is a block diagram showing an example of a specific configuration of an IDL compiler 5 when generating stubs and skeletons used in components 91 and 92 shown in FIG. 2. IDLコンパイラ5が実行するIDLコンパイル手順の処理の一例を示す流れ図である。It is a flowchart which shows an example of the process of the IDL compilation procedure which IDL compiler 5 performs. IDL定義解析手順の処理の一例を示す流れ図である。It is a flowchart which shows an example of a process of an IDL definition analysis procedure. コンポーネント定義解析手順の処理の一例を示す流れ図である。It is a flowchart which shows an example of a process of a component definition analysis procedure. コンポーネント機能解析手順の処理の一例を示す流れ図である。It is a flowchart which shows an example of a process of a component function analysis procedure. コンポーネントコード生成手順の処理の一例を示す流れ図である。It is a flowchart which shows an example of a process of a component code production | generation procedure. 従来のIDLコンパイラの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the conventional IDL compiler.

符号の説明Explanation of symbols

2 IDL定義
5 IDLコンパイラ
6 コンポーネント定義
7 コンポーネント用スタブ
8 コンポーネント用スケルトン
51 IDL定義解析部
52 IDL定義解析情報
53 コンポーネント定義解析部
54 コンポーネント定義解析情報
55 コンポーネント機能解析部
56 コンポーネント機能解析情報
57 コンポーネントコード生成部
71 コンポーネントX用スタブ
72 コンポーネントY用スタブ
81 コンポーネントX用スケルトン
2 IDL Definition 5 IDL Compiler 6 Component Definition 7 Component Stub 8 Component Skeleton 51 IDL Definition Analysis Unit 52 IDL Definition Analysis Information 53 Component Definition Analysis Unit 54 Component Definition Analysis Information 55 Component Function Analysis Unit 56 Component Function Analysis Information 57 Component Code Generating Unit 71 Stub for Component X 72 Stub for Component Y 81 Skeleton for Component X

Claims (10)

ソフトウェアで用いられるインタフェースの定義を示すインタフェース定義データにもとづいて、スタブ又はスケルトンを生成するIDLコンパイル装置であって、
前記ソフトウェアに含まれるコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力するコンポーネント定義入力手段と、
前記コンポーネント定義入力手段が入力したコンポーネント定義データにもとづいて、前記インタフェース定義データで定義されるインタフェースのうち、コンポーネントで用いられる機能に対応するインタフェースを抽出するインタフェース抽出手段と、
前記インタフェース抽出手段が抽出したインタフェースに対応するコードを生成し、前記生成したコードを含むスタブ又はスケルトンを生成するコード生成手段と
を備えたことを特徴とするIDLコンパイル装置。
An IDL compiling device that generates a stub or a skeleton based on interface definition data indicating a definition of an interface used in software,
Component definition input means for inputting component definition data indicating the definition of functions used in the components included in the software;
Based on the component definition data input by the component definition input means, an interface extraction means for extracting an interface corresponding to a function used in the component among the interfaces defined by the interface definition data;
An IDL compiling device comprising: code generation means for generating code corresponding to the interface extracted by the interface extraction means and generating a stub or skeleton including the generated code.
コンポーネント定義入力手段は、ソフトウェアに含まれる複数のコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力し、
インタフェース抽出手段は、前記コンポーネント定義データにもとづいて、コンポーネントで用いられる機能に対応するインタフェースをコンポーネントごとに抽出し、
コード生成手段は、前記インタフェース抽出手段が抽出したインタフェースに対応するコードを含むスタブ又はスケルトンをコンポーネントごとに生成する
請求項1記載のIDLコンパイル装置。
The component definition input means inputs component definition data indicating the definition of functions used in a plurality of components included in the software,
The interface extracting means extracts, for each component, an interface corresponding to a function used in the component based on the component definition data.
The IDL compiling device according to claim 1, wherein the code generation unit generates a stub or a skeleton including a code corresponding to the interface extracted by the interface extraction unit for each component.
コンポーネント定義入力手段が入力したコンポーネント定義データの内容を解析し、前記解析結果を含むコンポーネント定義解析データを生成するコンポーネント定義解析手段を備え、
インタフェース抽出手段は、前記コンポーネント定義解析手段が生成したコンポーネント定義解析データにもとづいて、コンポーネントで用いられる機能に対応するインタフェースを抽出する
請求項1又は請求項2記載のIDLコンパイル装置。
Component definition analysis means for analyzing the contents of the component definition data input by the component definition input means and generating component definition analysis data including the analysis results;
The IDL compiling device according to claim 1, wherein the interface extraction unit extracts an interface corresponding to a function used in the component based on the component definition analysis data generated by the component definition analysis unit.
インタフェース定義データを入力するインタフェース定義入力手段と、
前記インタフェース入力手段が入力したインタフェース定義データの内容を解析し、前記解析結果を含むインタフェース定義解析データを生成するインタフェース定義解析手段とを備え、
インタフェース抽出手段は、前記インタフェース定義解析手段が生成したインタフェース定義解析データにもとづいて、コンポーネントで用いられる機能に対応するインタフェースを抽出する
請求項3記載のIDLコンパイル装置。
Interface definition input means for inputting interface definition data;
Analyzing the contents of the interface definition data input by the interface input means, and comprising interface definition analysis means for generating interface definition analysis data including the analysis results,
The IDL compiling device according to claim 3, wherein the interface extraction unit extracts an interface corresponding to a function used in a component based on the interface definition analysis data generated by the interface definition analysis unit.
インタフェース抽出手段は、コンポーネント定義解析手段が生成したコンポーネント定義解析データ、及びインタフェース定義解析手段が生成したインタフェース定義解析データにもとづいて、コンポーネントで用いられる機能を解析し、前記解析結果を含むコンポーネント機能解析データを生成し、
コード生成手段は、前記インタフェース抽出手段が生成したコンポーネント機能解析データにもとづいて、前記コンポーネントで用いられる機能に対応するコードを生成する
請求項4記載のIDLコンパイル装置。
The interface extraction unit analyzes the function used in the component based on the component definition analysis data generated by the component definition analysis unit and the interface definition analysis data generated by the interface definition analysis unit, and the component function analysis including the analysis result Generate data,
The IDL compiling device according to claim 4, wherein the code generation unit generates a code corresponding to a function used in the component based on the component function analysis data generated by the interface extraction unit.
コード生成手段は、
インタフェース抽出手段が生成したコンポーネント機能解析データにもとづいて、処理対象のコンポーネントが当該コンポーネントとは別のコンポーネントの機能を利用するか否かを判断し、
前記処理対象のコンポーネントとは別のコンポーネントの機能を利用すると判断すると、前記処理対象のコンポーネントとは別のコンポーネントの機能に対応するコードを含むスタブを生成する
請求項5記載のIDLコンパイル装置。
Code generation means
Based on the component function analysis data generated by the interface extraction means, determine whether the component to be processed uses the function of a component different from the component,
The IDL compiling device according to claim 5, wherein if it is determined that a function of a component different from the processing target component is used, a stub including a code corresponding to a function of a component different from the processing target component is generated.
コード生成手段は、
インタフェース抽出手段が生成したコンポーネント機能解析データにもとづいて、処理対象のコンポーネントが当該コンポーネントとは別のコンポーネントに利用させる機能をもつか否かを判断し、
前記処理対象のコンポーネントとは別のコンポーネントに利用させる機能をもつと判断すると、前記処理対象のコンポーネントとは別のコンポーネントに利用させる機能に対応するコードを含むスケルトンを生成する
請求項5又は請求項6記載のIDLコンパイル装置。
Code generation means
Based on the component function analysis data generated by the interface extraction means, determine whether the component to be processed has a function to be used by a component different from the component,
The skeleton including a code corresponding to a function used by a component different from the processing target component is generated when it is determined that the component has a function used by a component different from the processing target component. 6. The IDL compiling device according to 6.
ソフトウェアで用いられるインタフェースの定義を示すインタフェース定義データにもとづいて、スタブ又はスケルトンを生成するIDLコンパイル方法であって、
前記ソフトウェアに含まれるコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力するコンポーネント定義入力ステップと、
前記入力したコンポーネント定義データにもとづいて、前記インタフェース定義データで定義されるインタフェースのうち、コンポーネントで用いられる機能に対応するインタフェースを抽出するインタフェース抽出ステップと、
前記抽出したインタフェースに対応するコードを生成し、前記生成したコードを含むスタブ又はスケルトンを生成するコード生成ステップと
を含むことを特徴とするIDLコンパイル方法。
An IDL compiling method for generating a stub or a skeleton based on interface definition data indicating a definition of an interface used in software,
A component definition input step for inputting component definition data indicating a definition of a function used in a component included in the software;
An interface extraction step for extracting an interface corresponding to a function used in a component from the interfaces defined in the interface definition data based on the input component definition data;
A code generation step of generating a code corresponding to the extracted interface and generating a stub or a skeleton including the generated code.
コンポーネント定義入力ステップで、ソフトウェアに含まれる複数のコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力し、
インタフェース抽出ステップで、前記コンポーネント定義データにもとづいて、コンポーネントで用いられる機能に対応するインタフェースをコンポーネントごとに抽出し、
コード生成ステップで、前記抽出したインタフェースに対応するコードを含むスタブ又はスケルトンをコンポーネントごとに生成する
請求項8記載のIDLコンパイル方法。
In the component definition input step, input component definition data indicating the definition of functions used by multiple components included in the software.
In the interface extraction step, an interface corresponding to the function used in the component is extracted for each component based on the component definition data.
The IDL compiling method according to claim 8, wherein a stub or a skeleton including a code corresponding to the extracted interface is generated for each component in the code generation step.
ソフトウェアで用いられるインタフェースの定義を示すインタフェース定義データにもとづいて、スタブ又はスケルトンを生成するIDLコンパイラであって、
コンピュータに、
前記ソフトウェアに含まれるコンポーネントで用いられる機能の定義を示すコンポーネント定義データを入力する処理と、
前記入力したコンポーネント定義データにもとづいて、前記インタフェース定義データで定義されるインタフェースのうち、コンポーネントで用いられる機能に対応するインタフェースを抽出する処理と、
前記抽出したインタフェースに対応するコードを生成し、前記生成したコードを含むスタブ又はスケルトンを生成する処理と
を実行させるためのIDLコンパイラ。
An IDL compiler that generates stubs or skeletons based on interface definition data indicating interface definitions used in software,
On the computer,
A process of inputting component definition data indicating a definition of a function used in a component included in the software;
Based on the input component definition data, a process of extracting an interface corresponding to a function used in the component from the interfaces defined by the interface definition data;
An IDL compiler for generating a code corresponding to the extracted interface and generating a stub or skeleton including the generated code.
JP2004225847A 2004-08-02 2004-08-02 IDL compiling device, IDL compiling method, and IDL compiler Expired - Fee Related JP4371000B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004225847A JP4371000B2 (en) 2004-08-02 2004-08-02 IDL compiling device, IDL compiling method, and IDL compiler

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004225847A JP4371000B2 (en) 2004-08-02 2004-08-02 IDL compiling device, IDL compiling method, and IDL compiler

Publications (2)

Publication Number Publication Date
JP2006048236A true JP2006048236A (en) 2006-02-16
JP4371000B2 JP4371000B2 (en) 2009-11-25

Family

ID=36026733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004225847A Expired - Fee Related JP4371000B2 (en) 2004-08-02 2004-08-02 IDL compiling device, IDL compiling method, and IDL compiler

Country Status (1)

Country Link
JP (1) JP4371000B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146383A (en) * 2006-12-11 2008-06-26 Nec Corp Compilation device, method, and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146383A (en) * 2006-12-11 2008-06-26 Nec Corp Compilation device, method, and program

Also Published As

Publication number Publication date
JP4371000B2 (en) 2009-11-25

Similar Documents

Publication Publication Date Title
KR100661393B1 (en) Web site management system and method applying web programming environment
JP5679989B2 (en) Debug pipeline
JPH08202545A (en) Object-oriented system and method for generation of target language code
US7917899B2 (en) Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus
US10269087B2 (en) Language translation using preprocessor macros
CN108595171B (en) Object model generation method, device, equipment and storage medium
JP2007141173A (en) Compiling system, debug system and program development system
CN111427583A (en) Component compiling method and device, electronic equipment and computer readable storage medium
KR101826828B1 (en) System and method for managing log data
JP2008276735A (en) Program code converter and program code conversion method
JP2008165342A (en) Source code creating method, device and program
JPH08263299A (en) Method for converting program
JP2009230677A (en) Property generation system and property verification system
JP4371000B2 (en) IDL compiling device, IDL compiling method, and IDL compiler
JP7260150B2 (en) WEBSITE DESIGN SUPPORT DEVICE, WEBSITE DESIGN SUPPORT METHOD, AND PROGRAM
JP6175306B2 (en) Control program dividing apparatus, control program dividing method and recording medium therefor
JPH11296359A (en) Program development support tool
JP2004133630A (en) Programming method, program conversion apparatus, program and storage medium
Di Martino et al. Automatic dynamic data structures recognition to support the migration of applications to the cloud
JP2006277560A (en) Software development support device, design document generation program and design document generating method
JP2009217720A (en) Program generating device and program generating method
JP2007114934A (en) Compiler system
JP2006146731A (en) Program, storage medium, assembler device, compiler device, simulator device and emulator device
Sidou et al. A platform for data handling, analysis and evaluation of environmental engineering issues and simulation control
JP2004246924A (en) Application generator development support device and application generator development support method

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20051121

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20051121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080624

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090811

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090824

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees