Notification-based constraint set translation to imperative execution
First Claim
Patent Images
1. A method for automatically translating input code including constraints to a computer executable imperative output program representation, the method comprising:
- providing an input source program, wherein said input source program is expressed in a programming language that also provides for declarative specification of constraints, and wherein said input source program includes one or more constraints specified in accordance with said programming language;
wherein each of said one or more constraints specifies relations of constraint data members;
providing identification of which of said constraint data members are constraint inputs;
automatically providing constraint representations for said constraints;
wherein each of said constraint representations includes one or more corresponding constraint reactor objects for registration for input change notification upon instantiation, said constraint reactor objects having imperative procedures for enforcing said constraints, and wherein said corresponding constraint reactor objects are accessible in the scope of said corresponding constraint representation;
for each of some or all program data members of said input source program, automatically providing corresponding notification code to provide change notification and to accommodate registration for input change notification by constraint representations, and wherein said corresponding notification code is accessible in the scope of said corresponding program data member;
instantiating said constraint representations in said imperative output program representation, whereby changes to constraint inputs automatically lead to imperative constraint-driven updating; and
providing said imperative output program representation as an output.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is provided for translating sets of constraint declarations to imperative code sequences based on defining an instantiatable object per set, inserting calls to a notification callback mechanism on state modification and defining calls in the constraint context as imperative code sequences that, in response to these callbacks, take actions to maintain these constraints.
-
Citations
18 Claims
-
1. A method for automatically translating input code including constraints to a computer executable imperative output program representation, the method comprising:
-
providing an input source program, wherein said input source program is expressed in a programming language that also provides for declarative specification of constraints, and wherein said input source program includes one or more constraints specified in accordance with said programming language; wherein each of said one or more constraints specifies relations of constraint data members; providing identification of which of said constraint data members are constraint inputs; automatically providing constraint representations for said constraints; wherein each of said constraint representations includes one or more corresponding constraint reactor objects for registration for input change notification upon instantiation, said constraint reactor objects having imperative procedures for enforcing said constraints, and wherein said corresponding constraint reactor objects are accessible in the scope of said corresponding constraint representation; for each of some or all program data members of said input source program, automatically providing corresponding notification code to provide change notification and to accommodate registration for input change notification by constraint representations, and wherein said corresponding notification code is accessible in the scope of said corresponding program data member; instantiating said constraint representations in said imperative output program representation, whereby changes to constraint inputs automatically lead to imperative constraint-driven updating; and providing said imperative output program representation as an output. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
-
Specification