From Procedures, Objects, Actors, Components, Services, to Agents -- A Comparative Analysis of the History and Evolution of Programming Abstractions
Abstract: The objective of this chapter is to propose some retrospective analysis of the evolution of programming abstractions, from {\em procedures}, {\em objects}, {\em actors}, {\em components}, {\em services}, up to {\em agents}, %have some compare concepts of software component and of agent (and multi-agent system), %The method chosen is to by replacing them within a general historical perspective. Some common referential with three axes/dimensions is chosen: {\em action selection} at the level of one entity, {\em coupling flexibility} between entities, and {\em abstraction level}. We indeed may observe some continuous quest for higher flexibility (through notions such as {\em late binding}, or {\em reification} of {\em connections}) and higher level of {\em abstraction}. Concepts of components, services and agents have some common objectives (notably, {\em software modularity and reconfigurability}), with multi-agent systems raising further concepts of {\em autonomy} and {\em coordination}. notably through the notion of {\em auto-organization} and the use of {\em knowledge}. We hope that this analysis helps at highlighting some of the basic forces motivating the progress of programming abstractions and therefore that it may provide some seeds for the reflection about future programming abstractions.
- Agha, G.: Actors: a Model of Concurrent Computation in Distributed Systems. Series in Artificial Intelligence. MIT Press (1986)
- Research Report CMU-CS-94-115, Department of Computer Science, Carnegie Mellon University, Pittsburgh, PA, USA (1994)
- IEEE Computer 32(7), 38–45 (1999)
- IBM Systems Journal 41(3), 350–371 (2002)
- Boissier, O.: (editor) Composants et systèmes multi-agents. L’Objet 12(4) (2006)
- Informatica 30(1), 33–44 (2006)
- Briot, J.P.: Modélisation et classification de langages de programmation concurrente à objets : l’expérience Actalk. In: Actes du Colloque Langages et Modèles à Objets (LMO 94), pp. 153–165. INRIA/IMAG/PRC-IA, Grenoble, France (1994)
- Briot, J.P.: An experiment in classification and specialization of synchronization schemes. In: K. Futatsugi, S. Matsuoka (eds.) Object Technologies for Advanced Software (ISOTAS 96), no. 1049 in LNCS, pp. 227–249. Springer, Kanazawa, Japan (1996)
- Briot, J.P.: Composants et agents : évolution de la programmation et analyse comparative. Technique et Science Informatiques (TSI) 33(1-2), 85–115 (2014)
- In: B. Meyer (ed.) The French School of Programming, pp. 125–146. Springer Cham (2024)
- In: J. McDermott (ed.) 10th International Joint Conference on Artificial Intelligence (IJCAI’87), vol. 1, pp. 40–43. Morgan-Kaufmann, Milano, Italy (1987)
- Technique et Science Informatiques (TSI) 15(6), 765–800 (1996). ISSN: 0752-4072. Special Issue: Systèmes à objets : tendances actuelles et évolution, edited by Amedeo Napoli and Jean-François Perrot.
- Computing Surveys 30(3), 291–329 (1998)
- In: R.H. Bordini, M. Dastani, J. Dix, A.E.F. Seghrouchni (eds.) Programming Multi-Agent Systems - ProMAS 2006, no. 4411 in LNCS, pp. 73–92. Springer (2007)
- In: 7th International Symposium on Component-Based Software Engineering, no. 3054 in LNCS, pp. 7–22. Springer (2004)
- Caromel, D.: Toward a method of object-oriented concurrent programming. Communications of the ACM (CACM) 36(9), 90–102 (1993)
- Castagna, G.: Covariance and contravariance: Conflict without a cause. ACM Transactions on Programming Languages and Systems (TOPLAS) 17, 431–447 (1995)
- Eyrolles (2002)
- Technical Report TR2000-381, Department of Computer Science, Dartmouth College, Hanover, NH, USA (2000)
- Cointe, P.: Metaclasses are first class: The ObjVlisp model. In: Conference Proceedings on Object-Oriented Programming Systems, Languages and Applications (OOPSLA ’87), pp. 156–162. ACM (1987)
- No. 1616 in LNCS. Springer (1999)
- Communications of the ACM 48(3), 49–53 (2005)
- IEEE Transactions on Software Engineering 37(5), 593–615 (2011)
- In: OOPSLA ’06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, pp. 986–997. ACM (2006)
- Journal of Autonomous Agents and Multi-Agent Systems (JAAMAS) 1(1), 113–129 (1998)
- In: M. Oussalah, F. Oquendo (eds.) 1ère Conférence francophone sur les Architectures Logicielles (CAL 2006). Hermès/Lavoisier, Nantes, France (2006)
- ACM Computing Surveys 35(2), 114–131 (2003)
- In: 3rd International Conference on Multi-Agent Systems (ICMAS 98), pp. 128–135. IEEE, Paris, France (1998)
- In: J. Bradshaw (ed.) Software Agents, pp. 291–316. MIT-Press (1997)
- FIPA: Agent Communication Language Specifications (accessed: 13/08/2021). http://www.fipa.org/repository/aclspecs.html
- FIPA: Foundation for Intelligent Physical Agents (accessed: 13/08/2021). http://www.fipa.org/
- In: N.M. Avouris, L. Gasser (eds.) Distributed Artificial Intelligence: Theory and Praxis, pp. 81–107. Kluwer (1992)
- IEEE Concurrency 6(4), 74–81 (1998). Interview of Les Gasser by Jean-Pierre Briot
- Communications of the ACM 35(2) (1992)
- In: 5th International Workshop on Intelligent Agents V: Agent Theories, Architectures, and Languages (ATAL’98), no. 1555 in LNCS, pp. 1–10. Springer (1999)
- In: Monterey Workshop on Radical Approaches to Software Engineering. Venezia, Italy (2002)
- Hewitt, C.: Viewing control structures as patterns of passing messages. Artificial Intelligence 8(3), 323–364 (1977)
- International Journal of Agent-Oriented Software Engineering (IJAOSE) 1(3–4), 370–395 (2007)
- RoboCup Federation Inc: RoboCup (accessed: 13/08/2021). https://www.robocup.org/
- Janson, P.A.: Dynamic linking and environment initialization in a multi-domain process. ACM SIGOPS Operating Systems Review 9(5), 43–50 (1975)
- IEEE Concurrency 6(2), 24–29 (1998)
- MIT Press (1991)
- IEEE Transactions on Software Engineering 33(10), 709–724 (2007)
- Meyer, B.: Object-Oriented Software Construction. Prentice Hall (1988)
- Meyer, B.: Applying design by contract. IEEE Computer 25(10), 40–51 (1992)
- Technical Report RR-93-26, DFKI, Saarbrücken, Germany (1993)
- OASIS: Open composite services architecture (CSA). Tech. rep., OASIS (Organization for the Advancement of Structured Information Standards), http://www.oasis-opencsa.org (accessed: 13/08/2021)
- OASIS: Web services business process execution language (BPEL). Tech. rep., OASIS (Organization for the Advancement of Structured Information Standards), http://bpel.xml.org (accessed: 13/08/2021)
- Odell, J.: Objects and agents compared. Journal of Object Technology (JOT) 1(1) (2002)
- Artima (2010)
- OMG: Common object request broker architecture (CORBA). Tech. rep., Object Management Group (OMG), http://www.omg.org/corba/ (accessed: 13/08/2021)
- OMG: Corba component model (CCM). Tech. rep., Object Management Group (OMG), http://www.omg.org/technology/documents/formal/components.htm (accessed: 13/08/2021)
- OMG: Model driven architecture (MDA). Tech. rep., Object Management Group (OMG), http://www.omg.org/mda/ (accessed: 13/08/2021)
- Journal of Autonomous Agents and Multi-Agent Systems (JAAMAS) 17(3), 432–456 (2008)
- Pearson (2012)
- Payne, T.: Web services from an agent perspective. IEEE Intelligent Systems 23(2), 12–14 (2008)
- In: R. Ducournau, J. Euzenat, G. Masini, A. Napoli (eds.) Langages et modèles à objets – État des recherches et perspectives, Collection Didactique, pp. 3–31. INRIA (1998)
- Prentice Hall (1996)
- Shoham, Y.: Agent oriented programming. Artificial Intelligence 60(1), 51–92 (1993)
- In: International Conference on Autonomous Agents and Multi-Agent Systems (AAMAS 2005). Utrecht, The Netherlands (2005)
- Smith, R.: The contract net protocol: High-level communication and control in a distributed problem solver. IEEE Transactions on Computers 29(12), 1104–1113 (1980)
- In: AISB 2004 Convention 4th Symposium on Adaptive Agents and Multi-Agent Systems (AAMAS-4), pp. 130–145. Leeds, UK (2004)
- Sun: Javabeans specification. Tech. rep., Sun Microsystems Inc., http://java.sun.com/products/javabeans/ (2006)
- Pearson Education (2002)
- W3C: World Wide Web Consortium (accessed: 13/08/2021). https://www.w3.org/
- In: D. Weyns, H.V.D. Parunak, F. Michel (eds.) Environments for Multi-Agent Systems – First International Workshop, E4MAS 2004, New York, NY, July 19, 2004, Revised Selected Papers, no. 3374 in LNAI, pp. 1–47. Springer (2005)
- Sigplan Notices 21(11), 258–268 (1986). Special Issue. Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 86), Portland OR, USA
- No. 7426 in LNAI. Springer (2012)
Paper Prompts
Sign up for free to create and run prompts on this paper.