×

Notification-based constraint set translation to imperative execution

  • US 20090293046A1
  • Filed: 05/21/2008
  • Published: 11/26/2009
  • Est. Priority Date: 05/21/2008
  • Status: Active Grant
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.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×