skip to main content
survey

A Survey of Active Object Languages

Published:05 October 2017Publication History
Skip Abstract Section

Abstract

To program parallel systems efficiently and easily, a wide range of programming models have been proposed, each with different choices concerning synchronization and communication between parallel entities. Among them, the actor model is based on loosely coupled parallel entities that communicate by means of asynchronous messages and mailboxes. Some actor languages provide a strong integration with object-oriented concepts; these are often called active object languages. This article reviews four major actor and active object languages and compares them according to carefully chosen dimensions that cover central aspects of the programming paradigms and their implementation.

References

  1. Erika Ábrahám, Frank S. de Boer, Willem P. de Roever, and Martin Steffen. 2005. An assertion-based proof system for multithreaded Java. Theoret. Comput. Sci. 331, 2--3 (2005), 251--290.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Luca Aceto, Matteo Cimini, Anna Ingólfsdóttir, Arni Hermann Reynisson, Steinar Hugi Sigurdarson, and Marjan Sirjani. 2011. Modelling and simulation of asynchronous real-time systems using timed rebeca. In Proceedings of the Workshop on Foundations of Coordination Languages and Software Architectures, Mohammad Reza Mousavi and António Ravara (Eds.). Electronic Proceedings in Theoretical Computer Science, Vol. 58. 1--19.Google ScholarGoogle ScholarCross RefCross Ref
  3. Gul Agha. 1986. Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press.Google ScholarGoogle ScholarCross RefCross Ref
  4. Elvira Albert, Puri Arenas, Antonio Flores-Montoya, Samir Genaim, Miguel Gómez-Zamalloa, Enrique Martin-Martin, Germán Puebla, and Guillermo Román-Díez. 2014. SACO: Static analyzer for concurrent objects. In Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), Erika Ábrahám and Klaus Havelund (Eds.). LNCS, Vol. 8413. Springer, 562--567.Google ScholarGoogle ScholarCross RefCross Ref
  5. Elvira Albert, Puri Arenas, and Miguel Gómez-Zamalloa. 2015. Test case generation of actor systems. In Proceedings of the 13th Intl. Symp. on Automated Technology for Verification and Analysis (ATVA), Bernd Finkbeiner, Geguang Pu, and Lijun Zhang (Eds.). LNCS, Vol. 9364. Springer, 259--275. Google ScholarGoogle ScholarCross RefCross Ref
  6. Elvira Albert, Frank S. de Boer, Reiner Hähnle, Einar Broch Johnsen, Rudolf Schlatte, Silvia Lizeth Tapia Tarifa, and Peter Y. H. Wong. 2014. Formal modeling of resource management for cloud architectures: An industrial case study using real-time ABS. Journal of Service-Oriented Computing and Applications 8, 4 (2014), 323--339. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Elvira Albert, Miguel Gómez-Zamalloa, and Miguel Isabel. 2016. Combining static analysis and testing for deadlock detection. In Proceedings of the 12th Intl. Conf. on Integrated Formal Methods (iFM 2016), Erika Ábrahám and Marieke Huisman (Eds.). LNCS, Vol. 9681. Springer, 409--424.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Joe Armstrong. 2007. Programming Erlang, Software for Concurrent World. Pragmatic Bookshelf.Google ScholarGoogle Scholar
  9. Henry. G. Baker Jr. and Carl Hewitt. 1977. The incremental garbage collection of processes. In Proceedings of the Symposium on Artificial Intelligence and Programming Languages. ACM Press, New York, NY, 55--59.Google ScholarGoogle Scholar
  10. Henri E. Bal, Jennifer G. Steiner, and Andrew S. Tanenbaum. 1989. Programming languages for distributed computing systems. Comput. Surv. 21, 3 (1989), 261--322. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Françoise Baude, Ludovic Henrio, and Cristian Ruz. 2015. Programming distributed and adaptable autonomous components—The GCM/ProActive framework. Softw. Prac. Exper. 45, 9 (2015), 1189--1227.Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Razieh Behjati, Marjan Sirjani, and Majid Nili Ahmadabadi. 2009. Bounded rational search for on-the-fly model checking of LTL properties. In Proceedings of the 3rd IPM International Conference on Fundamentals of Software Engineering (FSEN’09), Farhad Arbab and Marjan Sirjani (Eds.). LNCS, Vol. 5961. Springer, 292--307.Google ScholarGoogle Scholar
  13. Philip A. Bernstein and Sergey Bykov. 2016. Developing cloud services using the orleans virtual actor model. IEEE Internet Comput. 20, 5 (2016), 71--75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Joakim Bjørk, Frank S. de Boer, Einar Broch Johnsen, Rudolf Schlatte, and S. Lizeth Tapia Tarifa. 2013. User-defined schedulers for real-time concurrent objects. Innov. Syst. Softw. Eng. 9, 1 (2013), 29--43.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Stefan Blom and Marieke Huisman. 2014. The vercors tool for verification of concurrent programs. In Proceedings of the 19th Intl. Symposium on Formal Methods (FM’14), Cliff B. Jones, Pekka Pihlajasaari, and Jun Sun (Eds.). LNCS, Vol. 8442. Springer, 127--131. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Stephan Brandauer, Elias Castegren, Dave Clarke, Kiko Fernandez-Reyes, Einar Broch Johnsen, Ka I. Pun, S. Lizeth Tapia Tarifa, Tobias Wrigstad, and Albert Mingkun Yang. 2015. Parallel objects for multicores: A glimpse at the parallel language encore. In Formal Methods for Multicore Programming: 15th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, Marco Bernardo and Einar Broch Johnsen (Eds.). LNCS, Vol. 9104. Springer, 1--56. Google ScholarGoogle ScholarCross RefCross Ref
  17. Richard Bubel, Antonio Flores Montoya, and Reiner Hähnle. 2014. Analysis of executable software models. In Executable Software Models: 14th International School on Formal Methods for the Design of Computer, Communication, and Software Systems, Marco Bernardo, Ferruccio Damiani, Reiner Hähnle, Einar Broch Johnsen, and Ina Schaefer (Eds.). LNCS, Vol. 8483. Springer, 1--27.Google ScholarGoogle Scholar
  18. Sergey Bykov, Alan Geller, Gabriel Kliot, James R. Larus, Ravi Pandya, and Jorgen Thelin. 2011. Orleans: Cloud computing for everyone. In Proceedings of the Symposium on Cloud Computing in Conjunction with SOSP (SOCC’11), Jeffrey S. Chase and Amr El Abbadi (Eds.). ACM Press, 16.Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Denis Caromel and Guillaume Chazarain. 2005. Robust exception handling in an asynchronous environment. In Proceedings of the ECOOP Workshop on Exception Handling in Object-Oriented Systems (2005).Google ScholarGoogle Scholar
  20. Denis Caromel, Guillaume Chazarain, and Ludovic Henrio. 2007. Garbage collecting the grid: A complete DGC for activities. In Proceedings of the 8th ACM/IFIP/USENIX International Middleware Conference, Renato Cerqueira and Roy H. Campbell (Eds.). LNCS, Vol. 4834. Springer, 164--183. Google ScholarGoogle ScholarCross RefCross Ref
  21. Denis Caromel and Ludovic Henrio. 2005. A Theory of Distributed Object. Springer.Google ScholarGoogle Scholar
  22. Denis Caromel, Ludovic Henrio, and Bernard Serpette. 2004. Asynchronous and deterministic objects. In Proceedings of the Symposium on Principles of Programming Languages (POPL’04), Neil D. Jones and Xavier Leroy (Eds.). ACM Press, 123--134. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Denis Caromel and Yves Roudier. 1996. Reactive programming in eiffel. In Proceedings of the Conference on Object-Based Parallel and Distributed Computation (OBPDC’95), Jean-Pierre Briot, Jean-Marc Geib, and Akinori Yonezawa (Eds.). LNCS, Vol. 1107. Springer, 125--147. Google ScholarGoogle ScholarCross RefCross Ref
  24. Elias Castegren and Tobias Wrigstad. 2016. Reference capabilities for concurrency control. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP’16), Shriram Krishnamurthi and Benjamin S. Lerner (Eds.). LIPIcs, Vol. 56. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 5:1--5:26.Google ScholarGoogle Scholar
  25. Elias Castegren and Tobias Wrigstad. 2017. Relaxed linear references for lock-free data structures. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP’17), Peter Müller (Ed.). LIPIcs, Vol. 74. Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, 6:1--6:32. DOI:http://dx.doi.org/10.4230/LIPIcs.ECOOP.2017.6Google ScholarGoogle Scholar
  26. Charron-Bost, Bernadette, Mattern, Friedemann, and Gerard Tel. 1996. Synchronous, asynchronous, and causally ordered communication. Distrib. Comput. 9, 4 (1996), 173--191. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Dave Clarke, Tobias Wrigstad, Johan Östlund, and Einar Broch Johnsen. 2008. Minimal ownership for active objects. In Proceedings of the 6th Asian Symposium on Programming Languages and Systems (APLAS’08), Ganesan Ramalingam (Ed.). LNCS, Vol. 5356. Springer, 139--154.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Manuel Clavel, Francisco Durán, Steven Eker, Patrick Lincoln, Narciso Martí-Oliet, José Meseguer, and Carolyn L. Talcott. 2007. All About Maude—A High-Performance Logical Framework, How to Specify, Program and Verify Systems in Rewriting Logic. LNCS, Vol. 4350. Springer.Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Sylvan Clebsch, Sebastian Blessing, Juliana Franco, and Sophia Drossopoulou. 2015. Ownership and reference counting based garbage collection in the actor world. (2015). In Proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS’15).Google ScholarGoogle Scholar
  30. Sylvan Clebsch and Sophia Drossopoulou. 2013. Fully concurrent garbage collection of actors on many-core machines. In Proceedings of the ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages 8 Applications (OOPSLA’13), Antony L. Hosking, Patrick Th. Eugster, and Cristina V. Lopes (Eds.). ACM Press, 553--570. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Sylvan Clebsch, Sophia Drossopoulou, Sebastian Blessing, and Andy McNeil. 2015. Deny capabilities for safe, fast actors. In Proceedings of the 5th International Workshop on Programming Based on Actors, Agents, and Decentralized Control (AGERE’15), Elisa Gonzalez Boix, Philipp Haller, Alessandro Ricci, and Carlos Varela (Eds.). ACM Press, 1--12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Gianpaolo Cugola and Carlo Ghezzi. 1997. CJava: Introducing concurrent objects in java. In Proceedings of the 4th International Conference on Object Oriented Information Systems (OOIS’97), Maria E. Orlowska and Roberto Zicari (Eds.). Springer, 504--514.Google ScholarGoogle Scholar
  33. Ole-Johan Dahl, Bjørn Myrhaug, and Kristen Nygaard. 1968. (Simula 67) Common Base Language. Technical Report S-2. Norsk Regnesentral (Norwegian Computing Center), Oslo, Norway.Google ScholarGoogle Scholar
  34. Ole-Johan Dahl and Kristen Nygaard. 1966. SIMULA—An ALGOL-Based simulation language. Commun. ACM 9, 9 (1966), 671--678. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Frank S. de Boer, Dave Clarke, and Einar Broch Johnsen. 2007. A complete guide to the future. In Proceedings of the 16th European Symposium on Programming (ESOP’07), Rocco De Nicola (Ed.). LNCS, Vol. 4421. Springer, 316--330. Google ScholarGoogle ScholarCross RefCross Ref
  36. Jeffrey Dean and Sanjay Ghemawat. 2008. MapReduce: Simplified data processing on large clusters. Commun. ACM 51, 1 (Jan. 2008), 107--113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Jessie Dedecker, Tom Van Cutsem, Stijn Mostinckx, Theo D’Hondt, and Wolfgang De Meuter. 2006. Ambient-oriented programming in ambienttalk. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP’06), Dave Thomas (Ed.). LNCS, Vol. 4067. Springer, 230--254.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Crystal Chang Din, Richard Bubel, and Reiner Hähnle. 2015. KeY-ABS: A deductive verification tool for the concurrent modelling language ABS. In Automated Deduction (CADE-25), Amy P. Felty and Aart Middeldorp (Eds.). LNCS, Vol. 9195. Springer, 517--526.Google ScholarGoogle Scholar
  39. Crystal Chang Din and Olaf Owe. 2015. Compositional reasoning about active objects with shared futures. Form. Aspects Comput. 27, 3 (2015), 551--572. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Crystal Chang Din, S. Lizeth Tapia Tarifa, Reiner Hähnle, and Einar Broch Johnsen. 2015. History-based specification and verification of scalable concurrent and distributed systems. In Proceedings of the 17th International Conference on Formal Engineering Methods (ICFEM’15), Michael Butler, Sylvain Conchon, and Fatiha Zaïdi (Eds.). LNCS, Vol. 9407. Springer.Google ScholarGoogle Scholar
  41. Jesús Doménech, Samir Genaim, Einar Broch Johnsen, and Rudolf Schlatte. 2017. Easyinterface: A toolkit for rapid development of GUIs for research prototype tools. In Proceedings of the 20th International Conference on Fundamental Approaches to Software Engineering (FASE’17), Marieke Huisman and Julia Rubin (Eds.). LNCS, Vol. 10202. Springer, 379--383.Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Kiko Fernandez-Reyes, Dave Clarke, and Daniel S. McCain. 2016. ParT: An asynchronous parallel abstraction. In Proceedings of the 18th International Conference on Coordination Models and Languages (COORDINATION’16), Alberto Lluch Lafuente and José Proença (Eds.). LNCS, Vol. 9686. Springer, 101--120.Google ScholarGoogle Scholar
  43. Elena Giachino, Cosimo Laneve, and Michael Lienhardt. 2016. A framework for deadlock detection in core ABS. Softw. Syst. Model. 15, 4 (2016), 1013--1048. DOI:http://dx.doi.org/10.1007/s10270-014-0444-y Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes, and Doug Lea. 2006. Java Concurrency in Practice. Addison-Wesley.Google ScholarGoogle Scholar
  45. Reiner Hähnle, Michiel Helvensteijn, Einar Broch Johnsen, Michael Lienhardt, Davide Sangiorgi, Ina Schaefer, and Peter Y. H. Wong. 2013. HATS abstract behavioral specification: The architectural view. In Proceedings of the International Coference on Formal Methods for Components and Objects (FMCO’12), Bernhard Beckert, Ferruccio Damiani, Frank de Boer, and Marcello M. Bonsangue (Eds.). LNCS, Vol. 7542. Springer, 109--132.Google ScholarGoogle Scholar
  46. Philipp Haller and Martin Odersky. 2009. Scala actors: Unifying thread-based and event-based programming. Theoret. Comput. Sci. 410, 2--3 (2009), 202--220.Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Robert H. Halstead, Jr. 1985. MULTILISP: A language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7, 4 (Oct. 1985), 501--538. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Max Haustein and Klaus-Peter Löhr. 2006. JAC: Declarative java concurrency. Concurr. Comput.: Pract. Exper. 18, 5 (2006), 519--546.Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Ludovic Henrio, Fabrice Huet, and Zsolt István. 2013. Multi-threaded active objects. In Proceedings of the 15th International Conference on Coordination Models and Languages, Florence, Italy (COORDINATION’13), Christine Julien and Rocco De Nicola (Eds.). LNCS, Vol. 7890. Springer, 90--104.Google ScholarGoogle ScholarCross RefCross Ref
  50. Ludovic Henrio, Florian Kammüller, and Bianca Lutz. 2012. ASPfun: A typed functional active object calculus. Sci. Comput. Program. 77, 7--8 (July 2012), 823--847. 01676423Google ScholarGoogle Scholar
  51. Ludovic Henrio, Muhammad Uzair Khan, Nadia Ranaldo, and Eugenio Zimeo. 2010. First class futures: Specification and implementation of update strategies. In Selected Papers of the Coregrid Workshop on Grids, Clouds and P2P Computing, Mario R. Guarracino, Frédéric Vivien, Jesper Larsson Träff, Mario Cannataro, Marco Danelutto, Anders Hast, Francesca Perla, Andreas Knüpfer, Beniamino Di Martino, and Michael Alexander (Eds.). LNCS, Vol. 6586. Springer, 295--303.Google ScholarGoogle Scholar
  52. Ludovic Henrio, Oleksandra Kulankhina, Siqi Li, and Eric Madelaine. 2016. Integrated environment for verifying and running distributed components. In Proceedings of the International Conference on Fundamental Approaches to Software Engineering (FASE’16), Perdita Stevens and Andrzej Wasowski (Eds.). LNCS, Vol. 9633. Springer, 66--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Ludovic Henrio and Justine Rochas. 2014. Declarative scheduling for active objects. In Proceedings of the Symposium on Applied Computing (SAC’14), Sung Y. Shin (Ed.). ACM Press, 1339--1344. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Ludovic Henrio and Justine Rochas. 2016. From modelling to systematic deployment of distributed active objects. In Proceedings of the 18th International Conference on Coordination Models and Languages (COORDINATION’16), Alberto Lluch Lafuente and José Proena (Eds.). LNCS, Vol. 9686. Springer. Google ScholarGoogle ScholarCross RefCross Ref
  55. Carl Hewitt, Peter Bishop, and Richard Steiger. 1973. A universal modular ACTOR formalism for artificial intelligence. In Proceedings of the 3rd International Joint Conference on Artificial Intelligence (IJCAI’73), Nils J. Nilsson (Ed.). W. Kaufmann, 235--245.Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Highly Adaptable and Trustworthy Software using Formal Models 2011. Full ABS Modeling Framework. (March 2011). Deliverable 1.2 of project FP7-231620 (HATS) retrieved from http://www.hats-project.eu.Google ScholarGoogle Scholar
  57. Tony Hoare. 1985. Communicating Sequential Processes. Prentice Hall.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Hossein Hojjat, Marjan Sirjani, Mohammad Reza Mousavi, and Jan Friso Groote. 2007. Sarir: A rebeca to mCRL2 translator. In Proceeding of the 7th International Conference on Application of Concurrency to System Design (ACSD’07), Twan Basten, Gabriel Juhás, and Sandeep K. Shukla (Eds.). IEEE Press, 216--222.Google ScholarGoogle ScholarCross RefCross Ref
  59. Ali Jafari, Ehsan Khamespanah, Marjan Sirjani, and Holger Hermanns. 2014. Performance analysis of distributed and asynchronous systems using probabilistic timed actors. Electron. Commun. Eur. Assoc. Softw. Sci. Technol. 70 (2014).Google ScholarGoogle Scholar
  60. Mohammad Mahdi Jaghoori, Marjan Sirjani, Mohammad Reza Mousavi, Ehsan Khamespanah, and Ali Movaghar. 2010. Symmetry and partial order reduction techniques in model checking Rebeca. Acta Inform. J. 47, 1 (2010), 33--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Einar Broch Johnsen, Reiner Hähnle, Jan Schäfer, Rudolf Schlatte, and Martin Steffen. 2011. ABS: A core language for abstract behavioral specification. In Proceedings of the International Conference on Formal Methods for Components and Objects (FMCO’10), Bernhard Aichernig, Frank S. de Boer, and Marcello M. Bonsangue (Eds.). LNCS, Vol. 6957. Springer, 142--164.Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Einar Broch Johnsen and Olaf Owe. 2007. An asynchronous communication model for distributed concurrent objects. Softw. Syst. Model. 6, 1 (March 2007), 35--58. Google ScholarGoogle ScholarCross RefCross Ref
  63. Einar Broch Johnsen, Olaf Owe, and Marte Arnestad. 2003. Combining active and reactive behavior in concurrent objects. In Proceedings of the of the Norwegian Informatics Conference (NIK’03), Dag Langmyhr (Ed.). Tapir Academic Publisher, 193--204.Google ScholarGoogle Scholar
  64. Einar Broch Johnsen, Olaf Owe, and Ingrid Chieh Yu. 2006. Creol: A type-safe object-oriented model for distributed concurrent systems. Theoret. Comput. Sci. 365, 1 (2006), 23--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Einar Broch Johnsen, Rudolf Schlatte, and S. Lizeth Tapia Tarifa. 2015. Integrating deployment architectures and resource consumption in timed object-oriented models. J. Logic. Algebr. Methods Program. 84, 1 (2015), 67--91. Google ScholarGoogle ScholarCross RefCross Ref
  66. Ehsan Khamespanah, Marjan Sirjani, Mohammad Reza Mousavi, Zeynab Sabahi-Kaviani, and Mohamadreza Razzazi. 2015a. State distribution policy for distributed model checking of actor models. Electron. Commun. Eur. Assoc. Softw. Sci. Technol. 72 (2015).Google ScholarGoogle Scholar
  67. Ehsan Khamespanah, Marjan Sirjani, Zeynab Sabahi-Kaviani, Ramtin Khosravi, and Mohammad-Javad Izadi. 2015b. Timed rebeca schedulability and deadlock freedom analysis using bounded floating time transition system. Sci. Comput. Program. 98 (2015), 184--204. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Ehsan Khamespanah, Marjan Sirjani, Mahesh Viswanathan, and Ramtin Khosravi. 2015c. Floating time transition system: More efficient analysis of timed actors. In Proceedings of the 12th Intl. Symp. on Formal Aspects of Component Software (FACS), Christiano Braga and Peter Csaba Ölveczky (Eds.). LNCS, Vol. 9539. Springer, 237--255.Google ScholarGoogle Scholar
  69. Eric Lin and Hridesh Rajan. 2013. Panini: A capsule-oriented programming language for implicitly concurrent program design. In Proceedings of the Conference on Systems, Programming, and Applications: Software for Humanity (SPLASH’13), Antony L. Hosking and Patrick Eugster (Eds.). ACM Press, 19--20. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Barbara Liskov and Ljuba Shrira. 1988. Promises: Linguistic support for efficient asynchronous procedure calls in distributed systems. In Proceedings of the Conference of Programming Language Design and Implementation (PLDI’88), Richard L. Wexelblat (Ed.). ACM Press, New York, NY, 260--267.Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Daniel McCain. 2015. Parallel Combinators for the Encore Programming Language. Master’s thesis. Uppsala University.Google ScholarGoogle Scholar
  72. Bertrand Meyer. 1992. Applying “design by contract.”IEEE Comput. 25, 10 (Oct. 1992), 40--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Bertrand Meyer. 1993. Systematic concurrent object-oriented programming. Commun. ACM 36, 9 (Sept. 1993), 56--80. DOI:http://dx.doi.org/10.1145/162685.162705 Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Mark S. Miller, E. Dean Tribble, and Jonathan Shapiro. 2005. Concurrency among strangers: Programming in E as plan coordination. In Proceedings of the International Symposium on Trustworthy Global Computing (TGC’05), Rocco De Nicola and Davide Sangiorgi (Eds.). LNCS, Vol. 3705. Springer, 195--229.Google ScholarGoogle ScholarCross RefCross Ref
  75. Robin Milner. 1989. Communication and Concurrency. Prentice Hall.Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Jayadev Misra. 2001. A Discipline of Multiprogramming: Programming Theory for Distributed Applications. Springer, Secaucus, NJ. Google ScholarGoogle ScholarCross RefCross Ref
  77. Niloofar Razavi, Razieh Behjati, Hamideh Sabouri, Ehsan Khamespanah, Amin Shali, and Marjan Sirjani. 2010. Sysfier: Actor-based formal verification of SystemC. ACM Trans. Embed. Comput. Syst. 10, 2 (2010), 19. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Arni Hermann Reynisson, Marjan Sirjani, Luca Aceto, Matteo Cimini, Ali Jafari, Anna Ingólfsdóttir, and Steinar Hugi Sigurdarson. 2014. Modelling and simulation of asynchronous real-time systems using timed rebeca. Sci. Comput. Program. 89 (2014), 41--68. Google ScholarGoogle ScholarCross RefCross Ref
  79. Justine Rochas and Ludovic Henrio. 2014. A ProActive Backend for ABS: from Modelling to Deployment. Research Report RR-8596. INRIA. Retrieved from https://hal.inria.fr/hal-01065072.Google ScholarGoogle Scholar
  80. Zeynab Sabahi-Kaviani, Ramtin Khosravi, Peter Csaba Ölveczky, Ehsan Khamespanah, and Marjan Sirjani. 2015. Formal semantics and efficient analysis of timed rebeca in real-time maude. Sci. Comput. Program. 113 (2015), 85--118. Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Hamideh Sabouri and Ramtin Khosravi. 2013. Modeling and verification of reconfigurable actor families. J. Univers. Comput. Sci. 19, 2 (2013), 207--232.Google ScholarGoogle Scholar
  82. Jan Schäfer and Arnd Poetzsch-Heffter. 2010. JCoBox: Generalizing active objects to concurrent components. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP’10), Theo D’Hondt (Ed.). LNCS, Vol. 6183. Springer, 275--299.Google ScholarGoogle ScholarCross RefCross Ref
  83. Vlad Serbanescu, Chetan Nagarajagowda, Keyvan Azadbakht, Frank de Boer, and Behrooz Nobakht. 2014. Towards type-based optimizations in distributed applications using ABS and JAVA 8. In First International Workshop on Adaptive Resource Management and Scheduling for Cloud Computing, Florin Pop and Maria Potop-Butucaru (Eds.). LNCS, Vol. 8907. Springer, 103--112. Google ScholarGoogle ScholarCross RefCross Ref
  84. Steinar Hugi Sigurdarson, Marjan Sirjani, Yngvi Björnsson, and Arni Hermann Reynisson. 2012. Guided search for deadlocks in actor-based models. In Proceedings of the 9th International Symposium on Formal Aspects of Component Software (FACS’12), Corina S. Pasareanu and Gwen Salaün (Eds.). LNCS, Vol. 7684. Springer, 242--259.Google ScholarGoogle Scholar
  85. Marjan Sirjani, Frank S. de Boer, Ali Movaghar, and Amin Shali. 2005. Extended rebeca: A component-based actor language with synchronous message passing. In Proceedings of the 5th International Conference on Application of Concurrency to System Design (ACSD’05), Jörg Desel and Yosinori Watanabe (Eds.). IEEE Press, 212--221. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. Marjan Sirjani, Frank S. de Boer, and Ali Movaghar-Rahimabadi. 2005. Modular verification of a component-based actor language. J. Univers. Comput. Sci. 11, 10 (2005), 1695--1717.Google ScholarGoogle Scholar
  87. Marjan Sirjani and Mohammad Mahdi Jaghoori. 2011. Ten years of analyzing actors: Rebeca experience. In Formal Modeling: Actors, Open Systems, Biological Systems, Gul Agha, Olivier Danvy, and José Meseguer (Eds.). LNCS, Vol. 7000. Springer, 20--56.Google ScholarGoogle Scholar
  88. Marjan Sirjani, Movaghar, and Mohammad Reza Mousavi. 2001. Compositional verification of an object-based model for reactive systems. In Proceedings of the 11th Computer Science of Iran Computer Conference (CSICC’01).Google ScholarGoogle Scholar
  89. Marjan Sirjani, Ali Movaghar, Amin Shali, and Frank S. de Boer. 2004. Modeling and verification of reactive systems using rebeca. Fundam. Inform. 63, 4 (2004), 385--410.Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Peter Y. H. Wong, Elvira Albert, Radu Muschevici, José Proença, Jan Schäfer, and Rudolf Schlatte. 2012. The ABS tool suite: Modelling, executing and analysing distributed adaptable object-oriented systems. J. Softw. Tools Technol. Transfer 14, 5 (2012), 567--588. Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Derek Wyatt. 2013. Akka Concurrency. Artima.Google ScholarGoogle Scholar
  92. Yasuhiko Yokote and Mario Tokoro. 1987. Concurrent programming in concurrentSmalltalk. In Object-Oriented Concurrent Programming, Akinori Yonezawa and Mario Tokoro (Eds.). MIT Press, 129--158.Google ScholarGoogle Scholar
  93. Akinori Yonezawa, Jean-Pierre Briot, and Etsuya Shibayama. 1986. Object-oriented concurrent programming in ABCL/1. In Proceedings of the ACM International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA’86), Norman K. Meyrowitz (Ed.). ACM Press, 258--268.Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Behnaz Yousefi, Fatemeh Ghassemi, and Ramtin Khosravi. 2015. Modeling and efficient verification of broadcasting actors. In Proceedings of the 6th International Conference on Fundamentals of Software Engineering (FSEN’09), Mehdi Dastani and Marjan Sirjani (Eds.). LNCS, Vol. 9392. Springer, 69--83. Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Behnaz Yousefi, Fatemeh Ghassemi, and Ramtin Khosravi. 2016. Modeling and efficient verification of wireless ad hoc networks (unpublished).Google ScholarGoogle Scholar

Index Terms

  1. A Survey of Active Object Languages

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM Computing Surveys
        ACM Computing Surveys  Volume 50, Issue 5
        September 2018
        573 pages
        ISSN:0360-0300
        EISSN:1557-7341
        DOI:10.1145/3145473
        • Editor:
        • Sartaj Sahni
        Issue’s Table of Contents

        Copyright © 2017 ACM

        © 2017 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 5 October 2017
        • Accepted: 1 July 2017
        • Revised: 1 May 2017
        • Received: 1 November 2016
        Published in csur Volume 50, Issue 5

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • survey
        • Research
        • Refereed

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader