Abstract
This paper describes a language which facilitates programming for mobile computation i.e., computation in which code migrates and continues to run across network nodes. Such languages allow us to develop novel distributed applications (such as workflow systems, flexible software distribution, and intelligent search systems) more easily and efficiently. However, many of existing programming language systems are often insufficient because they lack the support for concise description of migration and formal models for reasoning about program’s properties including type safety and security. Our goal is to construct a programming language system which adequately supports mobile computation on a solid theoretical basis. As an attempt to achieve that, we have designed a programming language based on ML which has well-founded theoretical bases. The features of this language include: transparent migration, dynamic linking with distributed resources by means of contexts, and semantics consistent with the original ML. Especially, our notion of contexts allows us to succinctly describe the interaction between mobile code and environments at destination nodes. We briefly explain a simple semantic model based on Plotkin’s λv-calculus and tuple spaces. Though our model currently guarantees only type soundness, we believe that theoretical results such as prevention of security violation (of Heintze and Rieckes’ SLam Calculus) can be incorporated into our system rather easily. We have also implemented an experimental interpreter system as a first step of the full-fledged language system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Gul Agha. ACTORS: A Model of Concurrent Computations in Distributed Systems. The MIT Press, Cambridge, Mass., 1986.
H.P. Barendregt. The Lambda Calculus, volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland, 1984. revised edition.
Krishna A. Bharat and Luca Cardelli. Migratory Applications. In Proceedings of the 8th Annual ACM Symposium on User Interface Software and Technology, Pittsburgh, Pa., November 1995. Also available as Digital Systems Research Center Research Report 138.
Luca Cardelli. A language with distributed scope. Computing Systems, 8(1):27–59, 1995. Also available as Digital Systems Research Center Research Report 122.
Luca Cardelli. Mobile Computation. In J. Vitek and C. Tschudin, editors, Mobile Object Systems-Towards the Programmable Internet, number 1222 in Lecture Notes in Computer Science, pages 3–6. Springer-Verlag, April 1997.
L. Damas and R. Milner. Principal type-schemes for functional programs. In Proc. ACM Symposium on Principles of Programming Languages, pages 207–212, 1982.
Olivier Danvy and Andrzej Filinski. A Functional Abstraction of Typed Contexts. Technical report, Institute of Datalogy, University of Copenhagen, 1989. DIKU 89/12.
R. De Nicola, G. Ferrari, and R. Pugliese. Types as Specifications of Access Policies. In J. Vitek and C. Jensen, editors, Secure Internet Programming: Security Issues for Distributed and Mobile Objects, volume 1603 of LNCS, pages 117–146. Springer-Verlag, 1999.
M. Felleisen, M. Wand, D. P. Friedman, and B. F. Duba. Abstract Continuations: A Mathematical Semantics for Handling Full Functional Jumps. In ACM Conference on Lisp and Functional Programming, pages 52–62, 1988.
Cédric Fournet, Georges Gonthier, Jean-Jacques Lévy, Luc Maranget, and Didier Rémy. A Calculus of Mobile Agents. In Ugo Montanari and Vladimiro Sassone, editors, CONCUR’ 96: Concurrency Theory (7th International Conference, Pisa, Italy, August 1996, Proceedings), volume 1119 of LNCS, pages 406–421. Springer-Verlag, 1996.
David Gelernter. Generative Communication in Linda. ACM Transactions on Programming Languages and Systems, 7(1):80–112, January 1985.
J. Gosling and H. McGilton. The Java Language Environment. White paper, Sun Microsystems, 1995.
Robert S. Gray. Agent Tcl: A transportable agent system. In Proceedings of the CIKM Workshop on Intelligent Information Agents, Baltimore, Md., December 1995.
Robert S. Gray, George Cybenko, David Kotz, and Daniela Rus. D’Agents: Security in a multiple-language, mobile-agent system. In Giovanni Vigna, editor, Mobile Agent Security, Lecture Notes in Computer Science, pages 154–187. Springer-Verlag: Heidelberg, Germany, 1998.
Colin G. Harrison, David M. Chess, and Aaron Kershenbaum. Mobile Agents: Are they a good idea? Research report, IBM T. J. Watson Research Center, March 1995.
Masatomo Hashimoto. First-Class Contexts in ML. In Proc. 4th Asian Computing Science Conference, volume 1538 of Lecture Notes in Computer Science, pages 206–223. Springer, 1998.
Masatomo Hashimoto and Atsushi Ohori. A Typed Context Calculus. Preprint 1098, Research Institute for Mathematical Sciences, Kyoto, Japan, 1996. Revised version to appear in TCS.
Masatomo Hashimoto and Akinori Yonezawa. A Typed Language for Mobile Computation. Technical report, Univ. Tokyo, 2000. In preparation.
Nevin Heintze and Jon G. Riecke. The SLam Calculus: Programming with Secrecy and Integrity. In Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, pages 365–377, New York, NY, January 1998. ACM.
Frederick C. Knabe. An overview of mobile agent programming. In Proceedings of the 5th LOMAPS Workshop on Analysis and Verification of Multiple-Agent Languages, Stockholm, Sweden, June 1996.
Gian Pietro Picco, Amy L. Murphy, and Gruia-Catalin Roman. LIME: Linda Meets Mobility. In Proceedings of the 21st International Conference on Software Engineering, pages 368–377. ACM Press, May 1999.
G. Plotkin. Call-by-name, call-by-value, and the λ-calculus. Theoretical Computer Science, 1:125–159, 1975.
J. H. Reppy. CML: A higher-order Concurrent Language. In Proceedings of ACM SIGPLAN’91 Conference on Programming Language Design and Implementation, pages 293–305, 1991.
James Riely and Matthew Hennessy. A Typed Language for Distributed Mobile Processes. In Proc. ACM Symposium on Principles of Programming Languages, pages 378–390. ACM Press, January 1998.
Tatsurou Sekiguchi, Hidehiko Masuhara, and Akinori Yonezawa. A Simple Extension of Java Language for Controllable Transparent Migration and its Portable Implementation. In Proceedings of the Third International Conference on Coordination Models and Languages, 1999.
Tatsurou Sekiguchi and Akinori Yonezawa. A Calculus with Code Mobility. In H. Bowman and J. Derrick, editors, Proceedings of Second IFIP International Conference on Formal Methods for Open Object-based Distributed Systems, pages 21–36. Chapman&Hall, 1997.
Takuo Watanabe. Mobile Code Description using Partial Continuations: Definition and Operational Semantics. In SWoPP’ 97, pages 61–66. IPSJ, August 1997.
James E. White. Mobile Agents. In Jeffrey Bradshaw, editor, Software Agents. The MIT Press, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hashimoto, M., Yonezawa, A. (2000). MobileML: A Programming Language for Mobile Computation. In: Porto, A., Roman, GC. (eds) Coordination Languages and Models. COORDINATION 2000. Lecture Notes in Computer Science, vol 1906. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45263-X_13
Download citation
DOI: https://doi.org/10.1007/3-540-45263-X_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-41020-1
Online ISBN: 978-3-540-45263-8
eBook Packages: Springer Book Archive