Patent ID: 8713515

Claim:
A method of using composite types constructed by type constructors to automatically transform programming language code or a precursor form thereof that will perform a desired computation within a first generator design context to a redesigned but computationally equivalent programming language code or a precursor form thereof that will perform said desired computation within a second generator design context, wherein a composite type of said composite types is comprised of a programming language type and a plurality of domain specific design features that constrain said programming language type, wherein said type constructors allow but do not require incorporation of domain specific design features into said composite types, wherein a generator design context is represented by a plurality of composite types with each of said composite types comprising a programming language type qualified by keyword pair type modifiers that imply desired domain specific design features within said programming language code or a precursor form thereof whose type is said composite type, wherein said first program generator design context and said second program generator design context are distinguished along dimensions that include but are not limited to dimensions of time, space, computer code structural locations, computer code variable scopes, computer code design forms, computer code design requirements, computer code versions, and programmers, comprising: automatically creating said first generator design context containing composite types constructed using recursive application of type constructors, automatically creating said second program generator design context containing yet to be defined composite types that have implicit relationships to composite types of said first program generator design context, automatically inferring defined composite types for said yet to be defined composite types of said second program generator design context using as input composite types from said first program generator design context and a plurality of other information, and thereby making said implicit relationships explicit relationships, automatically computing, from composite types of said first generator design context, composite types of said second generator design context and said explicit relationships, a set of transformation steps expressed as class methods utilizing an executable object system that will transform said programming language code or a precursor form thereof that performs a desired computation from a first program generator design context to a second program generator design context, and automatically applying said set of transformation steps to transform said programming language code that performs a desired computation or a precursor form thereof from a first program generator design context to a second program generator design context.