发明名称 Automatically solving simultaneous type equations for type difference transformations that redesign code
摘要 A method and a system for first, expressing relationships between design contexts as a set of simultaneous parameterized type equations and then, automatically solving those type equations to produce type difference transformations that automatically convert code from one design context to a different design context. For example, a set of solution transforms might redesign code from a simple image convolution expression within a specification context to a set of thread based, parallelized expressions of the convolution designed to fit the “holes” within a design framework from a reusable library. The type equations are expressed in terms a generalization of programming data types (called Context Qualified Types or CQ Types) that may have embedded variable parameters. In addition to programming data type information, CQ Types incorporate design features or concepts that fall outside of the programming data type domain (e.g., a planned program scope or a design skeleton).
申请公布号 US9038037(B1) 申请公布日期 2015.05.19
申请号 US201414337487 申请日期 2014.07.22
申请人 发明人 Biggerstaff Ted James
分类号 G06F9/45 主分类号 G06F9/45
代理机构 代理人
主权项 1. A computer implemented method of automatically solving simultaneous parameterized equations of context qualified types for solution elements comprising: 1) other context qualified types implied by equation parameters, 2) code instances of said context qualified types and 3) type difference transformations that redesign instances of code from one design context specified by one context qualified type to a second design context specified by a second context qualified type, where said solution elements are used to automatically redesign, synchronize and integrate separate code components or precursors thereof into an integrated, synchronized solution code component, where each one of said separate code components achieves a portion of a desired computation and said integrated, synchronized solution code component achieves all portions of said desired computation, wherein an atomic context qualified type is a composition of a programming language data type and a set of qualifiers for said programming language data type, where said set of qualifiers express human oriented conceptual notions that are not expressible in terms of programming language constructs or data types, wherein a composite context qualified type is expressed as a composition of a context qualified type constructor applied to other atomic or composite context qualified types as its arguments, and where said composition includes a set of qualifiers for said composite context qualified type that express human oriented conceptual notions that are not expressible in terms of programming language constructs or data types, wherein a composite context qualified type is a specialization of said other atomic or composite context qualified types that are said arguments of said context qualified type constructor, comprising: acquiring a specification of a desired computation from a plurality of sources including but not limited to an application programmer, a data base of reusable specifications or other source, where said specification specifies intent of said desired computation without information on how said desired computation is to be implemented, acquiring a design framework based on a computation's requirements and properties, where said design framework specifies design features of a desired implementation of said desired computation, where said design framework comprises 1) skeletal code achieving some portion of said desired computation; 2) a generator method that is specialized to said design framework and that manages building of said integrated, synchronized solution code component; 3) a set of said simultaneous parameterized equations of context qualified types specific to said design framework, and that constrains relationships within said integrated, synchronized solution code component; and 4) a set of said type difference transformations that are not implicit in said type equations and which are therefore elective type difference transformations specific to said design framework, automatically solving said simultaneous parameterized equations of context qualified types for unknown context qualified types implied by equation parameters, automatically deriving each of said type difference transformations that are implied by each pair of composite context qualified types specified in said simultaneous parameterized equations of context qualified types, where said pair comprises a first context qualified type and a second context qualified type, where either said second context qualified type is a specialization of said first context qualified type, or said first context qualified type is a specialization of said second context qualified type, automatically applying said type difference transformations to known code instances of said context qualified types in said simultaneous parameterized equations of context qualified types to produce new code instances of new context qualified types, where said new context qualified types are related by one or more said type difference transformations to said context qualified types of said known code instances, and automatically assembling said integrated, synchronized solution code component that achieves all portions of said desired computation from 1) said new code instances, 2) said skeletal code, and 3) each one of said separate code components that achieves a portion of a desired computation, where said assembling is achieved using said generator method that is specialized to said design framework; and constructing a type difference transformation between a first context qualified type and a second context qualified type, where said type difference transformation is automatically generated if said second context qualified type is a specialization of said first context qualified type, where specialization means that said context qualified type is a subtype either directly or recursively of said first context qualified type, or alternatively, where said type difference transformation must be manually generated if said second context qualified type is not a specialization of said first context qualified type and said first context qualified type is not a specialization of said second context qualified type.
地址 Austin TX US