Rule based system for synthesizing a program suited for a target system in response to an input target system specification
First Claim
Patent Images
1. An automatic program synthesizer for synthesizing a program suited for a target system in response to input of a system specification of the target system to be controlled by the program, comprising:
- a software part retrieval rule memory portion including a memory section for storing program synthesis rules which are divided into hierarchial groups for reducing the target system specification into simplified functions, and software part retrieval rules for searching for software parts which satisfy the simplified functions;
a software part memory portion for storing said software parts, including a program pattern defining a prototype program for customization to satisfy a given simplified function, a program pattern customizing knowledge base for customizing or changing the program pattern so that the program pattern satisfies the system specification, and a memory section for storing a knowledge base for defining an attribute of a variable in the program pattern;
software part retrieval means for obtaining the program synthesis rule from the system specification, and for searching for the software part, having a function requested by the software part retrieval rule, from the obtained program synthesis rule;
variable manager section including a variable name generating section for generating a name of a variable or constant used in the program in accordance with an attribute thereof, and a variable attribute memory section for storing a variable name and an attribute of the variable or constant; and
software part customizing means for defining an attribute of the variable according to a variable attribute definition in the software part searched for by said software part retrieval means, supplying the defined variable attribute to said variable manager section to obtain the variable name, and customizing or changing the program pattern in the software part in accordance with the obtained variable name and the knowledge base for customizing the program in the software part.
2 Assignments
0 Petitions
Accused Products
Abstract
An automatic program synthesizer receives a system specification and searches software parts suited to the specification. In order to obtain a function satisfying the system specification, the searched software parts are corrected or converted in accordance with a knowledge base for customizing a programming form stored therein.
-
Citations
10 Claims
-
1. An automatic program synthesizer for synthesizing a program suited for a target system in response to input of a system specification of the target system to be controlled by the program, comprising:
-
a software part retrieval rule memory portion including a memory section for storing program synthesis rules which are divided into hierarchial groups for reducing the target system specification into simplified functions, and software part retrieval rules for searching for software parts which satisfy the simplified functions; a software part memory portion for storing said software parts, including a program pattern defining a prototype program for customization to satisfy a given simplified function, a program pattern customizing knowledge base for customizing or changing the program pattern so that the program pattern satisfies the system specification, and a memory section for storing a knowledge base for defining an attribute of a variable in the program pattern; software part retrieval means for obtaining the program synthesis rule from the system specification, and for searching for the software part, having a function requested by the software part retrieval rule, from the obtained program synthesis rule; variable manager section including a variable name generating section for generating a name of a variable or constant used in the program in accordance with an attribute thereof, and a variable attribute memory section for storing a variable name and an attribute of the variable or constant; and software part customizing means for defining an attribute of the variable according to a variable attribute definition in the software part searched for by said software part retrieval means, supplying the defined variable attribute to said variable manager section to obtain the variable name, and customizing or changing the program pattern in the software part in accordance with the obtained variable name and the knowledge base for customizing the program in the software part.
-
-
2. A method of automatically synthesizing a program suited for a target system in response to input of a system specification of the target system to be controlled by the program, comprising the steps of:
-
obtaining a software part including a program pattern for realizing a function requested by the system specification of said target system, a program pattern customizing knowledge base for customizing or changing the program pattern so that the program pattern satisfies the system specification, and a knowledge base for defining an attribute of a variable in the program pattern;
obtaining a software part retrieval rule including program synthesis rules which are dividing into hierarchial groups for reducing the target system specification into simplified functions, and software part retrieval rules for searching for software parts which satisfy the simplified functions;
obtaining the program synthesis rule from the system specification; and
searching for a software part, having a function requested by the software part retrieval rule, from the obtained program synthesis rule;generating a name of a variable or constant used in the program in accordance with an attribute thereof, and storing the variable name and the attribute of the variable or constant; and defining an attribute of the variable according to a variable attribute definition in the searched software part, obtaining the variable name from the defined variable attribute, and customizing or changing the program pattern of the software part in accordance with the obtained variable name and the program pattern customizing knowledge base in the software part.
-
-
3. An automatic program synthesizer for synthesizing a program suited for a target system in response to input of a system specification of the target system to be controlled by the program, comprising:
-
program synthesis rule memory means for storing software synthesis rules which are divided into hierarchial groups for reducing the target system specification into simplified functions; software part retrieval rule memory means for storing software part retrieval rules which is used for searching for software parts which satisfy the simplified functions; program pattern memory means for storing a program pattern for customization to satisfy a given simplified function, the program pattern including a variable having a predetermined attribute; memory means for storing a program pattern customizing knowledge base for customizing or changing the program pattern so that the program pattern satisfies the system specification; memory means for storing a variable attribute definition in the program pattern; software part retrieval means for obtaining the program synthesis rule from the system specification, and for searching for a software part, having a function requested by the software part retrieval rule, from the obtained program synthesis rule; and program customizing means for defining an attribute of the variable according to the variable attribute definition in the software part retrieved by said software part retrieval means, obtaining a variable name from the defined variable attribute, and customizing or changing the program pattern in the software part in accordance with the obtained variable name and program pattern customizing knowledge base in the software part. - View Dependent Claims (4, 5, 6, 7)
-
-
8. An automatic program synthesizer for synthesizing a program suited for a target system in response to input of a system specification of the target system to be controlled by the program, comprising:
-
a software part retrieval rule memory portion including a memory section for storing program synthesis rules which are divided into hierarchial groups for reducing the target system specification into simplified functions, and software part retrieval rules for searching for software parts which satisfy the simplified function; a software part memory portion for storing said software parts, including a program pattern defining a prototype program for customization to satisfy a given simplified function, a program pattern customizing knowledge base for customizing or changing the program pattern so that the program pattern satisfies the system specification, and a memory section for storing a knowledge base for defining an attribute of a variable in the program pattern; software part retrieval means for obtaining the program synthesis rule from the system specification, and for searching for the software part, having a function requested by the software part retrieval rule, from the obtained program synthesis rule; variable manager section including a variable name generating section for generating a name of a variable or constant used in the program in accordance with an attribute thereof, and a variable attribute memory section for storing a variable name and an attribute of the variable or constant; software part customizing means for defining an attribute of the variable according to a variable attribute definition in the software part searched for by said software part retrieval means, for supplying the defined variable attribute to said variable manager section to obtain the variable name, and for customizing or changing the program pattern in the software part in accordance with the obtained variable name and the knowledge base for customizing the program in the software part; and intermediate memory means for storing each program synthesized by the automatic program synthesizer according to a defined variable attribute thereof, the software part customizing means also searching the intermediate memory means for the attribute of the variable defined by the software part customizing means.
-
-
9. A method of automatically synthesizing a program suited for a target system in response to input of a system specification of the target system to be controlled by the program, comprising the steps of:
-
obtaining a software part including a program pattern for realizing a function requested by a system specification of said system, a program pattern customizing knowledge base for customizing or changing the program pattern so that the program pattern satisfies the system specification, and a knowledge base for defining an attribute of a variable in the program pattern;
obtaining a software retrieval rule including program synthesis rules which are dividing into hierarchial groups for reducing the target system specification into simplified functions, and software part retrieval rules for searching for software parts which satisfy the simplified function;
obtaining the program synthesis rule from the system specification; and
searching for a software part, having a function requested by the software part retrieval rule, from the obtained program synthesis rule;generating a name of a variable or constant used in the program in accordance with an attribute thereof, and storing the variable name and the attribute of the variable or constant; defining an attribute of the variable according to a variable attribute definition in the searched software part, obtaining the variable name from the defined variable attribute, and customizing or changing the program pattern of the software part in accordance with the obtained variable name and the program pattern customizing knowledge base in the software part; storing each program synthesized according to a defined variable attribute thereof; and searching each program synthesized for the attribute of the variable according to the variable attribute definition.
-
-
10. An automatic program synthesizer for synthesizing a program suited for a target system in response to input of a system specification of the target system to be controlled by the program, comprising:
-
program synthesis rule memory means for storing software synthesis rules which are divided into hierarchial groups for reducing the target system specification into simplified functions; software part retrieval rule memory means for storing software part retrieval rules which is used for searching for software parts which satisfy the simplified functions; program pattern memory means for storing a program pattern for customization to satisfy the simplified function, the program pattern including a variable having a predetermined attribute; memory means for storing a program pattern customizing knowledge base for customizing or changing the program pattern so that the program pattern satisfies the system specification; memory means for storing a variable attribute definition in the program pattern; software part retrieval means for obtaining the program synthesis rule from the system specification, and for searching for a software part, having a function requested by the software part retrieval rule, from the obtained program synthesis rule; program customizing means for defining an attribute of the variable according to the variable attribute definition in the software part retrieved by said software part retrieval means, obtaining a variable name from the defined variable attribute, and customizing or changing the program pattern in the software part in accordance with the obtained variable name and program pattern customizing knowledge base in the software part; and intermediate memory means for storing each program synthesized by the automatic program synthesizer according to a defined variable attribute thereof, the program customizing means searching the intermediate memory means for the attribute of the variable defined by the program customizing means.
-
Specification