{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,1,5]],"date-time":"2025-01-05T14:40:12Z","timestamp":1736088012199,"version":"3.32.0"},"reference-count":36,"publisher":"Association for Computing Machinery (ACM)","issue":"12","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGPLAN Not."],"published-print":{"date-parts":[[2001,12]]},"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.<\/jats:p>","DOI":"10.1145\/583960.583964","type":"journal-article","created":{"date-parts":[[2005,11,14]],"date-time":"2005-11-14T18:08:27Z","timestamp":1131991707000},"page":"20-34","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":112,"title":["Programming dynamically reconfigurable open systems with SALSA"],"prefix":"10.1145","volume":"36","author":[{"given":"Carlos","family":"Varela","sequence":"first","affiliation":[{"name":"Rensselaer Polytechnic Institute, Troy, NY"}]},{"given":"Gul","family":"Agha","sequence":"additional","affiliation":[{"name":"University of Illinois at Urbana-Champaign, Urbana, IL"}]}],"member":"320","published-online":{"date-parts":[[2001,12]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/1086.001.0001","volume-title":"Actors: A Model of Concurrent Computation in Distributed Systems","author":"Agha G.","year":"1986","unstructured":"G. Agha . Actors: A Model of Concurrent Computation in Distributed Systems . MIT Press , 1986 .]] G. Agha. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.]]"},{"key":"e_1_2_1_2_1","volume-title":"E. Najm and J.-B","author":"Agha G.","year":"1997","unstructured":"G. Agha . Abstracting Interaction Patterns: A Programming Paradigm for Open Distributed Systems . In E. Najm and J.-B . Stefani, editors, Formal Methods for Open Object-based Distributed Systems IFIP Transactions. Chapman and Hall , 1997 .]] G. Agha. Abstracting Interaction Patterns: A Programming Paradigm for Open Distributed Systems. In E. Najm and J.-B. Stefani, editors, Formal Methods for Open Object-based Distributed Systems IFIP Transactions. Chapman and Hall, 1997.]]"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1017\/S095679689700261X"},{"key":"e_1_2_1_4_1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"19","DOI":"10.1007\/3-540-48294-6_2","volume-title":"Static Analysis","author":"Aldrich J.","year":"1999","unstructured":"J. Aldrich , C. Chambers , E. G. Sirer , and S. Eggers . Static analyses for eliminating unnecessary synchronization from Java programs . In A. Cortesi and G. Fil\u00e9, editors, Static Analysis , volume 1694 of Lecture Notes in Computer Science , pages 19 - 38 . Springer , 1999 .]] J. Aldrich, C. Chambers, E. G. Sirer, and S. Eggers. Static analyses for eliminating unnecessary synchronization from Java programs. In A. Cortesi and G. Fil\u00e9, editors, Static Analysis, volume 1694 of Lecture Notes in Computer Science, pages 19-38. Springer, 1999.]]"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/354222.353197"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/320384.320388"},{"key":"e_1_2_1_7_1","first-page":"109","volume-title":"Proceedings of the European Conference on Object Oriented Programming (ECOOP'89)","author":"Briot J.-P.","year":"1989","unstructured":"J.-P. Briot . Actalk : a testbed for classifying and designing actor languages in the Smalltalk-80 environment . In Proceedings of the European Conference on Object Oriented Programming (ECOOP'89) , pages 109 - 129 . Cambridge University Press , 1989 .]] J.-P. Briot. Actalk: a testbed for classifying and designing actor languages in the Smalltalk-80 environment. In Proceedings of the European Conference on Object Oriented Programming (ECOOP'89), pages 109-129. Cambridge University Press, 1989.]]"},{"issue":"1","key":"e_1_2_1_8_1","first-page":"27","article-title":"A language with distributed scope","volume":"8","author":"Cardelli L.","year":"1995","unstructured":"L. Cardelli . A language with distributed scope . Computing Systems , 8 ( 1 ): 27 - 59 , Jan. 1995 .]] L. Cardelli. A language with distributed scope. Computing Systems, 8(1):27-59, Jan. 1995.]]","journal-title":"Computing Systems"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.798321"},{"key":"e_1_2_1_10_1","first-page":"140","volume-title":"Foundations of System Specification and Computational Structures, LNCS 1378","author":"Cardelli L.","year":"1998","unstructured":"L. Cardelli and A. Gordon . Mobile ambients . In Foundations of System Specification and Computational Structures, LNCS 1378 , pages 140 - 155 . Springer Verlag , 1998 .]] L. Cardelli and A. Gordon. Mobile ambients. In Foundations of System Specification and Computational Structures, LNCS 1378, pages 140-155. Springer Verlag, 1998.]]"},{"key":"e_1_2_1_11_1","doi-asserted-by":"crossref","unstructured":"C. Chambers . Object-oriented multi-methods in Cecil . In O. L. Madsen editor ECOOP '92 European Conference on Object-Oriented Programming Utrecht The Netherlands volume 615 of Lecture Notes in Computer Science pages 33 - 56 . Springer-Verlag New York NY 1992 .]] C. Chambers. Object-oriented multi-methods in Cecil. In O. L. Madsen editor ECOOP '92 European Conference on Object-Oriented Programming Utrecht The Netherlands volume 615 of Lecture Notes in Computer Science pages 33-56. Springer-Verlag New York NY 1992.]]","DOI":"10.1007\/BFb0053029"},{"key":"e_1_2_1_12_1","volume-title":"Concurrent Aggregates: Supporting Modularity in Massively Parallel Programs","author":"Chien A.","year":"1993","unstructured":"A. Chien . Concurrent Aggregates: Supporting Modularity in Massively Parallel Programs . MIT Press , 1993 .]] A. Chien. Concurrent Aggregates: Supporting Modularity in Massively Parallel Programs. MIT Press, 1993.]]"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/320384.320386"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353181"},{"key":"e_1_2_1_15_1","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/5803.001.0001","volume-title":"Reasoning about Knowledge","author":"Fagin R.","year":"1995","unstructured":"R. Fagin , J. Halpern , Y. Moses , and M. Vardi . Reasoning about Knowledge . MIT Press , 1995 .]] R. Fagin, J. Halpern, Y. Moses, and M. Vardi. Reasoning about Knowledge. MIT Press, 1995.]]"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349328"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/647013.713007"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/876880.879527"},{"key":"e_1_2_1_19_1","volume-title":"The Java Language Specification","author":"Gosling J.","year":"1996","unstructured":"J. Gosling , B. Joy , and G. Steele . The Java Language Specification . Addison Wesley , 1996 .]] J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison Wesley, 1996.]]"},{"key":"e_1_2_1_20_1","volume-title":"Mobile agents: Motivations and state-of-the-art systems. Technical report","author":"Gray R.","year":"2000","unstructured":"R. Gray , D. Kotz , G. Cybenko , and D. Rus . Mobile agents: Motivations and state-of-the-art systems. Technical report , Darmouth College , April 2000 . Available at ftp:\/\/ftp.cs.dartmouth.edu\/TR\/TR2000-365.ps.Z.]] R. Gray, D. Kotz, G. Cybenko, and D. Rus. Mobile agents: Motivations and state-of-the-art systems. Technical report, Darmouth College, April 2000. Available at ftp:\/\/ftp.cs.dartmouth.edu\/TR\/TR2000-365.ps.Z.]]"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1016\/0004-3702(77)90033-9"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/355620.361161"},{"key":"e_1_2_1_23_1","first-page":"158","volume-title":"Proceedings of the 21st International Conference on Parallel Processing (ICPP '92)","author":"Houck C.","year":"1992","unstructured":"C. Houck and G. Agha . HAL: A high-level actor language and its distributed implementation . In Proceedings of the 21st International Conference on Parallel Processing (ICPP '92) , volume II , pages 158 - 165 , St. Charles, IL , August 1992 .]] C. Houck and G. Agha. HAL: A high-level actor language and its distributed implementation. In Proceedings of the 21st International Conference on Parallel Processing (ICPP '92), volume II, pages 158-165, St. Charles, IL, August 1992.]]"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/35037.42182"},{"key":"e_1_2_1_26_1","volume-title":"Programming and Deploying Mobile Agents with Aglets","author":"Lange D.","year":"1998","unstructured":"D. Lange and M. Oshima . Programming and Deploying Mobile Agents with Aglets . Addison-Wesley , 1998 .]] D. Lange and M. Oshima. Programming and Deploying Mobile Agents with Aglets. Addison-Wesley, 1998.]]"},{"key":"e_1_2_1_27_1","volume-title":"The Java Virtual Machine Specification","author":"Lindholm T.","year":"1997","unstructured":"T. Lindholm and F. Yellin . The Java Virtual Machine Specification . Addison Wesley , 1997 .]] T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison Wesley, 1997.]]"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353172"},{"key":"e_1_2_1_29_1","volume-title":"The Actor Foundry: A Java-based Actor Programming Environment","author":"Lab Open Systems","year":"1998","unstructured":"Open Systems Lab . The Actor Foundry: A Java-based Actor Programming Environment , 1998 . Work in Progress . http:\/\/osl.cs.uiuc.edu\/foundry\/.]] Open Systems Lab. The Actor Foundry: A Java-based Actor Programming Environment, 1998. Work in Progress. http:\/\/osl.cs.uiuc.edu\/foundry\/.]]"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/304065.304106"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/349299.349327"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.5555\/278701.278730"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/67387.67410"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.5555\/647015.713305"},{"key":"e_1_2_1_37_1","volume-title":"First-Class Token-Passing Continuations and Join Continuations. Proceedings of the Midwest Society for Programming Languages and Systems Workshop","author":"Varela C.","year":"1999","unstructured":"C. Varela and G. Agha . Linguistic Support for Actors , First-Class Token-Passing Continuations and Join Continuations. Proceedings of the Midwest Society for Programming Languages and Systems Workshop , October 1999 . http:\/\/osl.cs.uiuc.edu\/~cvarela\/mspls99\/.]] C. Varela and G. Agha. Linguistic Support for Actors, First-Class Token-Passing Continuations and Join Continuations. Proceedings of the Midwest Society for Programming Languages and Systems Workshop, October 1999. http:\/\/osl.cs.uiuc.edu\/~cvarela\/mspls99\/.]]"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/4434.846193"},{"key":"e_1_2_1_39_1","volume-title":"ABCL An Object-Oriented Concurrent System","author":"Yonezawa A.","year":"1990","unstructured":"A. Yonezawa , editor. ABCL An Object-Oriented Concurrent System . MIT Press , Cambridge, Mass ., 1990 .]] A. Yonezawa, editor. ABCL An Object-Oriented Concurrent System. MIT Press, Cambridge, Mass., 1990.]]"}],"container-title":["ACM SIGPLAN Notices"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/583960.583964","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,5]],"date-time":"2025-01-05T14:12:00Z","timestamp":1736086320000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/583960.583964"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2001,12]]},"references-count":36,"journal-issue":{"issue":"12","published-print":{"date-parts":[[2001,12]]}},"alternative-id":["10.1145\/583960.583964"],"URL":"https:\/\/doi.org\/10.1145\/583960.583964","relation":{},"ISSN":["0362-1340","1558-1160"],"issn-type":[{"type":"print","value":"0362-1340"},{"type":"electronic","value":"1558-1160"}],"subject":[],"published":{"date-parts":[[2001,12]]},"assertion":[{"value":"2001-12-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}