Patent Document ID: 8850409
Application ID: 12154399

Base Claim:
1. A method for automatic computer translation of input code including constraints to a computer executable imperative output program representation, the method comprising: providing a computer processor with an input source program, wherein said input source program is expressed in a programming language that provides for imperative specifications and also provides for declarative specification of constraints, and wherein said input source program includes one or more declaratively specified constraints in accordance with said programming language; the computer processor translating the input source program to the computer executable imperative output program representation, including: automatically generating code comprising constraint representations based at least in part on said declaratively specified constraints, including automatically generating code comprising one or more corresponding constraint reactor code objects to register input change notification upon instantiation, said constraint reactor code objects having imperative procedures that enforce said declaratively specified constraints, wherein generating the constraint representations comprises automatically defining updating procedures for changes to inputs of each of said declaratively specified constraints; for each of some or all program data members of said input source program, automatically generating corresponding notification code to provide change notification and to accommodate registration for input change notification by constraint representations; for each program data member that is also an input to one or more constraint representation instances, constructing a notifiee list of constraint reactor object instances of said one or more constraint representation instances, wherein said each notifiee list is accessible in the same scope as said each program data member; and automatically defining updating procedures for each of said program data members, wherein said updating procedures are invoked if the corresponding program data member changes; and providing said computer executable imperative output program representation as an output program, wherein said imperative procedures to register said constraints are part of the output program, and wherein said constraints will be maintained at execution time by said imperative procedures to register said constraints from within the output program.

---

Claim 12:
12. The method of claim 1 , wherein at least one of said constraints is located in a first program unit and at least one of its corresponding constraint inputs can change in a second program unit, and wherein said first and second program units are separately translated.