Mobile Computation with Functions explores distributed computation with languages which adopt functions as the main programming abstraction and support code mobility through the mobility of functions between remote sites. It aims to highlight the benefits of using languages of this family in dealing with the challenges of mobile computation. The possibility of exploiting existing static analysis techniques suggests that having functions at the core of mobile code language is a particularly apt choice. A range of problems which have impact on the safety, security and performance are discussed. It is shown that types extended with effects and other annotations can capture a significant amount of information about the dynamic behavior of mobile functions, and offer solutions to the problems under investigation. This book includes a survey of the languages Concurrent ML, Facile and PLAN which inherit the strengths of the functional paradigm in the context of concurrent and distributed computation. The languages which are defined in the subsequent chapters have their roots in these languages.
Table of ContentsPreface. Acknowledgments.
Introduction. 1. Mobile computation with functions. 2. Type and effect based static analysis. 3. Overview of the book.
1. Towards Mobile functions. Concurrent and Distributed computation. ML with concurrency and distribution.
2. Estimating Mobile Values. Application areas. Potential mobility. Mobile-lambda. Type system. Formal properties of the type system. Static estimation.
3. Distributed Call-Tracking. Security through language restrictions. rEval-lambda. A monomorphic type system. A Polymorphic type system. Concluding remarks.
4. Confined Mobile Functions. Why restrict mobility? Confined-lambda. Formal properties. Concluding remarks.
5. Noninterference and Mobile Functions. Noninterference. Secure Mobile-lambda. Type system. Formal properties. Concluding remarks.
6. Conclusions. Natural support for code mobility. Type systems and security. Further work.
Appendices. Selected Proof Cases.