US2016216950A1PendingUtilityA1

Automatic Code Transformation

Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Mar 28, 2008Filed: Apr 4, 2016Published: Jul 28, 2016
Est. expiryMar 28, 2028(~1.7 yrs left)· nominal 20-yr term from priority
G06F 8/40G06F 8/24G06F 8/30
54
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Stateful computations are transformed into stateless computations automatically to facilitate scalability. Programmers can write code in a traditional imperative stateful style, which is subsequently transformed automatically into a stateless, state transformer monadic style. After the transformation, state is passed as an additional argument in a call and returns as a new state as an additional result.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A code transformation system, comprising:
 a component that receives inherently stateful code specified in an imperative programming language; and   a transform component that transforms the stateful code into stateless code in accordance with a state transform monad pattern.   
     
     
         2 . The system of  claim 1 , the transform component rewrites the stateful code in a stateless state transformation form. 
     
     
         3 . The system of  claim 1 , the transform component applies a wrapper to the stateful code to convert it into stateless code. 
     
     
         4 . The system of  claim 4 , the wrapper converts an instance method into a static method. 
     
     
         5 . The system of  claim 1 , further comprising a tier split component that splits the stateful code for execution across multiple execution contexts. 
     
     
         6 . The system of  claim 5 , intermediate state is stored on a client machine or a server. 
     
     
         7 . The system of  claim 5 , a portion of intermediate state is stored on a client and a portion of the state is stored on a server. 
     
     
         8 . The system of  claim 5 , intermediate state is stored on a dedicated subsystem that supports data replication. 
     
     
         9 . The system of  claim 5 , further comprising a policy component that identifies where intermediate state is stored as a function of context information. 
     
     
         10 . The system of  claim 1 , state is threaded between code segments with the same serialization infrastructure employed for both argument and result values. 
     
     
         11 . A code transformation method, comprising:
 identifying a stateful computation in an imperative programming language; and   transforming the stateful computation into a stateless computation automatically in accordance with a state transform monad pattern, wherein state is explicit and passed as an argument and/or result.   
     
     
         12 . The method of  claim 11 , comprising rewriting the stateful computation to enable state to be passed explicitly. 
     
     
         13 . The method of  claim 11 , comprising applying a wrapper to the stateful computation to transform the computation. 
     
     
         14 . The method of  claim 11 , further comprising splitting the computation for execution across multiple execution contexts. 
     
     
         15 . The method of  claim 14 , comprising specifying storage of intermediate state on a client. 
     
     
         16 . The method of  claim 15 , comprising specifying client storage where offline operation is desirable. 
     
     
         17 . The method of  claim 14 , comprising specifying storage of an intermediate state on a server. 
     
     
         18 . The method of  claim 14 , comprising specifying storage of an intermediate state across a client and a server. 
     
     
         19 . The method of  claim 14 , further comprising specifying storage of an intermediate state separate from both a client and a server associated with computation execution. 
     
     
         20 . A computer programming support system, comprising:
 means for acquiring an inherently stateful single tier computer application specified in an imperative language;   means for automatically generating distributed code from the single tier application; and   means for automatically transforming the distributed code from stateful to stateless in a state transformer monad style to produce a scalable distributed application.

Join the waitlist — get patent alerts

Track US2016216950A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.