Patent ID: 8225277

Claim:
A method of constructing and utilizing non-localized constraints to define and maintain interrelationships among separated entities within a computation while said entities are being transformed, the method for recognizing separated entities that are coupled by non-localized constraints, decomposing said separated entities into constituent subparts and reformulating said entities to incorporate a design feature such that said separated entities after reformation achieve a computational outcome that is equivalent to that achieved by said separated entities before reformation, where said non-localized constraints are an implicit or explicit expression or description of logical or physical relationships among separated but related entities of a computation or a computation's specification such that a re-formulation of one or more of said separated but related entities assures compensating changes to others of said separated but related entities so as to maintain said non-localized constraints relating said separated but related entities, wherein said separated but related entities include but are not limited to computer program language entities or precursors thereof or manifestations of hardware entities or specifications and other precursors of hardware entities; where said non-localized constraints are expressed as coupled program parts and coupled transformations, where a coupling implies an action linkage between a coupled set of parts such that changes to or actions on one element of said coupled set trigger compensating changes to or actions on other elements of said coupled set, and where a coupling implies an additional linkage between a plurality of coupled program parts and an abstract design pattern that represents a coordinated refinement goal of said coupled program parts and that provides a pattern of name-based connections, semantically-based connections and pattern-driven connections to relate various elements of separated contexts; comprising: constructing said non-localized constraints by coupling separated but related entities and generation operations, providing transformation by way of refinement activities and the causal connection of refinement activities to refinement events, whereby causal connection mechanisms include the generation of preroutines or other executable entities triggered upon the occurrence of refinement activities, and utilizing said non-localized constraints by re-formulation operations on one or more of said separated entities, where said re-formulation operations trigger said transformation; recognizing coupled parts; determining a reformation objective of said coupled parts; decomposing an expression containing said coupled parts into said constituent subparts and determining roles of said constituent subparts; and reformulating said coupled parts according to said reformation objective while making, triggering or scheduling compensating changes required by said non-localized constraints.