Design and Semantics of Quantum: A Language to Control Resource Consumption in Distributed Computing

This paper describes the semantics of Quantum, a language that was specifically designed to control resource consumption of distributed computations, such as mobile agent style applications. In Quantum, computations can be driven by mastering their resource consumption. Resources can be understood as processors cycles, geographical expansion, bandwidth or duration of communications, etc. We adopt a generic view by saying that computations need energy to be performed. Quantum relies on three new primitives that deal with energy. The first primitive creates a tank of energy associated with a computation. Asynchronous notifications inform the user of energy exhaustion and computation termination. The other two primitives allow us to implement suspension and resumption of computations by emptying a tank and by supplying more energy to a tank. The semantics takes the form of an abstract machine with explicit parallelism and energy-related primitives.

[1]  David De Roure,et al.  Design of a Concurrent and Distributed Language , 1992, Parallel Symbolic Computing.

[2]  Jakob Engblom,et al.  A Platform for Secure Mobile Agents , 1997 .

[3]  Robert Hieb,et al.  Continuations and concurrency , 1990, PPOPP '90.

[4]  R. Kent Dybvig,et al.  Representing control in the presence of one-shot continuations , 1996, PLDI '96.

[5]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[6]  Luc Moreau,et al.  Correctness of a Distributed-Memory Model for Scheme , 1996, Euro-Par, Vol. I.

[7]  R. Kent Dybvig,et al.  The Scheme Programming Language , 1995 .

[8]  Robbert van Renesse,et al.  Operating system support for mobile agents , 1995, Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V).

[9]  Daniel Ribbens,et al.  The Semantics of pcall and fork , 1995 .

[10]  Nicholas R. Jennings,et al.  Intelligent agents: theory and practice , 1995, The Knowledge Engineering Review.

[11]  Robbert van Renesse,et al.  An introduction to the TACOMA distributed system. Version 1.0 , 1995 .

[12]  Mark S. Boddy,et al.  An Analysis of Time-Dependent Planning , 1988, AAAI.

[13]  Jonathan Dale,et al.  Towards a Framework for Developing Mobile Agents for Managing Distributed Information Resources , 1997 .

[14]  Daniel P. Friedman,et al.  Abstracting Timed Preemption with Engines , 1987, Comput. Lang..

[15]  Corporate Ieee,et al.  Information Technology-Portable Operating System Interface , 1990 .

[16]  Carl Hewitt,et al.  The Scientific Community Metaphor , 1988, IEEE Transactions on Systems, Man, and Cybernetics.

[17]  Eric S. Raymond,et al.  The New Hacker's Dictionary , 1991 .

[18]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

[19]  Luc Moreau The semantics of Scheme with future , 1996, ICFP '96.

[20]  Geoffrey Smith,et al.  A Type-Based Approach to Program Security , 1997, TAPSOFT.

[21]  Robert S. Gray,et al.  Agent Tcl: a Exible and Secure Mobile-agent System , 1996 .

[22]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[23]  Luc Moreau,et al.  The Semantics of pcall and fork in the Presence of First-Class Continuations and Side-Effects , 1995, PSLS.

[24]  Jean-Jacques Lévy,et al.  A Calculus of Mobile Agents , 1996, CONCUR.

[25]  Randy B. Osborne Speculative Computation in Multilisp , 1989, Workshop on Parallel Lisp.

[26]  Robert H. Halstead,et al.  New Ideas in Parallel Lisp: Language Design, Implementation, and Programming Tools , 1989, Workshop on Parallel Lisp.

[27]  Jonathan Rees,et al.  Revised3 report on the algorithmic language scheme , 1986, SIGP.

[28]  Luc Moreau,et al.  Distributed computations driven by resource consumption , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[29]  Christian Queinnec Locality, causality and continuations , 1994, LFP '94.

[30]  Christian Queinnec,et al.  Sharing Mutable Objects and Controlling Groups of Tasks in a Concurrent and Distributed Language , 1994, Theory and Practice of Parallel Programming.

[31]  Holger Peine,et al.  An Introduction to Mobile Agent Programming and the Ara System , 1999 .

[32]  Matthias Felleisen,et al.  The semantics of future and its use in program optimization , 1995, POPL '95.

[33]  Daniel P. Friedman,et al.  Engines build process abstractions , 1984, LFP '84.

[34]  Randy B. Osborne Speculative computation in multilisp , 1990, LISP and Functional Programming.

[35]  Michael Eisenberg,et al.  Programming in Scheme , 1988 .

[36]  Akinori Yonezawa,et al.  Static Analysis of Communication for Asynchronous Concurrent Programming Languages , 1995, SAS.

[37]  Roberto M. Amadio An Asynchronous Model of Locality, Failurem and Process Mobility , 1997, COORDINATION.

[38]  Holger Peine,et al.  The Architecture of the Ara Platform for Mobile Agents , 1999, Mobile Agents.

[39]  Dorai Sitaram,et al.  Models of control and their implications for programming language design , 1994, Rice COMP TR.

[40]  Guy L. Steele,et al.  Common Lisp the Language , 1984 .