Methods and apparatus for declarative programming techniques in an object oriented environment
First Claim
1. A method for customizing functionality of an object in an object oriented software system, said method comprising the steps of:
- receiving an identification of at least one compiled object, wherein said compiled object comprises at least one method;
receiving one or more declarative statements to augment the functionality of said method of said compiled object, wherein a declarative statement comprises a constraint or requirement generally associated with said method of said compiled object;
generating a dynamic association between said one or more declarative statements and said method identified on said compiled object, wherein said dynamic association links said declarative statements to said method on said compiled object without re-compiling said object; and
executing said declarative statements such that when said method on said object is called, said one or more declarative statements, associated with said method, are executed in addition to said method.
2 Assignments
0 Petitions
Accused Products
Abstract
An object oriented software environment permits, through declarative programming techniques, customization of functionality of an object. The object oriented software environment includes a plurality of objects, wherein each object contains at least one method. A user of the object oriented software environment submits one or more declarative statements to augment the functionality of a method on an object. In response, the object oriented software environment associates the declarative statements to the method identified on the object such that when the method on the object is called, the declarative statements, associated with the object, are executed in addition to the methods on the object. The declarative programming technique permits augmenting the functionality of a method on an object with “rules.” In addition, two or more methods may be associated together to generate an event that propagates from one method to another method. The programming techniques disclosed also permit integration of declarative, compiled and scripting approaches to integrate three styles of applications program development.
-
Citations
17 Claims
-
1. A method for customizing functionality of an object in an object oriented software system, said method comprising the steps of:
-
receiving an identification of at least one compiled object, wherein said compiled object comprises at least one method;
receiving one or more declarative statements to augment the functionality of said method of said compiled object, wherein a declarative statement comprises a constraint or requirement generally associated with said method of said compiled object;
generating a dynamic association between said one or more declarative statements and said method identified on said compiled object, wherein said dynamic association links said declarative statements to said method on said compiled object without re-compiling said object; and
executing said declarative statements such that when said method on said object is called, said one or more declarative statements, associated with said method, are executed in addition to said method. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
associating said method to a second method; and
generating an event to fire from said method to said second method.
-
-
8. The method as set forth in claim 1, wherein the step of associating one or more declarative statements to a method on an object comprises the steps of:
-
redirecting said call to said method to a pinch-point operation;
determining, in said pinch-point operation, whether any declarative statements are associated with said method called; and
executing said one or declarative statements when any declarative statements are associated with said method called.
-
-
9. The method as set forth in claim 8, wherein said the step of redirecting said call to said method to a pinch-point operation comprises the step of redirecting said call to said method in an interface for said object that exposes said method.
-
10. The method as set forth in claim 8, wherein said pinch point operation comprises an optimization thunk implemented in assembly language.
-
11. A method for customizing functionality of objects in an object oriented environment, said method comprising the steps of:
-
storing a plurality of objects, each object comprising at least one method and an interface, said interface comprising a redirector;
storing a pinch-point operation;
receiving one or more declarative statements to augment the functionality of said method of said object;
receiving a call, via said interface, to execute said method;
redirecting, said call from said method to said pinch-point operation;
determining, from said pinch-point operation, whether said method on said object includes one or more declarative statements associated with said method; and
executing said one or more declarative statements if said declarative statements are associated with said method.
-
-
12. A method for customizing functionality of objects in an object oriented environment, said method comprising the steps of:
-
storing a repository of compiled objects, wherein a compiled object comprises at least one method and said compiled objects being defined by one or more object type systems;
providing to a user a means to specify one or more declarative statements;
dynamically associating said one or more declarative statements to at least one method of an object, wherein said dynamic association links said one or more declarative statements to said method on said compiled object without re-compiling said object so as to re-direct calls from said method to said declarative statements; and
executing said one or more declarative statements when said method on said object is called.
-
-
13. A method for integrating declarative, compiled and scripting approaches for developing application programs in an object oriented environment, the method comprising the steps of:
-
implementing an abstract specification for an extended definition type system that comprises members to enforce rules through the type system;
receiving declarative rules to implement functionality for application program development by adding one or more declarative rules to at least one method;
dynamically associating said declarative rules to at least one method of an object, wherein said dynamic association links said one or more declarative statements to said method on said compiled object without re-compiling said object so as to re-direct calls from said method to said declarative statements;
enforcing the declarative rules as rules in the type system;
receiving complied code developed from an object-oriented language and compiled to include the extended definitions for the type system, wherein the code comprises a plurality of types;
providing access to the types of the compiled code for application development;
receiving scripts developed from a four generation language (4GL) to specify functionality for application program development; and
enforcing the scripts as rules in the type system.
-
-
14. A computer readable medium comprising a plurality of instructions, which when executed by a computer, causes the computer to perform the steps of:
-
receiving an identification of at least one compiled object, wherein said compiled object comprises at least one method;
receiving one or more declarative statement to augment the functionality of said method of said compiled object, wherein a declarative statement comprises a constraint or requirement generally associated with said method of said compiled object;
generating a dynamic association between said one or more declarative statements and said method identified on said compiled object, wherein said dynamic association links said declarative statements to said method on said compiled object without re-compiling said object; and
executing said declarative statements such that when said method on said object is called, said one or more declarative statements, associated with said method, are executed in addition to said method. - View Dependent Claims (15, 16, 17)
the step of generating a dynamic association between said one or more declarative statements and said method identified on said compiled object comprises the step of generating redirectors, on an interface exposing said object, to redirect a method call to a pinch-point operation; and
the step of executing said declarative statements comprises the step of executing said pinch-point operation to determine if any declarative statements are linked to said method.
-
-
16. The computer readable medium of claim 14, wherein the step of generating a dynamic association between said one or more declarative statements and said method comprises the step of generating a dynamic association between one or more declarative statements to a method on a specific instance of said object.
-
17. The computer readable medium of claim 14, wherein the step of generating a dynamic association between said one or more declarative statements and said method comprises the step of generating a dynamic association between one or more declarative statements to a method on a type level that defines said object.
Specification