Programming dynamically reconfigurable open systems with SALSA
- 1 December 2001
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 36 (12), 20-34
- https://doi.org/10.1145/583960.583964
Abstract
Applications running on the Internet, or on limited-resource devices, need to be able to adapt to changes in their execution environment at run-time. Current languages and systems fall short of enabling developers to migrate and reconfigure application sub-components at program-execution time.In this paper, we describe essential aspects of the design and implementation of SALSA, an actor-based language for mobile and Internet computing. SALSA simplifies programming dynamically reconfigurable, open applications by providing universal names, active objects, and migration. Moreover, SALSA introduces three language mechanisms to help programmers coordinate asynchronous, mobile computations: token-passing continuations, join continuations and first-class continuations.We provide some examples which illustrate how SALSA programs are not only dynamically reconfigurable and open, but also much more concise and easier to follow than comparable Java code. Furthermore, we provide empirical results which show SALSA's performance to be better than Java code using an actor library, and which illustrate the difference between local, local area, and wide area communication and migration. Finally, we discuss the implementation of our preprocessor which translates SALSA code into Java.Keywords
This publication has 18 references indexed in Scilit:
- Object-oriented multi-methods in CecilPublished by Springer Science and Business Media LLC ,2006
- GuavaACM SIGPLAN Notices, 2000
- Nomadic Pict: language and infrastructure design for mobile agentsIEEE Concurrency, 2000
- Static Analyses for Eliminating Unnecessary Synchronization from Java ProgramsLecture Notes in Computer Science, 1999
- Service combinators for Web computingIEEE Transactions on Software Engineering, 1999
- A foundation for actor computationJournal of Functional Programming, 1997
- Rosette: An object-oriented concurrent systems architectureACM SIGPLAN Notices, 1988
- Fine-grained mobility in the Emerald systemACM Transactions on Computer Systems, 1988
- Viewing control structures as patterns of passing messagesArtificial Intelligence, 1977
- MonitorsCommunications of the ACM, 1974