JUCS - Journal of Universal Computer Science 12(7): 868-884, doi: 10.3217/jucs-012-07-0868
Strong Mobility in Mobile Haskell
expand article infoAndré Rauber Du Bois, Phil Trinder§, Hans-Wolfgang Loidl|
‡ Universidade Católica de Pelotas, Brazil§ Heriot-Watt University, United Kingdom| Ludwig-Maximilians-Universität, München, Germany
Open Access
Abstract
In a mobile language, computations can move between locations in a network to better utilise resources, e.g., as in a computational GRID. Mobile Haskell, or mHaskell, is a small extension of Concurrent Haskell that enables the construction of distributed mobile software by introducing higher order communication channels called Moble Channels (MChannels). mHaskell only provides weak mobility, i.e. the ability to start new computations on remote locations. This paper shows how strong mobility, i.e. the ability to migrate running threads between locations, can be implemented in a language like mHaskell with weak mobility, higher-order channels and first-class continuations. Using Haskell's high level features, such as higher-order functions, type classes and support for monadic programming, strong mobility is achieved without any changes to the runtime system, or built-in support for continuations. Strong mobility is illustrated with examples and a mobile agent case study.
Keywords
mobile computation, strong mobility, functional programming, Haskell