AUTOMATIC CODE TRANSFORMATION WITH STATE TRANSFORMER MONADS
First Claim
Patent Images
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 Assignments
0 Petitions
Accused Products
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.
92 Citations
20 Claims
-
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. - View Dependent Claims (2, 3, 5, 6, 7, 8, 9, 10)
-
-
4. The system of claim 4, the wrapper converts an instance method into a static method.
-
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. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
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.
-
Specification