Patent ID: 8060857

Claim:
A method of automatically generating computer code for implementing a desired computation on a desired execution platform, the method comprising: providing an implementation neutral domain specific specification expressed in terms of domain specific operators and operands, the implementation neutral domain specific specification specifying details for a desired computation; providing a domain specific specification of a desired execution platform selected from a plurality of possible execution platforms, the domain specific specification of a desired execution platform including information about high capability features of the desired execution platform; and using the implementation neutral domain specific specification and the domain specific specification of the desired execution platform to automatically generate computer code that exploits the high capability features of the desired execution platform, wherein human intervention is not required to generate the computer code that exploits the high capability features of the desired execution platform after the implementation neutral domain specific specification and the domain specific specification of the desired execution platform are provided; creating a logical architecture, wherein the logical architecture is a partial and provisional specification of at least some design features of said desired computation; wherein said logical architecture includes constraint objects and their associated parts within said implementation neutral, domain specific specification of said computation; wherein said constraint objects limit a legitimate set of possible forms of one or more eventual programming language expressions of said constraint objects and their associated parts; wherein said constraint objects may represent, among other things, implied iteration objects such that one or more eventual programming language expressions derived from said implied iteration objects are logically consistent with a set of logical assertions and abstract precursors to said logical assertions that are part of one or more definitions of said implied iteration objects; wherein said constraint objects may represent, among other things, implied partitions of said computer code that exploits the high capability features of the desired execution platform such that said implied partitions are logically consistent with a set of logical assertions and abstract precursors to said logical assertions that are part of one or more definitions of said constraint objects; and wherein said logical assertions and abstract precursors to said logical assertions of a constraint object that implies a partition are called partitioning conditions for said constraint object that implies a partition.