In mobile languages programmers control the placement of code or computations in open networks, e.g., a program can migrate between locations. Mobile computations are typically stateful and interact with the state at each location in the network. We propose mobility skeletons, a library of parameterisable functions that encapsulate common patterns of mobile computation. Mobility skeletons are analogous to, but very different from, algorithmic skeletons - parameterisable functions encapsulating common patterns of parallel computation. We have identified three common patterns of mobile computation, and implemented them as a library of higher-order functions in mobile Haskell. Each mobility skeleton is defined and illustrated with an example. We show how mobility skeletons can be composed and nested, and illustrate their use in a non-trivial case study: a distributed meeting planner. Mobility skeletons are extensible: there is a small set of mobility primitives, and medium-level abstractions such as remote evaluation can be defined using them. New mobility skeletons can be defined using the medium and low level abstractions. © World Scientific Publishing Company.
- Functional programming
- Mobile computation