JP2001296996A - Automatic generating device of component and expressing method - Google Patents

Automatic generating device of component and expressing method

Info

Publication number
JP2001296996A
JP2001296996A JP2000115885A JP2000115885A JP2001296996A JP 2001296996 A JP2001296996 A JP 2001296996A JP 2000115885 A JP2000115885 A JP 2000115885A JP 2000115885 A JP2000115885 A JP 2000115885A JP 2001296996 A JP2001296996 A JP 2001296996A
Authority
JP
Japan
Prior art keywords
environment
component
programming language
api
definition
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
JP2000115885A
Other languages
Japanese (ja)
Other versions
JP3562435B2 (en
Inventor
Naota Inamoto
直太 稲本
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 JP2000115885A priority Critical patent/JP3562435B2/en
Publication of JP2001296996A publication Critical patent/JP2001296996A/en
Application granted granted Critical
Publication of JP3562435B2 publication Critical patent/JP3562435B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To obtain the automatic generating device of a component by which a once-developed software component can be reused at a source level. SOLUTION: By using data held in the respective files of an environment independent component (2), an environment dependent component (3), an application environment (4), a component for a specific environment (5), a basic description rule for the specific environment (6) and a meta-program for customizing (7), the operation of a program automatically generating processing is controlled by a program automatically generating engine 1 to construct a prescribed component target environment source file 8 for operating a once-generated component in a new environment. Concerning environment independent component definition, reusing is possible as it is and concerning the environment dependent component, the whole application can be generated by only writing the part in addition in the case it corresponds to a new programming language environment.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、コンポーネントの
自動生成装置および表現方法に関し、特に、一度開発さ
れたコンポーネントの再利用化を図ったコンポーネント
の自動生成装置および表現方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an automatic component generating apparatus and an expression method, and more particularly to an automatic component generating apparatus and an expression method for reusing a component once developed.

【0002】[0002]

【従来の技術】従来、コンポーネントの自動生成装置お
よび表現方法は、例えば、一度作成したコンポーネント
を異なる環境で再利用することを目的とし、そのための
手段としてプログラム自動生成装置の技術分野に適用さ
れる。
2. Description of the Related Art Conventionally, an automatic component generation apparatus and an expression method are intended, for example, to reuse a component created once in a different environment, and to that end, it is applied to the technical field of an automatic program generation apparatus. .

【0003】従来のソフトウェア開発では、まずシステ
ムを構成する各コンポーネントがどのプログラミング言
語環境(プラットホーム、OS、言語、実装方式、通信
方式、使用するブラックボックスのコンポーネント等)
で開発するかを決め、各コンポーネントのソースコード
を、そのOS上の、その言語の、その実装方式で、人手
で作成する。また、一度作成したコードを再利用するた
めに、プログラム自動生成装置や変換装置が使われるこ
とがある。
In the conventional software development, first, each component constituting a system is composed of any programming language environment (platform, OS, language, mounting method, communication method, black box component to be used, etc.).
Then, the source code of each component is manually created in the OS, the language, and the mounting method. Further, in order to reuse a code once created, an automatic program generation device or a conversion device may be used.

【0004】[0004]

【発明が解決しようとする課題】しかしながら、上記の
従来技術では、その装置自体をたくさんのプログラミン
グ言語環境に対応させることは非常に困難であり現実的
でなく、下記のような問題点を伴う。
However, in the above-mentioned prior art, it is very difficult and impractical to make the device itself compatible with many programming language environments, and there are the following problems.

【0005】第1に、一度開発されたコンポーネントの
再利用が困難であるということである。その理由は、一
度開発されたソフトウェアコンポーネントを他の環境で
動かそうとする場合は、ほとんど全ての部分に対してソ
ースコードを人手で書き換えなければならない。また、
初めにかけたコストと同じかそれ以上のコストをかけな
ければ、同機能を持つ他の環境で動作するソフトウェア
コンポーネントを実現できない。
[0005] First, it is difficult to reuse components that have been developed once. The reason is that if you want to run a software component once developed in another environment, you have to manually rewrite the source code for almost all parts. Also,
Without a cost that is equal to or higher than the initial cost, a software component that operates in another environment with the same function cannot be realized.

【0006】第2に、コンポーネントをプログラム自動
生成装置を使って、同じソースコードから異なるプログ
ラミング言語環境に対応するソースコードを自動生成す
る場合、プログラム自動生成装置自体をたくさんのプロ
グラミング言語環境に対応させるには、コストが非常に
かかり現実的ではないということである。その理由は、
プログラム自動生成装置自体が特定のプログラミング言
語環境に依存してしまい、他のプログラミング言語環境
に対応するためには、プログラム自動生成装置自体の再
利用が困難である。
Second, when components are automatically generated from the same source code using a program automatic generation device to automatically generate source codes corresponding to different programming language environments, the program automatic generation device itself is adapted to many programming language environments. Is very costly and impractical. The reason is,
The automatic program generation device itself depends on a specific programming language environment, and it is difficult to reuse the automatic program generation device itself in order to cope with another programming language environment.

【0007】本発明は、一度開発したソフトウェアコン
ポーネントをソースレベルで再利用し、そのコンポーネ
ントを他の環境、例えば、他のプラットホーム、他のO
S、他の言語、他の実装方式、他の通信方式、他のブラ
ックボックスのコンポーネント使用で動かす時のコスト
を削減できる、コンポーネントの自動生成装置および表
現方法を提供することを目的とする。
The present invention reuses software components that have been developed once at the source level, and uses the components in other environments, for example, other platforms, other OSs.
It is an object of the present invention to provide a component automatic generation apparatus and an expression method capable of reducing costs when operating by using S, another language, another implementation method, another communication method, and another black box component.

【0008】さらに詳述すれば、本発明は、その手段と
して、コンポーネントを本来プログラミング言語環境に
依存しない業務ロジックの部分とプログラミング言語環
境に依存する部分を分けて作成するコンポーネントの表
現方式と、そこから複数のターゲットプログラミング言
語環境でのコンポーネントのソースコードを自動生成す
るプログラム自動生成装置を、実現しやすい形で提供す
ることにある。
More specifically, the present invention provides, as a means, a component expression method for separately creating a component of business logic which does not originally depend on a programming language environment and a component which depends on a programming language environment. It is an object of the present invention to provide an automatic program generation device for automatically generating source codes of components in a plurality of target programming language environments from a target program language environment.

【0009】[0009]

【課題を解決するための手段】かかる目的を達成するた
め、請求項1に記載の発明のコンポーネントの自動生成
装置は、環境非依存コンポーネント定義を保持する環境
非依存コンポーネント定義ファイルと、環境依存コンポ
ーネント定義を保持する環境依存コンポーネント定義フ
ァイルと、アプリケーション環境定義を保持するアプリ
ケーション環境定義ファイルと、特定環境用コンポーネ
ント定義テンプレートを保持する特定環境用コンポーネ
ント定義テンプレートファイルと、特定環境用基本的記
述ルールを保持する特定環境用基本的記述ルールファイ
ルと、カスタマイズ用メタプログラムを保持するカスタ
マイズ用メタプログラムファイルと、各ファイルに保持
されているデータを用いてプログラム自動生成処理の動
作を制御するプログラム自動生成装置エンジンとを有し
て構成され、一度作成されたコンポーネントを新たな環
境で動作させる所定のコンポーネントターゲット環境ソ
ースを構築することを特徴としている。
To achieve the above object, an automatic component generation apparatus according to the present invention includes an environment-independent component definition file for holding environment-independent component definitions, and an environment-independent component definition file. An environment-dependent component definition file that holds the definition, an application environment definition file that holds the application environment definition, a component definition template file for the specific environment that holds the component definition template for the specific environment, and a basic description rule for the specific environment A basic description rule file for a specific environment to be created, a customization metaprogram file that holds a customization metaprogram, and a program that controls the operation of the program automatic generation process using the data held in each file. Is configured to have a ram automatic generation system engines, it is characterized by constructing a predetermined component target environment sources for operating the components created once the new environment.

【0010】また、上記のプログラム自動生成装置エン
ジンは、内部データとして各コンポーネントのターゲッ
ト環境用のソースコードを生成するアプリケーション生
成手段と、ターゲットプログラミング言語環境に対応し
たAPIとこのAPIの中身を内部データに生成するコ
ンポーネント生成手段と、APIの中身を生成するため
の設定を行い内部データに生成するAPI内容生成手段
と、生成ソースコードのイメージを内部データに生成す
るBODY生成手段とを有するとよい。
[0010] The program automatic generating device engine includes an application generating means for generating a source code for a target environment of each component as internal data, an API corresponding to a target programming language environment, and the contents of the API as internal data. It is preferable to include a component generation unit that generates the contents of the API, an API content generation unit that performs settings for generating the contents of the API and generates the internal data, and a BODY generation unit that generates an image of the generated source code in the internal data.

【0011】さらに、アプリケーション生成手段は、環
境非依存コンポーネント定義ファイルと環境依存コンポ
ーネント定義ファイルおよびアプリケーション環境定義
ファイルを読み込んで、各コンポーネントのターゲット
環境用のソースコードを生成し、コンポーネント生成手
段は、ソースコードが生成されるコンポーネントについ
て、このコンポーネントに対応する特定環境用コンポー
ネント定義テンプレートを読み込み内部データに反映さ
せ、コンポーネントの各抽象的APIに対してAPI内
容生成手段を適用し、ターゲットプログラミング言語環
境に対応したAPIとその中身を内部データに生成し、
上位コンポーネントがコンポーネントを使う場合に必要
な上位コンポーネント用のコードを内部データに生成
し、プログラム自動生成装置のコア部分が特定プログラ
ミング言語環境に依存しないものになっており、特定プ
ログラミング言語環境に依存する部分はプログラム自動
生成装置に後付けするとよい。
Further, the application generation means reads the environment-independent component definition file, the environment-dependent component definition file, and the application environment definition file, and generates source code for a target environment of each component. For the component for which code is generated, the component definition template for the specific environment corresponding to this component is read and reflected in the internal data, API content generation means is applied to each abstract API of the component, and the target programming language environment is supported. Generated API and its contents in internal data,
Generates the code for the higher-level component necessary for the higher-level component to use the component in the internal data, and the core part of the automatic program generation device does not depend on the specific programming language environment, and depends on the specific programming language environment The part may be added to the automatic program generation device.

【0012】上記のAPI内容生成手段は、ターゲット
プログラミング言語環境に対応した前記APIと中身を
生成するための設定を行い、BODY生成手段を適用し
て内部データを生成し、BODY生成手段は、抽象的A
PIで切り出された単位でコンポーネントの持つ機能の
中身を定義するBODYがプログラミング言語環境依存
の場合には、指定されたプログラミング言語環境に一致
するBODYを選んで前記メタプログラムを実行し、B
ODYがプログラミング言語環境非依存の場合には、使
用している抽象的APIの部分をこの抽象的APIのB
ODYで置き換えて再帰的に前記BODY生成手段を繰
り返し実行し、内部データに生成するとよい。
[0012] The above-mentioned API content generation means performs settings for generating the API and the contents corresponding to the target programming language environment, generates internal data by applying the BODY generation means, and executes the BODY generation means. Target A
If the BODY that defines the contents of the function of the component in units of PI is dependent on the programming language environment, select the BODY that matches the specified programming language environment, execute the metaprogram, and execute B
If ODY is independent of the programming language environment, the part of the abstract API used is
It is preferable that the BODY generating means is recursively executed repeatedly by replacing with ODY to generate internal data.

【0013】請求項7に記載の発明のコンポーネントの
自動生成方法は、環境非依存コンポーネント定義と、環
境依存コンポーネント定義と、アプリケーション環境定
義と、特定環境用コンポーネント定義テンプレートと、
特定環境用基本的記述ルールと、カスタマイズ用メタプ
ログラムとを保持し、各保持されているデータを用いて
プログラム自動生成処理の動作を制御し、一度作成され
たコンポーネントを新たな環境で動作させる場合に、そ
れに関わる環境非依存コンポーネントに変更を加えず、
この環境依存コンポーネントとプログラム自動生成装置
に後付けする新たなプログラミング言語環境に対応する
記述を追加し、既成のコンポーネントの新たなプログラ
ミング言語環境のソースファイルを自動生成することを
特徴としている。
According to a seventh aspect of the present invention, there is provided an automatic component generation method, comprising: an environment-independent component definition; an environment-dependent component definition; an application environment definition; a component definition template for a specific environment;
When the basic description rules for the specific environment and the metaprogram for customization are retained, the operation of the automatic program generation process is controlled using the retained data, and the component created once is operated in the new environment. Without changing the environment-independent components involved,
It is characterized by adding a description corresponding to this environment-dependent component and a new programming language environment to be added later to the automatic program generation device, and automatically generating a source file of a new programming language environment for an existing component.

【0014】また、上記の環境非依存コンポーネントと
は、各BODYが抽象的APIだけを使用しているもの
であり、環境依存コンポーネントとは、各BODY中に
特定のプログラミング言語環境ではどのようなネイティ
ブコードを書くかを記述してあるものであり、プログラ
ム自動生成処理は、APIの中身を生成するための設定
を行い内部データに生成し、ターゲットプログラミング
言語環境に対応したこのAPIとそのAPIの中身を内
部データに生成し、内部データとして各コンポーネント
のターゲット環境用のソースコードを生成し、生成ソー
スコードのイメージを内部データに生成する工程を有す
るとよい。
The above environment-independent component means that each BODY uses only an abstract API, and the environment-dependent component means what native language in a specific programming language environment is included in each BODY. This is a description of whether to write code. In the automatic program generation process, the settings for generating the contents of the API are generated and generated as internal data, and this API corresponding to the target programming language environment and the contents of the API are generated. May be generated as internal data, a source code for a target environment of each component may be generated as the internal data, and an image of the generated source code may be generated as the internal data.

【0015】[0015]

【発明の実施の形態】次に、添付図面を参照して本発明
によるコンポーネントの自動生成装置および表現方法の
実施の形態を詳細に説明する。図1から図21を参照す
ると、本発明のコンポーネントの自動生成装置および表
現方法の一実施形態が示されている。
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing an embodiment of an automatic component generating apparatus and an expression method according to the present invention; Referring to FIGS. 1 to 21, there is shown an embodiment of an automatic component generation apparatus and an expression method according to the present invention.

【0016】図1は、本実施形態のコンポーネントの自
動生成装置の構成例を示し、また、図2は、図1中のプ
ログラム自動生成装置エンジン1の構成例を示すブロッ
ク図である。
FIG. 1 is a block diagram showing an example of the configuration of an automatic component generation apparatus according to the present embodiment, and FIG. 2 is a block diagram showing an example of the configuration of an automatic program generation engine 1 in FIG.

【0017】上記の図1を参照すると、本発明の第1の
実施形態であるコンポーネントの自動生成装置は、環境
非依存コンポーネント定義を保持する同ファイル群2、
・・、2と、環境依存コンポーネント定義を保持する同フ
ァイル群3、・・、3と、アプリケーション環境定義を保
持する同ファイル4と、特定環境用コンポーネント定義
テンプレートを保持する同ファイル群5、・・、5と、特
定環境用基本的記述ルールを保持する同ファイル群6、
・・、6と、カスタマイズ用メタプログラムを保持する同
ファイル群7、・・、7と、プログラム自動生成装置のコ
ア部分でありプログラム自動生成処理の処理動作を制御
するプログラム自動生成装置エンジン1とから構成され
る。本構成のコンポーネントの自動生成装置により、コ
ンポーネントターゲット環境ソースが構築されて同ファ
イル群8、・・、8へ保持される。
Referring to FIG. 1, the component automatic generation apparatus according to the first embodiment of the present invention includes a file group 2 for storing environment-independent component definitions.
2, the same file group 3 holding environment-dependent component definitions, the same file group 4 holding application environment definitions, and the same file group 5 holding specific environment component definition templates, etc.・ 5, and the same file group 6 which holds basic description rules for specific environment,
6, a file group 7 for holding a customizing meta-program, a program automatic generation device engine 1 which is a core part of the program automatic generation device and controls the processing operation of the program automatic generation process. Consists of The component target environment source is constructed by the component automatic generation apparatus of this configuration, and is stored in the same file group 8,.

【0018】図2を参照すると、プログラム自動生成装
置エンジン1は、アプリケーション生成手段11、コン
ポーネント生成手段12、API内容生成手段13、B
ODY生成手段14を有して構成される。これらの手段
は、それぞれ次のように動作する。なお、API(Appl
ication Programming Interface )とは、一般的には、
OSやDBMS(データベース管理システム)等の基本
ソフトウェアをプログラム中から使うための関数セット
のこと、およびアプリケーションプログラムを作成する
ときに使用するコンポーネントが持つ関数セットを指
す。
Referring to FIG. 2, the automatic program generation device engine 1 includes an application generation unit 11, a component generation unit 12, an API content generation unit 13,
ODY generation means 14 is provided. Each of these means operates as follows. The API (Appl
ication Programming Interface) is generally
A function set for using basic software such as an OS and a DBMS (database management system) from a program, and a function set of a component used when creating an application program.

【0019】アプリケーション生成手段11は、環境非
依存と依存のコンポーネント定義ファイル群2、3およ
び環境定義ファイル4を読み込んで内部データにし、コ
ンポーネント生成手段12を適用し、このコンポーネン
ト生成手段12で生成される生成ソースコードを表す内
部データから、実際の各コンポーネントのターゲット環
境用のソースコード8、・・、8を生成する。
The application generating means 11 reads the component definition files 2 and 3 which are environment independent and dependent, and the environment definition file 4 and makes them internal data, applies the component generating means 12, and generates the data by the component generating means 12. From the internal data representing the generated source code, actual source code 8,... 8 for the target environment of each component is generated.

【0020】コンポーネント生成手段12は、実際にソ
ースコード8、・・、8が生成されるコンポーネントにつ
いて、そのコンポーネントに対応する特定環境用コンポ
ーネント定義テンプレート5を読み込み、内部データに
反映させ、そのコンポーネントの各抽象的APIに対し
てAPI内容生成手段13を適用し、ターゲットプログ
ラミング言語環境に対応したAPIと、その中身を内部
データに生成する。また、上位コンポーネントがそのコ
ンポーネントを使う場合に必要な上位コンポーネント用
のコードを、内部データに生成する。
The component generation means 12 reads the specific environment component definition template 5 corresponding to the component for which the source code 8,..., 8 is actually generated, reflects the component definition in the internal data, and The API content generation means 13 is applied to each abstract API to generate an API corresponding to the target programming language environment and its contents as internal data. Also, a code for a higher-level component necessary when the higher-level component uses the component is generated in internal data.

【0021】API内容生成手段13は、ターゲットプ
ログラミング言語環境に対応したAPIとその中身を生
成することの設定を行い、BODY生成手段14を適用
して、これらを内部データに生成する。
The API content generation means 13 makes settings for generating APIs corresponding to the target programming language environment and the contents thereof, and applies the BODY generation means 14 to generate these into internal data.

【0022】BODY生成手段14は、そのBODYが
プログラミング言語環境依存の場合には、指定されたプ
ログラミング言語環境に一致するBODYを選んでその
メタプログラムを実行し、そのBODYがプログラミン
グ言語環境非依存の場合には、使用している抽象的AP
Iの部分をその抽象的APIのBODYで置き換えて再
帰的にBODY生成手段14を繰り返し実行し、実際に
生成ソースコードのイメージを内部データに生成する。
If the BODY depends on the programming language environment, the BODY generating means 14 selects a BODY that matches the designated programming language environment and executes the metaprogram. If so, the abstract AP used
The I portion is replaced by the abstract API BODY, and the BODY generating means 14 is repeatedly executed recursively to actually generate an image of the generated source code in the internal data.

【0023】なお、メタプログラムとは、抽象的API
とBODYで表現されたコンポーネントの記述からソー
スコードを自動生成する場合に、その自動生成の方法の
一部をコンポーネントまたは抽象的API単位に切り出
したものであり、自動生成装置のコア部分に変更を加え
ることなく自動生成の方法を変更してカスタマイズ可能
な形にするものである。
The metaprogram is an abstract API.
When the source code is automatically generated from the description of the component expressed by the following expression and BODY, a part of the automatic generation method is cut out in units of components or abstract APIs, and the change is made to the core part of the automatic generation device. It changes the method of automatic generation without adding it so that it can be customized.

【0024】環境非依存コンポーネントとは、その各B
ODYが抽象的APIだけを使用しているものを意味す
る。また、環境依存コンポーネントとは、その各BOD
Y中に、特定のプログラミング言語環境ではどのような
ネイティブコードを書くかを記述してあるものを意味す
る。
The environment-independent component is defined by each B
ODY means that only the abstract API is used. In addition, the environment-dependent component refers to each BOD
In Y, what means what native code is written in a specific programming language environment is described.

【0025】(動作)次に、図1、図2の構成ブロック
図及び図3、図4、図5、図6、図7、図8のフローチ
ャートを参照して、全体の動作例について詳細に説明す
る。
(Operation) Next, referring to the block diagrams of FIGS. 1 and 2 and the flowcharts of FIGS. 3, 4, 5, 6, 7, and 8, an example of the entire operation will be described in detail. explain.

【0026】まず、図3において、アプリケーション生
成手段11の動作手順を説明する。コンポーネント定義
ファイル群2、3に保持された定義データとアプリケー
ション環境定義ファイル4に保持された環境定義とを読
み込み、内部データを作成する(ステップA1)。次
に、アプリケーション環境定義ファイル4でトップにな
っているトップのコンポーネントについて、コンポーネ
ント生成手段12を適用する(ステップA2)。さら
に、マクロでない各コンポーネントについて、内部デー
タからターゲットソースファイルを作成する(ステップ
A3)。
First, the operation procedure of the application generating means 11 will be described with reference to FIG. The definition data held in the component definition file groups 2 and 3 and the environment definition held in the application environment definition file 4 are read, and internal data is created (step A1). Next, the component generation unit 12 is applied to the top component that is the top component in the application environment definition file 4 (step A2). Further, for each component that is not a macro, a target source file is created from the internal data (step A3).

【0027】次に、図4において、コンポーネント生成
手段12の動作手順を説明する。コンポーネント生成手
段12は、作成中または作成済みのコンポーネントか?
(チェックJ1)、マクロコンポーネントか? (チェッ
クJ2)、現在作成中のコンポーネントのテンプレート
中に環境にマッチする部分があるか否か? (チェックJ
3)を実行する。
Next, the operation procedure of the component generation means 12 will be described with reference to FIG. Is the component generation means 12 a component being created or a component already created?
(Check J1), is it a macro component? (Check J2), is there a part that matches the environment in the template of the component currently being created? (Check J
Execute 3).

【0028】これらのチェックJ1〜J3を通過した、
そのコンポーネントが従う特定環境用コンポーネント定
義テンプレートファイル5を読み込み、テンプレート中
のそのコンポーネントのアプリケーション環境定義ファ
イル4で指定されたプログラミング言語環境にマッチす
る部分を、内部データに反映させる(ステップB1)。
次に、そのコンポーネントが使用している全てのコンポ
ーネントについて、コンポーネント生成手段12を再帰
的に適用する(ステップB2)。次に、そのコンポーネ
ントの全ての抽象的APIについて、API内容生成手
段13を適用する(ステップB3)。そのコンポーネン
トに付随しているコンポーネントメタプログラムを実行
する(ステップB4)。
After passing these checks J1 to J3,
The component definition template file 5 for the specific environment followed by the component is read, and the part of the template that matches the programming language environment specified in the application environment definition file 4 is reflected in the internal data (step B1).
Next, the component generation unit 12 is recursively applied to all components used by the component (step B2). Next, the API content generation unit 13 is applied to all the abstract APIs of the component (step B3). The component meta-program attached to the component is executed (step B4).

【0029】次に、図5において、API内容生成手段
13の動作手順を説明する。API内容生成手段13で
は、着目している抽象APIの実際のAPIとその中身
を生成することを内部データに記し(ステップC1)、
その抽象的APIの特定プログラミング言語環境でのA
PIと、その内容を生成する設定とを行う。その後、そ
の抽象的APIのBODYについてBODY生成手段1
4を適用する(ステップC2)。
Next, the operation procedure of the API content generation means 13 will be described with reference to FIG. The API content generation means 13 describes in the internal data that the actual API of the abstract API of interest and the content thereof are to be generated (step C1).
A of the abstract API in a specific programming language environment
A PI and settings for generating its contents are made. Then, the BODY generation means 1 for the BODY of the abstract API
4 is applied (step C2).

【0030】次に、図6において、BODY生成手段1
4の動作手順を説明する。BODY生成手段14では、
まず着目中のBODYがプログラミング言語環境に依存
するものか依存しないものかをチェックし(K1)、プ
ログラミング言語環境に依存するものであった場合(各
プログラミング言語環境でどう書くかのネイティブコー
ドが書いてある場合)には(K2/YES)、BODY
の中からアプリケーション環境定義で指定されるプログ
ラミング言語環境のものを取り出し、それを新しいBO
DYとし(D1)、次に、置き換えられたBODYのA
PIメタプログラムを実行し、これによって生成コード
の一部分を内部データに作成する(ステップD2)。
Next, referring to FIG.
The operation procedure of No. 4 will be described. In the BODY generating means 14,
First, it is checked whether the BODY under consideration depends on the programming language environment or not (K1). If the BODY depends on the programming language environment (the native code of how to write in each programming language environment is written) (K2 / YES), BODY
Of the programming language environment specified by the application environment definition from the
DY (D1), and then A of the replaced BODY
The PI metaprogram is executed, and a part of the generated code is created in the internal data (step D2).

【0031】また、BODY生成手段14において、着
目中のBODYがプログラミング言語環境に依存しない
ものであった場合(BODYが抽象的APIだけで書か
れている場合)は(K1/NO)、そのBODYをその
BODYが使っている抽象的APIのBODYで置き換
え、これにBODY生成手段を再帰的に適用し(ステッ
プD3)、最後に、初めに着目していたBODYのAP
Iメタプログラムを実行し、これによって生成コードの
一部分を内部データに作成する(ステップD4)。
In the BODY generating means 14, if the BODY of interest does not depend on the programming language environment (if BODY is written only with an abstract API) (K1 / NO), the BODY Is replaced with the BODY of the abstract API used by the BODY, and the BODY generating means is recursively applied to this (step D3).
The I metaprogram is executed, thereby creating a part of the generated code in the internal data (step D4).

【0032】上記の手順によれば、BODY生成手段1
4を再帰的に適用すること、およびAPIメタプログラ
ムの中から再帰的にBODY生成手段14を適用するこ
とにより、生成コードが次第に内部データに生成されて
いく。引数やAPIの対応付けは、実際にはAPIメタ
プログラム中で行われる。実行するメタプログラムから
戻る場所がAPI内容生成手段13である場合、そのメ
タプログラムがターゲットプログラミング言語環境での
APIを生成する。
According to the above procedure, the BODY generating means 1
4 is recursively applied, and the BODY generating means 14 is recursively applied from the API metaprogram, whereby the generated code is gradually generated in the internal data. The association of arguments and APIs is actually performed in the API metaprogram. When the place to return from the metaprogram to be executed is the API content generation unit 13, the metaprogram generates an API in the target programming language environment.

【0033】次に、API内容生成手段13からコンポ
ーネント生成手段12に戻ると、コンポーネントに付随
しているコンポーネントメタプログラムを実行する(図
4のステップB4)。
Next, when returning from the API content generation means 13 to the component generation means 12, the component metaprogram attached to the component is executed (step B4 in FIG. 4).

【0034】このコンポーネントメタプログラムは、上
位コンポーネントがそのコンポーネントを使う場合に必
要な上位コンポーネント用のコードを、内部データに生
成する。最後に、コンポーネント生成手段12からアプ
リケーション生成手段11に戻ると、ソースを生成する
各コンポーネントのターゲットソースのイメージが内部
データに出来上がっており、その内部データから各コン
ポーネントのターゲットプログラミング言語環境でのソ
ースコードファイルを生成する(図3のステップA
3)。
This component metaprogram generates, in internal data, a code for a higher-level component necessary when the higher-level component uses the component. Finally, when returning from the component generation means 12 to the application generation means 11, an image of a target source of each component for generating a source is completed in internal data, and the source code of each component in the target programming language environment is obtained from the internal data. Generate a file (Step A in FIG. 3)
3).

【0035】一度作成したアプリケーションを新たな環
境で動作させる場合、環境依存コンポーネント定義ファ
イル群3、・・、3と、プログラム自動生成装置エンジン
1に後付けする特定環境用コンポーネント定義テンプレ
ートファイル群5、・・、5と、特定環境用基本的記述ル
ールファイル群6、・・、6と、カスタマイズ用メタプロ
グラムファイル群7、・・、7に追加のファイルの記述を
行う。しかし、環境非依存コンポーネント定義ファイル
群2、・・、2の記載は変更しない。この条件において、
新たなプログラミング言語環境でのコンポーネントのタ
ーゲット環境ソースファイル群8、・・、8を生成する。
When the created application is operated in a new environment, a group of environment-dependent component definition files 3,..., And a group of component definition template files 5 for a specific environment to be added to the automatic program generator engine 1 are provided. .5, and a specific environment basic description rule file group 6,... 6, and a customization metaprogram file group 7,. However, the description of the environment-independent component definition file group 2,..., 2 is not changed. Under these conditions,
Generate target environment source files 8,... 8 for the components in the new programming language environment.

【0036】次に、本実施の形態の効果について説明す
る。本実施の形態では、コンポーネントの定義に関し
て、プログラム自動生成装置エンジン1への入力を環境
非依存コンポーネント定義ファイル2と環境依存コンポ
ーネント定義ファイル3を明確に分離するというように
構成されている。このため、プログラム自動生成装置側
が新たなプログラミング言語環境に対応し、アプリケー
ション環境定義を作成すれば、環境非依存コンポーネン
ト定義ファイル2に関してはそのまま再利用ができる。
環境非依存コンポーネントについては、新たなプログラ
ミング言語環境における記述部分が明確になっており、
プログラム自動生成装置エンジン1が新たなプログラミ
ング言語環境に対応すれば、その部分を書き加えるだけ
で、アプリケーション全体を作成することができる。
Next, effects of the present embodiment will be described. In the present embodiment, regarding the definition of components, the input to the automatic program generation engine 1 is configured so that the environment-independent component definition file 2 and the environment-dependent component definition file 3 are clearly separated. For this reason, if the automatic program generation device supports the new programming language environment and creates an application environment definition, the environment-independent component definition file 2 can be reused as it is.
Regarding environment-independent components, the description part in the new programming language environment is clear,
If the automatic program generator engine 1 is compatible with a new programming language environment, the entire application can be created simply by adding that part.

【0037】本実施の形態では、さらに、プログラム自
動生成装置を異なるプログラミング言語環境に対応させ
る場合、自動生成において異なるプログラミング言語環
境に対応するための部分を、特定環境用コンポーネント
定義テンプレート群5と特定環境用基本的記述ルールフ
ァイル群6とカスタマイズ用メタプログラム群7とし
て、プログラム自動生成装置エンジン1に後づけで追加
するというように構成されている。このため、プログラ
ム自動生成装置エンジン1をプログラミング言語環境に
依存しないものとすることができる。これにより、プロ
グラム自動生成装置エンジン1で既に対応したプログラ
ミング言語環境での自動生成機能に影響を与えることな
く、新たなプログラミング言語環境での自動生成機能を
実現することができる。
In the present embodiment, when the automatic program generation apparatus is adapted to a different programming language environment, a part for automatically generating a different programming language environment in the automatic generation is specified as a specific environment component definition template group 5. The basic description rule file group 6 for environment and the metaprogram group 7 for customization are configured to be added to the automatic program generation engine 1 afterwards. Therefore, the automatic program generation device engine 1 can be made independent of the programming language environment. Thereby, the automatic generation function in a new programming language environment can be realized without affecting the automatic generation function in a programming language environment already supported by the automatic program generation device engine 1.

【0038】次に、具体的な実施例を用いて本実施の形
態の動作を説明する。図8は、デフォルトAPIメタプ
ログラムの動作を示す流れ図であり、デフォルトで用意
するAPIメタプログラム(カスタマイズ用メタプログ
ラムの一種)の動作の流れを示している。また、図9
は、デフォルトで用意するコンポーネントメタプログラ
ム(カスタマイズ用メタプログラムの一種)の動作の流
れを示す。なお、図9、図10は、環境非依存コンポー
ネント定義ファイル2の構成例である。
Next, the operation of this embodiment will be described with reference to specific examples. FIG. 8 is a flowchart showing the operation of the default API metaprogram, and shows the flow of the operation of an API metaprogram (a type of customization metaprogram) prepared by default. FIG.
Shows the operation flow of the component metaprogram (a type of customization metaprogram) prepared by default. 9 and 10 show configuration examples of the environment-independent component definition file 2.

【0039】図11、図12は、環境依存コンポーネン
ト定義ファイル3の構成例である。図13は、アプリケ
ーション環境定義ファイル4の構成例である。図14、
図15は、プログラム自動生成装置エンジン1に後付け
された特定環境用コンポーネント定義テンプレートファ
イル5の構成例である。図16は、プログラム自動生成
装置エンジン1に後付けされた特定環境用基本的記述ル
ールファイル6の構成例である。
FIGS. 11 and 12 show examples of the configuration of the environment-dependent component definition file 3. FIG. FIG. 13 is a configuration example of the application environment definition file 4. FIG.
FIG. 15 is a configuration example of the component definition template file 5 for a specific environment, which is added to the automatic program generation device engine 1. FIG. 16 shows an example of the configuration of the basic description rule file 6 for a specific environment attached to the automatic program generation engine 1.

【0040】まず、アプリケーション生成手段11のス
テップA1を実行した時点で、図10の環境非依存コン
ポーネント定義(MyWindow) は、図17に示されるよう
な内部データになり、図11の環境依存コンポーネント
定義ファイル(MyButton)3は、図18に示されるよう
な内部データになる(図3のステップA1)。
First, when step A1 of the application generating means 11 is executed, the environment-independent component definition (MyWindow) in FIG. 10 becomes internal data as shown in FIG. 17, and the environment-dependent component definition in FIG. The file (MyButton) 3 becomes internal data as shown in FIG. 18 (step A1 in FIG. 3).

【0041】次に、コンポーネント生成手段12におけ
るステップB1で、各コンポーネントの特定環境用テン
プレート定義(図14、図15)から各コンポーネント
のプログラミング言語環境(アプリケーション環境定義
で指定されるもので、図13ではコンポーネントのプロ
グラミング言語環境はJavaと指定される)に一致する部
分を抜き出し、アプリケーション生成手段11のステッ
プA1を実行してできる生成コードを表す内部データに
これを反映させると(図4のステップB1)、図19に
示されるような内部データになる。
Next, in step B1 in the component generation means 12, the specific environment template definition (FIG. 14 and FIG. 15) of each component is designated by the programming language environment (application environment definition of each component, and FIG. 13). Then, a portion corresponding to the component programming language environment is designated as Java) is extracted, and this is reflected in internal data representing a generated code generated by executing step A1 of the application generating means 11 (step B1 in FIG. 4). ) And internal data as shown in FIG.

【0042】これは、図9、図10の環境非依存コンポ
ーネント定義(MyApp,MyWindow)と、図11の環境依存
コンポーネント定義(MyButton)とに対応する生成ソー
スの情報を持つが、その構成部分はいくつかが未定義の
ままか変更が加わる形になっている。
This has generation source information corresponding to the environment-independent component definitions (MyApp, MyWindow) in FIGS. 9 and 10 and the environment-dependent component definition (MyButton) in FIG. Some are left undefined or modified.

【0043】次に、コンポーネント生成手段12のステ
ップB3で、図10で定義されるコンポーネント(MyWi
ndow)についてそのコンポーネントが持つ抽象的API
についてAPI内容生成手段13を適用する。
Next, in step B3 of the component generation means 12, the component (MyWi
ndow) Abstract API of the component
The API content generation means 13 is applied to

【0044】まず。図10で定義されるコンポーネント
(MyWindow)の1番目のAPI、“$this の子部品を親
を $parentとして作成する。”について、API内容生
成手段13を適用した結果、内部データがどのようにな
るかを説明する。API内容生成手段13で、この抽象
的APIの特定プログラミング言語環境でのAPIとそ
の内容を生成するための設定を行い(図5のステップC
1)、その抽象的APIのBODY部分についてBOD
Y生成手段14を適用する(図5のステップC2)。
First, As for the first API of the component (MyWindow) defined in FIG. 10, “Create a child part of $ this with $ parent as the parent.” As a result of applying the API content generation unit 13, how the internal data is changed I will explain. The API content generation means 13 sets the abstract API in a specific programming language environment and a setting for generating the content (step C in FIG. 5).
1) BOD for BODY part of the abstract API
The Y generation means 14 is applied (Step C2 in FIG. 5).

【0045】着目中のBODY部分は、“MyButton $bt
n を、親を $parentで作成する”というプログラミング
言語環境に依存しないものなので、このBODYを、抽
象的API“MyButton $btn を、親を $parentで作成す
る”のBODYで置き換え、そのBODYに関して再び
BODY生成手段14を適用する(図6のステップD
3)。このBODY生成手段14の中で着目中のBOD
Yは、コンポーネントMyButtonの抽象的API“$this
を、親を $parentで作成する”のBODYであり、これ
はプログラミング言語環境依存なので、作成中のコンポ
ーネントの指定されたプログラミング言語環境(Java)
に一致する部分(図11のenv Javaで括られた部分)で
置き換える(図6のステップD1)。
The BODY part of interest is “MyButton $ bt
n is not dependent on the programming language environment of "Create parent with $ parent", so replace this BODY with the BODY of abstract API "Create MyButton $ btn with parent of $ parent". The BODY generating means 14 is applied again (step D in FIG. 6).
3). The BOD being watched in the BODY generating means 14
Y is the abstract API “$ this
Is the BODY of "Create parent with $ parent". Since this depends on the programming language environment, the specified programming language environment (Java)
(The part enclosed by env Java in FIG. 11) (step D1 in FIG. 6).

【0046】次に、このBODYのメタプログラム(図
8に示されるデフォルトAPIメタプログラム)を実行
する(図6のステップD2)。このメタプログラムの実
行によって、引数の$this と$parent で渡ってくるBO
DYに対してBODY生成手段14を適用し、引数がタ
ーゲットプログラミング言語環境でそれがどのように表
現されるかを得、さらに図11中のソース1、ソース2
を、生成コードを表す内部データに入れる。しかし、こ
の段階ではまだ上位コンポーネント(MyWindow)との関
連付けが行われておらず、未定義の部分も含んでいる。
Next, the BODY metaprogram (the default API metaprogram shown in FIG. 8) is executed (step D2 in FIG. 6). By this metaprogram execution, the BO that is passed by the arguments $ this and $ parent
Applying BODY generation means 14 to DY to obtain how the arguments are represented in the target programming language environment, and furthermore, source 1 and source 2 in FIG.
Into the internal data representing the generated code. However, at this stage, the association with the higher-level component (MyWindow) has not been made yet, and an undefined portion is included.

【0047】このBODY生成手段14から戻ると、図
6のステップD3の後に戻り、初めに着目していたBO
DYのメタプログラム(図8に示されるデフォルトAP
Iメタプログラム)を実行する(図6のステップD
4)。このメタプログラムによって、生成コードの内部
データでソース1、ソース2とそれを使用する上位コン
ポーネント(MyWindow)との関連付けが行われ、コンポ
ーネントMyWindowに関する生成コードを表す内部データ
は、図19で示されるものから図20で示されるものに
変わる。斜線で表した部分が変化した部分である。
When returning from the BODY generating means 14, the process returns after step D3 in FIG.
DY metaprogram (default AP shown in FIG. 8)
I metaprogram) (step D in FIG. 6)
4). According to this metaprogram, the internal data of the generated code associates the source 1 and the source 2 with the higher-level component (MyWindow) using the source, and the internal data representing the generated code for the component MyWindow is as shown in FIG. From FIG. 20 to FIG. The shaded portion is the changed portion.

【0048】図10で定義されるコンポーネント(MyWi
ndow)の2番目のAPI、3番目のAPIについて同様
のことを繰り返し、コンポーネントMyWindowに関する生
成コードを表す内部データは、図20で示されるものか
ら図21で示されるものに変わる。斜線で表した部分が
変化した部分である。この時点で、コンポーネントMyWi
ndowの生成コードを表す内部データからの未定義部分は
なくなる。
The components defined in FIG. 10 (MyWi
The same is repeated for the second API and the third API of (ndow), and the internal data representing the generated code related to the component MyWindow changes from that shown in FIG. 20 to that shown in FIG. The shaded portion is the changed portion. At this point, the component MyWi
There is no undefined part from the internal data representing the generated code of ndow.

【0049】コンポーネントMyWindowについてのコンポ
ーネント生成手段12から戻ると、次に、コンポーネン
トMyApp についてコンポーネント生成手段12のステッ
プA3を行い、MyWindowの場合と同様にして、MyApp の
生成ソースを表す内部データを作成する。MyApp では、
1番目の抽象的API“main”のBODY中で、“MyWi
ndow $wnd を作成する”という抽象的APIを用いてお
り、これは特定環境用基本的記述ルールで定義されてい
るが、本発明の方式では、これを仮想の(マクロの)環
境依存コンポーネント定義と同じように処理し、最終的
に、MyWindowについての生成コードを表す内部データを
同じように作成する。
When returning from the component generation means 12 for the component MyWindow, next, step A3 of the component generation means 12 is performed for the component MyApp, and internal data representing the generation source of MyApp is generated in the same manner as in the case of MyWindow. . With MyApp,
In the BODY of the first abstract API "main", "MyWi
ndow $ wnd is created, which is defined in the basic description rules for a specific environment. In the method of the present invention, this is defined as a virtual (macro) environment-dependent component definition. Finally, the internal data representing the generated code for MyWindow is created in the same way.

【0050】トップのコンポーネントであるMyApp につ
いてのコンポーネント生成手段12から戻ると、次に、
アプリケーション生成手段のステップA3を実行し、各
コンポーネントについて、内部データからターゲットプ
ログラミング言語環境でのソースファイルを作成する。
コンポーネントMyWindowの場合であれば、図21中のMy
Window.java というノードから、ループの無い有効グラ
フのノードを順にたどって、ソースの断片を順にファイ
ルに出力することによって、実際のソースコードファイ
ルが生成される。
Returning from the component generating means 12 for the top component MyApp,
Step A3 of the application generating means is executed, and for each component, a source file in a target programming language environment is created from internal data.
In the case of component MyWindow, My in Fig. 21
The actual source code file is generated by sequentially tracing the nodes of the effective graph without loops from the node called Window.java and outputting the source fragments to a file in order.

【0051】図13のアプリケーション環境定義では、
プログラミング言語環境を“Java(登録商標)”と
指定しているが、これを“C++, Window(登
録商標)s”に変えて異なるプログラミング言語環境で
このアプリケーションを動作させる場合、図11、図1
2の環境依存コンポーネント定義に、“C++, Windows”
の場合はどう書くかの記述を追加することと、図14、
図15の特定環境用コンポーネント定義テンプレートに
“C++, Windows”の場合の記述を追加することと、デフ
ォルトメタプログラムが“C++, Windows”に対応してい
ない場合はその場合のコードを追加することでアプリケ
ーションを構成する各コンポーネントの“C++, Window
s”のプログラミング言語環境でのソースファイルを自
動生成する。
In the application environment definition of FIG.
Although the programming language environment is designated as "Java (registered trademark)", when this application is operated in a different programming language environment by changing this to "C ++, Window (registered trademark) s", FIGS.
"C ++, Windows" in the environment-dependent component definition 2
In the case of, a description of how to write is added, and FIG.
By adding the description for “C ++, Windows” to the component definition template for the specific environment in FIG. 15, and by adding the code for that case if the default metaprogram does not support “C ++, Windows”. “C ++, Window” for each component that composes the application
Automatically generate source files in the s ”programming language environment.

【0052】(効果)第1の効果は、環境非依存コンポ
ーネント定義がそのコンポーネントが動作する環境が変
わってもそのまま再利用できることにある。その理由
は、プログラム自動生成装置を動かす、プログラミング
言語環境に対応したソースを生成するものにし、環境非
依存コンポーネント定義の変更なく、異なるプログラミ
ング言語環境でのターゲットソースを生成するためであ
る。
(Effect) The first effect is that the environment-independent component definition can be reused as it is even if the environment in which the component operates changes. The reason is to generate a source corresponding to a programming language environment that operates the automatic program generation device, and to generate a target source in a different programming language environment without changing the environment-independent component definition.

【0053】第2の効果は、コンポーネントを他の環境
で動かす場合、修正が容易になることである。その理由
は、環境依存コンポーネントについては既に記述してあ
る部分の変更の必要はなく、追加が必要なところは明確
になっていて、そこを追加することで十分である。ま
た、プログラム自動生成装置自体を、異なるプログラミ
ング言語環境に対応させるコストが、従来に比べ低いた
めである。
The second effect is that when the component is moved in another environment, the correction becomes easy. The reason for this is that there is no need to change the parts already described for environment-dependent components, and it is clear where they need to be added, and it is sufficient to add them. Also, this is because the cost of making the automatic program generation device itself compatible with different programming language environments is lower than before.

【0054】第3の効果は、プログラム自動生成装置を
従来に比べ、低いコストで多くのプログラミング言語環
境に対応させることができることにある。その理由は、
プログラム自動生成装置エンジンが、特定のプログラミ
ング言語環境に依存しないものになっており、プログラ
ミング言語環境に依存する部分は、特定環境用コンポー
ネント定義テンプレート群および特定環境用基本的記述
ルール群およびカスタマイズ用メタプログラム群として
役割を分離して、後付けで作成できるためである。
A third effect is that the automatic program generation apparatus can be adapted to many programming language environments at a lower cost as compared with the related art. The reason is,
The automatic program generator engine does not depend on a specific programming language environment. The parts that depend on the programming language environment include component definition templates for specific environments, basic description rules for specific environments, and meta-data for customization. This is because roles can be separated as programs and created later.

【0055】本発明は、一度開発したソフトウェアコン
ポーネントをソースレベルで再利用し、そのコンポーネ
ントを他の環境(他のプラットホーム、他のOS、他の
言語、他の実装方式、他の通信方式、他のブラックボッ
クスのコンポーネント使用)で動かす時の、コストを削
減できる構成を提供するものである。
According to the present invention, a software component developed once is reused at a source level, and the component is reused in another environment (another platform, another OS, another language, another mounting method, another communication method, another communication method, or the like). The use of a black box component) can provide a configuration that can reduce costs.

【0056】その手段として、コンポーネントを本来プ
ログラミング言語環境に依存しない業務ロジックの部分
と、プログラミング言語環境に依存する部分とを、分け
て作成するコンポーネントの表現方式と、そこから複数
のターゲットプログラミング言語環境でのコンポーネン
トのソースコードを自動生成するプログラム自動生成装
置を、実現しやすい形で提供することにある。
As means therefor, a component expression method in which a component of business logic which does not originally depend on a programming language environment and a portion which depends on a programming language environment are separately created, and a plurality of target programming language environments are created therefrom. It is an object of the present invention to provide an automatic program generation device for automatically generating a source code of a component in a simple form.

【0057】本発明におけるコンポーネントの表現形式
には2つの特徴がある。一つ目は、コンポーネントの定
義を抽象的API、BODY、メタプログラムの3つの
組み合わせの集合で表現することである。二つ目は、論
理的には存在するが実際のインスタンスは生成されない
仮想の(マクロの)コンポーネントの存在を許すことで
ある。
The representation format of the component according to the present invention has two features. First, the definition of a component is represented by a set of three combinations of an abstract API, BODY, and a metaprogram. The second is to allow the existence of virtual (macro) components that exist logically but do not create actual instances.

【0058】本発明のコンポーネント表現方式では、プ
ログラミング言語環境に依存しないコンポーネントの定
義は、各抽象的APIの中身を抽象的APIだけを用い
てBODYを記述したコンポーネント定義であり、プロ
グラミング言語環境に依存するコンポーネントの定義
は、各抽象的APIの中身をどのプログラミング言語環
境の時にはどう書くかを記述したコンポーネントの定義
である。プログラミング言語環境に依存するコンポーネ
ント定義のBODYは、ほぼターゲットプログラミング
言語環境でのネイティブコードを記述し、変数の関係付
け等で修正が必要なところは、BODYに書かれたネイ
ティブコードを修正するメタプログラムを記述する。
In the component expression method of the present invention, the definition of a component that does not depend on the programming language environment is a component definition in which the contents of each abstract API are described in BODY using only the abstract API. The definition of a component to be written is a definition of a component that describes how to write the contents of each abstract API in which programming language environment. The BODY of the component definition that depends on the programming language environment almost describes the native code in the target programming language environment, and the part that needs to be modified by associating variables is the meta program that modifies the native code written in the BODY. Describe.

【0059】これらのコンポーネントの定義から、ター
ゲットプログラミング言語環境用のソースコードを自動
生成するプログラム自動生成装置を提供するので、プロ
グラミング言語環境に依存しないコンポーネント定義に
ついては、プログラミング言語環境が変わってもターゲ
ットプログラミング言語環境用のコードに書き換える必
要はなく、環境非依存コンポーネントの再利用性が向上
する。プログラミング言語環境に依存するコンポーネン
トについては、プログラミング言語環境が変わった場
合、書き加えなければならない場所が明確になってお
り、既に書いてある部分を書き直す必要はない。
An automatic program generation apparatus for automatically generating a source code for a target programming language environment from the definition of these components is provided. For a component definition independent of the programming language environment, even if the programming language environment changes, the target There is no need to rewrite the code for a programming language environment, and the reusability of environment-independent components is improved. For components that depend on the programming language environment, where the programming language environment changes, the places to be added are clear, and it is not necessary to rewrite the parts already written.

【0060】本発明のコンポーネント表現方式では、環
境依存コンポーネントを実体のない仮想のコンポーネン
トとすることにより、それが持つ抽象的APIは、メソ
ッドやイベントだけでなく、式やステートメントも表す
ことができる。これにより、各プログラミング言語環境
での基本的な記述ルールを環境依存コンポーネントとし
て扱うことができる。これにより、プログラム自動生成
装置のコア部分に、各プログラミング言語環境での基本
的な記述ルールを入れる必要がなく、プログラム自動生
成装置のコア部分をプログラミング言語環境非依存にす
ることができる。
In the component representation method of the present invention, by making the environment-dependent component a virtual component having no substance, the abstract API of the component can represent not only methods and events but also expressions and statements. As a result, basic description rules in each programming language environment can be treated as environment-dependent components. This eliminates the need to include basic description rules in each programming language environment in the core of the automatic program generation device, and makes the core of the automatic program generation device independent of the programming language environment.

【0061】各プログラミング言語環境では、どういう
構造のものが作成されるかを定義する部分を外後付けに
することにより、新たなプログラミング言語環境での自
動生成機能を以前に作成したプログラミング言語環境で
の自動生成機能に影響を与えることなく追加することが
できる。このようにして、異なるプログラミング言語環
境に対応したプログラム自動生成装置を実現するコスト
が削減される。
In each programming language environment, by automatically adding a part defining what kind of structure is created, an automatic generation function in a new programming language environment can be implemented in a previously created programming language environment. It can be added without affecting the automatic generation function. In this way, the cost for realizing an automatic program generation device corresponding to different programming language environments is reduced.

【0062】尚、上述の実施形態は本発明の好適な実施
の一例である。但し、これに限定されるものではなく、
本発明の要旨を逸脱しない範囲内において種々変形実施
が可能である。
The above embodiment is an example of a preferred embodiment of the present invention. However, it is not limited to this.
Various modifications can be made without departing from the spirit of the present invention.

【0063】[0063]

【発明の効果】以上の説明より明らかなように、本発明
のコンポーネントの自動生成装置および表現方法は、環
境非依存コンポーネント定義と、環境依存コンポーネン
ト定義と、アプリケーション環境定義と、特定環境用コ
ンポーネント定義テンプレートと、特定環境用基本的記
述ルールと、カスタマイズ用メタプログラムとを保持
し、各保持されているデータを用いてプログラム自動生
成処理の動作を制御し、一度作成されたコンポーネント
を新たな環境で動作させる場合に、それに関わる環境非
依存コンポーネントに変更を加えず、この環境依存コン
ポーネントとプログラム自動生成装置に後付けする新た
なプログラミング言語環境に対応する記述を追加し、既
成のコンポーネントの新たなプログラミング言語環境の
ソースファイルを自動生成する。
As is apparent from the above description, the automatic component generation apparatus and method of the present invention provide an environment-independent component definition, an environment-dependent component definition, an application environment definition, and a component definition for a specific environment. Holds templates, basic description rules for specific environments, and metaprograms for customization, controls the operation of program automatic generation processing using the stored data, and allows components created once to be used in a new environment. When operating, do not change the environment-independent components involved, add a description corresponding to this environment-dependent component and a new programming language environment to be added to the automatic program generation device, and add a new programming language for the existing components Environment source files Generated.

【0064】このため、プログラム自動生成装置側が新
たなプログラミング言語環境に対応し、アプリケーショ
ン環境定義を作成すれば、環境非依存コンポーネント定
義に関してはそのまま再利用ができる。環境依存コンポ
ーネントについては、新たなプログラミング言語環境に
おける記述部分が明確になっており、プログラム自動生
成装置が新たなプログラミング言語環境に対応すれば、
その部分を書き加えるだけで、アプリケーション全体を
作成することができる。
For this reason, if the automatic program generation device side supports a new programming language environment and creates an application environment definition, the environment-independent component definition can be reused as it is. Regarding environment-dependent components, the description part in the new programming language environment is clear, and if the automatic program generation device corresponds to the new programming language environment,
By simply adding that part, you can create the entire application.

【0065】さらに、プログラム自動生成装置エンジン
をプログラミング言語環境に依存しないものとすること
ができ、これにより、プログラム自動生成装置で既に対
応したプログラミング言語環境での自動生成機能に影響
を与えることなく、新たなプログラミング言語環境での
自動生成機能を実現することができる。
Further, the automatic program generation device engine can be made independent of the programming language environment, whereby the automatic generation function in the programming language environment already supported by the automatic program generation device is not affected. An automatic generation function in a new programming language environment can be realized.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明のコンポーネントの自動生成装置および
表現方法の実施形態の、構成例を示すブロック図であ
る。
FIG. 1 is a block diagram showing a configuration example of an embodiment of an automatic component generation device and an expression method according to the present invention.

【図2】図1中のプログラム自動生成装置エンジンの構
成例を示すブロック図である。
FIG. 2 is a block diagram showing a configuration example of an automatic program generation engine in FIG. 1;

【図3】アプリケーション生成手段の動作例を示す流れ
図である。
FIG. 3 is a flowchart illustrating an operation example of an application generation unit.

【図4】コンポーネント生成手段の動作例を示す流れ図
である。
FIG. 4 is a flowchart illustrating an operation example of a component generation unit.

【図5】API内容生成手段の動作例を示す流れ図であ
る。
FIG. 5 is a flowchart showing an operation example of an API content generation unit.

【図6】BODY生成手段における処理手順例を示すフ
ローチャートである。
FIG. 6 is a flowchart illustrating an example of a processing procedure in a BODY generation unit.

【図7】デフォルトコンポーネントメタプログラムの動
作を示す流れ図である。
FIG. 7 is a flowchart showing the operation of a default component metaprogram.

【図8】デフォルトAPIメタプログラムの動作を示す
流れ図である。
FIG. 8 is a flowchart showing the operation of a default API metaprogram.

【図9】環境非依存コンポーネント定義(MyApp )の構
成例を示している。
FIG. 9 shows a configuration example of an environment-independent component definition (MyApp).

【図10】環境非依存コンポーネント定義(MyWindow)
の構成例を示している。
[Figure 10] Environment-independent component definition (MyWindow)
Is shown.

【図11】環境依存コンポーネント定義(MyButton)の
構成例を示している。
FIG. 11 shows a configuration example of an environment-dependent component definition (MyButton).

【図12】環境依存コンポーネント定義(MyDialog)の
構成例を示している。
FIG. 12 illustrates a configuration example of an environment-dependent component definition (MyDialog).

【図13】アプリケーション環境定義の構成例を示して
いる。
FIG. 13 shows a configuration example of an application environment definition.

【図14】特定環境用コンポーネント定義テンプレート
(App )の構成例を示している。
FIG. 14 illustrates a configuration example of a component definition template (App) for a specific environment.

【図15】特定環境用コンポーネント定義テンプレート
(MainWindow)の構成例を示している。
FIG. 15 illustrates a configuration example of a component definition template for a specific environment (MainWindow).

【図16】特定環境用基本的記述ルール(DefaultRule
)の構成例を示している。
FIG. 16 shows a basic description rule for a specific environment (DefaultRule).
3) shows a configuration example.

【図17】読み取り[イメージ]後のコンポーネント定
義の内部データ(MyWindow)の構成例を示している。
FIG. 17 illustrates a configuration example of internal data (MyWindow) of a component definition after reading [image].

【図18】読み取り後のコンポーネント定義の内部デー
タ(MyButton)の構成例を示している。
FIG. 18 illustrates a configuration example of internal data (MyButton) of a component definition after reading.

【図19】読み込んだアプリケーション環境定義にMyAp
p とMyWindowについてコンポーネント定義テンプレート
の適用後の内部データの構成例を示している。
FIG. 19: MyAp is added to the read application environment definition
An example of the configuration of internal data after applying the component definition template for p and MyWindow is shown.

【図20】図19でMyWindow部分についてのMyWindowの
API−1を生成後の内部データの構成例を示してい
る。
FIG. 20 shows a configuration example of internal data after generation of API-1 of MyWindow for the MyWindow portion.

【図21】図20でMyWindow部分についてのMyWindowで
API−2、API−3を生成後の内部データの構成例
を示している。
FIG. 21 shows a configuration example of internal data after API-2 and API-3 are generated in MyWindow for the MyWindow part.

【符号の説明】[Explanation of symbols]

1 プログラム自動生成装置エンジン 2 環境非依存コンポーネント定義ファイル 3 環境依存コンポーネント定義ファイル 4 アプリケーション環境定義ファイル 5 特定環境用コンポーネント定義テンプレートファイ
ル 6 特定環境用基本的記述ルールファイル 7 カスタマイズ用メタプログラムファイル 8 コンポーネントターゲット環境ソースファイル 11 アプリケーション生成手段 12 コンポーネント生成手段 13 API内容生成手段 14 BODY生成手段
1 Automatic Program Generator Engine 2 Environment-independent component definition file 3 Environment-dependent component definition file 4 Application environment definition file 5 Component definition template file for specific environment 6 Basic description rule file for specific environment 7 Metaprogram file for customization 8 Component target Environment source file 11 Application generation means 12 Component generation means 13 API content generation means 14 BODY generation means

Claims (9)

【特許請求の範囲】[Claims] 【請求項1】 環境非依存コンポーネント定義を保持す
る環境非依存コンポーネント定義ファイルと、 環境依存コンポーネント定義を保持する環境依存コンポ
ーネント定義ファイルと、 アプリケーション環境定義を保持するアプリケーション
環境定義ファイルと、 特定環境用コンポーネント定義テンプレートを保持する
特定環境用コンポーネント定義テンプレートファイル
と、 特定環境用基本的記述ルールを保持する特定環境用基本
的記述ルールファイルと、 カスタマイズ用メタプログラムを保持するカスタマイズ
用メタプログラムファイルと、 前記各ファイルに保持されているデータを用いてプログ
ラム自動生成処理の動作を制御するプログラム自動生成
装置エンジンとを有して構成され、 一度作成されたコンポーネントを新たな環境で動作させ
る所定のコンポーネントターゲット環境ソースを構築す
ることを特徴とするコンポーネントの自動生成装置。
1. An environment-independent component definition file that holds an environment-independent component definition, an environment-dependent component definition file that holds an environment-dependent component definition, an application environment definition file that holds an application environment definition, A component definition template file for a specific environment holding a component definition template, a basic description rule file for a specific environment holding a basic description rule for a specific environment, a customization metaprogram file holding a customization metaprogram, A program automatic generation device engine for controlling the operation of the automatic program generation process using the data held in each file, and the components once created are stored in a new environment. Automatic generation system components, characterized in that to construct a given component target environment sources of operating.
【請求項2】 前記プログラム自動生成装置エンジン
は、 内部データとして各コンポーネントのターゲット環境用
のソースコードを生成するアプリケーション生成手段
と、 ターゲットプログラミング言語環境に対応したAPIと
該APIの中身を内部データに生成するコンポーネント
生成手段と、 前記APIの中身を生成するための設定を行い内部デー
タに生成するAPI内容生成手段と、 生成ソースコードのイメージを内部データに生成するB
ODY生成手段と、 を有して構成されたことを特徴とする請求項1に記載の
コンポーネントの自動生成装置。
2. The program automatic generation device engine includes: an application generation unit that generates, as internal data, a source code for a target environment of each component; an API corresponding to a target programming language environment; and contents of the API as internal data. Component generating means for generating, API content generating means for performing settings for generating the contents of the API and generating internal data, and B for generating an image of the generated source code as internal data
2. The automatic component generation apparatus according to claim 1, comprising: an ODY generation unit.
【請求項3】 前記アプリケーション生成手段は、環境
非依存コンポーネント定義ファイルと環境依存コンポー
ネント定義ファイルおよびアプリケーション環境定義フ
ァイルを読み込んで、前記各コンポーネントのターゲッ
ト環境用のソースコードを生成することを特徴とする請
求項2に記載のコンポーネントの自動生成装置。
3. The application generating means reads an environment-independent component definition file, an environment-dependent component definition file, and an application environment definition file, and generates source code for a target environment of each component. An automatic component generation device according to claim 2.
【請求項4】 前記コンポーネント生成手段は、 ソースコードが生成されるコンポーネントについて、該
コンポーネントに対応する特定環境用コンポーネント定
義テンプレートを読み込み内部データに反映させ、 前記コンポーネントの各抽象的APIに対して前記AP
I内容生成手段を適用し、ターゲットプログラミング言
語環境に対応したAPIとその中身を内部データに生成
し、 上位コンポーネントが前記コンポーネントを使う場合に
必要な上位コンポーネント用のコードを内部データに生
成し、 プログラム自動生成装置のコア部分が特定プログラミン
グ言語環境に依存しないものになっており、特定プログ
ラミング言語環境に依存する部分はプログラム自動生成
装置に後付けすることを特徴とする請求項2に記載のコ
ンポーネントの自動生成装置。
4. The component generation unit reads a component definition template for a specific environment corresponding to the component for which a source code is generated, reflects the template on internal data, AP
Applying the I content generation means, generating an API corresponding to the target programming language environment and its contents in internal data, generating a code for the upper component necessary for a higher component to use the component in the internal data, 3. The automatic component generation device according to claim 2, wherein a core portion of the automatic generation device does not depend on a specific programming language environment, and a portion that depends on the specific programming language environment is added to the program automatic generation device. Generator.
【請求項5】 前記API内容生成手段は、 ターゲットプログラミング言語環境に対応した前記AP
Iと中身を生成するための設定を行い、 前記BODY生成手段を適用して前記内部データを生成
する、 ことを特徴とする請求項2に記載のコンポーネントの自
動生成装置。
5. The API content generation unit includes: an API corresponding to a target programming language environment.
3. The automatic component generation apparatus according to claim 2, wherein a setting for generating I and contents is performed, and the internal data is generated by applying the BODY generation unit. 4.
【請求項6】 前記BODY生成手段は、 前記抽象的APIで切り出された単位で前記コンポーネ
ントの持つ機能の中身を定義するBODYがプログラミ
ング言語環境依存の場合には、指定されたプログラミン
グ言語環境に一致するBODYを選んで前記メタプログ
ラムを実行し、 前記BODYがプログラミング言語環境非依存の場合に
は、使用している抽象的APIの部分を該抽象的API
のBODYで置き換えて再帰的に前記BODY生成手段
を繰り返し実行し、 前記内部データに生成することを特徴とする請求項2に
記載のコンポーネントの自動生成装置。
6. The BODY generating means, if the BODY that defines the content of the function of the component in a unit extracted by the abstract API depends on a programming language environment, matches the specified programming language environment. And executing the metaprogram. If the BODY is independent of the programming language environment, replace the part of the abstract API used with the abstract API.
3. The automatic component generation apparatus according to claim 2, wherein the internal data is generated by repeatedly executing the BODY generation unit recursively by replacing with the BODY of the component.
【請求項7】 環境非依存コンポーネント定義と、環境
依存コンポーネント定義と、アプリケーション環境定義
と、特定環境用コンポーネント定義テンプレートと、特
定環境用基本的記述ルールと、カスタマイズ用メタプロ
グラムとを保持し、 前記各保持されているデータを用いてプログラム自動生
成処理の動作を制御し、 一度作成されたコンポーネントを新たな環境で動作させ
る場合に、それに関わる環境非依存コンポーネントに変
更を加えず、該環境依存コンポーネントとプログラム自
動生成装置に後付けする新たなプログラミング言語環境
に対応する記述を追加し、既成のコンポーネントの新た
なプログラミング言語環境のソースファイルを自動生成
することを特徴とするコンポーネントの自動生成方法。
7. An environment-independent component definition, an environment-dependent component definition, an application environment definition, a component definition template for a specific environment, a basic description rule for a specific environment, and a customization metaprogram, Using the stored data to control the operation of the program automatic generation process, when operating a component once created in a new environment, without changing the environment-independent component related to the environment-dependent component And a description corresponding to a new programming language environment to be added later to the program automatic generation device, and automatically generating a source file of a new programming language environment of an existing component.
【請求項8】 前記環境非依存コンポーネントとは、各
BODYが抽象的APIだけを使用しているものであ
り、 環境依存コンポーネントとは、各BODY中に特定のプ
ログラミング言語環境ではどのようなネイティブコード
を書くかを記述してあるものである、 ことを特徴とする請求項7に記載のコンポーネントの自
動生成方法。
8. The environment-independent component is one in which each BODY uses only an abstract API, and the environment-dependent component is any native code in a specific programming language environment in each BODY. The method for automatically generating a component according to claim 7, wherein whether or not to write is written.
【請求項9】 前記プログラム自動生成処理は、 APIの中身を生成するための設定を行い内部データに
生成し、 ターゲットプログラミング言語環境に対応した前記AP
Iと該前記APIの中身を内部データに生成し、 内部データとして各コンポーネントのターゲット環境用
のソースコードを生成し、 生成ソースコードのイメージを内部データに生成する工
程を有することを特徴とする請求項7または8に記載の
コンポーネントの自動生成方法。
9. The program automatic generation processing includes: setting for generating the contents of an API; generating internal data; and executing the AP corresponding to a target programming language environment.
Generating I and the contents of the API as internal data, generating source code for a target environment of each component as internal data, and generating an image of the generated source code as internal data. Item 9. The method for automatically generating a component according to Item 7 or 8.
JP2000115885A 2000-04-12 2000-04-12 Automatic component generator Expired - Fee Related JP3562435B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000115885A JP3562435B2 (en) 2000-04-12 2000-04-12 Automatic component generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000115885A JP3562435B2 (en) 2000-04-12 2000-04-12 Automatic component generator

Publications (2)

Publication Number Publication Date
JP2001296996A true JP2001296996A (en) 2001-10-26
JP3562435B2 JP3562435B2 (en) 2004-09-08

Family

ID=18627423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000115885A Expired - Fee Related JP3562435B2 (en) 2000-04-12 2000-04-12 Automatic component generator

Country Status (1)

Country Link
JP (1) JP3562435B2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086760A (en) * 2002-08-28 2004-03-18 Nec Corp Numerical calculation program generation system, numerical calculation program generation method, and numerical calculation program generation program
JP2005512188A (en) * 2001-12-06 2005-04-28 シリル Method and apparatus for automatic generation of geomatic applications
KR100496868B1 (en) * 2001-12-28 2005-06-22 한국전자통신연구원 Method and apparatus for design pattern based reengineering to generate EJB component legacy system through extracting design patterns
KR100512758B1 (en) * 2002-12-06 2005-09-07 한국전자통신연구원 Method for architecture-based reengineering using design patterns
JP2008225762A (en) * 2007-03-12 2008-09-25 Mitsubishi Electric Corp Library management system
JP2011154477A (en) * 2010-01-26 2011-08-11 Canon Inc Information processor, and information processing method
JP2014525622A (en) * 2011-08-31 2014-09-29 マイクロソフト コーポレーション Description of the operating system's native application programming interface using metadata
US9563487B2 (en) 2011-08-11 2017-02-07 Microsoft Technology Licensing, Llc. Runtime system
JP2017157180A (en) * 2016-03-01 2017-09-07 直太 稲本 Automatic software generation apparatus capable of executing reverse-engineering
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
JP7433097B2 (en) 2020-03-19 2024-02-19 三菱電機株式会社 Generation device, generation method, and generation program

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005512188A (en) * 2001-12-06 2005-04-28 シリル Method and apparatus for automatic generation of geomatic applications
KR100496868B1 (en) * 2001-12-28 2005-06-22 한국전자통신연구원 Method and apparatus for design pattern based reengineering to generate EJB component legacy system through extracting design patterns
JP2004086760A (en) * 2002-08-28 2004-03-18 Nec Corp Numerical calculation program generation system, numerical calculation program generation method, and numerical calculation program generation program
KR100512758B1 (en) * 2002-12-06 2005-09-07 한국전자통신연구원 Method for architecture-based reengineering using design patterns
JP2008225762A (en) * 2007-03-12 2008-09-25 Mitsubishi Electric Corp Library management system
JP2011154477A (en) * 2010-01-26 2011-08-11 Canon Inc Information processor, and information processing method
US9563487B2 (en) 2011-08-11 2017-02-07 Microsoft Technology Licensing, Llc. Runtime system
JP2014525622A (en) * 2011-08-31 2014-09-29 マイクロソフト コーポレーション Description of the operating system's native application programming interface using metadata
US10635504B2 (en) 2014-10-16 2020-04-28 Microsoft Technology Licensing, Llc API versioning independent of product releases
JP2017157180A (en) * 2016-03-01 2017-09-07 直太 稲本 Automatic software generation apparatus capable of executing reverse-engineering
JP7433097B2 (en) 2020-03-19 2024-02-19 三菱電機株式会社 Generation device, generation method, and generation program

Also Published As

Publication number Publication date
JP3562435B2 (en) 2004-09-08

Similar Documents

Publication Publication Date Title
KR101120815B1 (en) Method and apparatus for generating user interfaces based upon automation with full flexibility
US8196099B2 (en) Updating application design
US5915115A (en) Control system and method for direct execution of software application information models without code generation
US8291372B2 (en) Creating graphical models representing control flow of a program manipulating data resources
KR20020035567A (en) Object property meta model emulator for legacy data structures
JP2006107478A (en) Extensible flamework for designing work flow
JP2001344105A (en) Web application developing method, development support system, and memory medium storing program related to this method
US20050065953A1 (en) System and method for changing defined elements in a previously compiled program using a description file
JP2007122135A (en) Development support device, development support method and development support program
Freeman Essential TypeScript 5
JP3562435B2 (en) Automatic component generator
CN113553035A (en) Design and construction method of universal front-end UI component library
JP2011515755A (en) Development method and apparatus for reserved component container base software
CN114721647B (en) Object-oriented programming method based on codeless application development
JPH06348766A (en) Method and device for incorporating tool
Giachetti et al. Integration of domain-specific modelling languages and UML through UML profile extension mechanism.
Schröpfer et al. A Generic Projectional Editor for EMF Models.
JP4686117B2 (en) Source code conversion apparatus, source code conversion method, and program
Schröpfer et al. Integrating UML and ALF: An Approach to Overcome the Code Generation Dilemma in Model-Driven Software Engineering
Shulga et al. Developing a software system for automata-based code generation
KR100576941B1 (en) Metamodel-based model transformation apparatus
JP2001273125A (en) Method and system for automatically generating source program, and program recording medium therefor
EP2171578A1 (en) Programming model for modular development
Ali et al. Perspectives to promote modularity, reusability, and consistency in multi-language systems
JP2551935B2 (en) Graphical language processing method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040223

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: 20040511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040524

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees