Ambient-oriented programming

A new field in distributed computing, called Ambient In-telligence, has emerged as a consequence of the increasing availability of wireless devices and the mobile networks they induce. Developing software for such mobile networks is extremely hard in conventional programming languages because the network is dynamically defined. This hardware phenomenon leads us to postulate a suite of characteristics of future Ambient-Oriented Programming languages. A simple re ective programming language kernel, called AmbientTalk, that meets these characteristics is subsequently presented. The power of the re ective kernel is illustrated by using it to conceive a collection of high level tentative ambient-oriented programming language features.

[1]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[2]  Robbert van Renesse,et al.  Six misconceptions about reliable distributed computing , 1998, EW 8.

[3]  Luca Cardelli,et al.  Mobile Ambients , 1998, FoSSaCS.

[4]  Gul Agha,et al.  Concurrent programming using actors , 1987 .

[5]  Edward Wobber,et al.  Network objects , 1994, SOSP '93.

[6]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[7]  Carlos A. Varela,et al.  What after Java? From Objects to Actors , 1998, Comput. Networks.

[8]  Adrian Friday,et al.  Guidelines and open issues in systems support for Ubicomp: reflections on UbiSys 2003 and 2004 , 2005, Personal and Ubiquitous Computing.

[9]  Akinori Yonezawa,et al.  Object-oriented concurrent programming ABCL/1 , 1986, OOPLSA '86.

[10]  Jim Waldo,et al.  A Note on Distributed Computing , 1996, Mobile Object Systems.

[11]  Gul A. Agha,et al.  Open Heterogeneous Computing in Actor Space , 1994, J. Parallel Distributed Comput..

[12]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[13]  Kenneth M. Kahn,et al.  Actors as a special case of concurrent constraint (logic) programming , 1990, OOPSLA/ECOOP '90.

[14]  Lidia Fuentes,et al.  An aspect-oriented ambient intelligence middleware platform , 2005, MPAC '05.

[15]  M. Frans Kaashoek,et al.  Rover: a toolkit for mobile information access , 1995, SOSP.

[16]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[17]  Vinny Cahill,et al.  Towards group communication for mobile participants. , 2001 .

[18]  S. Kummel,et al.  System support for mobile distributed applications , 1995, Second International Workshop on Services in Distributed and Networked Environments.

[19]  Andrew P. Black,et al.  Fine-grained mobility in the Emerald system , 1987, TOCS.

[20]  Gul A. Agha,et al.  ActorSpace: an open distributed programming paradigm , 1993, PPOPP '93.

[21]  Paul A. Reynolds,et al.  DOLMEN-service machine development for an open long-term mobile and fixed network environment , 1996 .

[22]  Amy L. Murphy,et al.  LIME: a middleware for physical and logical mobility , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[23]  Randall B. Smith,et al.  Self: The power of simplicity , 1987, OOPSLA 1987.

[24]  Steven Lucco,et al.  Parallel programming in a virtual object space , 1987, OOPSLA '87.

[25]  Jessie Dedecker,et al.  Actors for Mobile Ad-Hoc Networks , 2004, EUC.

[26]  Satoshi Matsuoka,et al.  ABCL/f: A Future-Based Polymorphic Typed Concurrent Object-Oriented Language- Its Design and Implementation , 1994, Specification of Parallel Algorithms.

[27]  Richard P. Gabriel Lisp : Good News Bad News How to Win Big , 1990 .

[28]  George Coulouris,et al.  Distributed systems (3rd ed.): concepts and design , 2000 .

[29]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[30]  Takashi Masuda,et al.  Designing an Extensible Distributed Language with a Meta-Level Architecture , 1993, ECOOP.

[31]  MaesPattie Concepts and experiments in computational reflection , 1987 .

[32]  Luca Cardelli,et al.  Modern concurrency abstractions for C# , 2002, TOPL.

[33]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[34]  Steven E. Lucco Parallel programming in a virtual object space , 1987, OOPSLA 1987.

[35]  Gilad Bracha,et al.  Mirrors: design principles for meta-level facilities of object-oriented programming languages , 2004, OOPSLA.

[36]  Henry Lieberman,et al.  Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems , 1986, OOPSLA.

[37]  Denis Caromel,et al.  A Theory of Distributed Objects , 2005 .

[38]  Klaus-Peter Löhr Concurrency annotations , 1992, OOPSLA 1992.

[39]  Satoshi Matsuoka,et al.  Implementing Parallel Language Constructs Using a Re ective Object-Oriented Language , 1998 .

[40]  Andrew P. Black,et al.  Encapsulating Plurality , 1993, ECOOP.

[41]  Bertrand Meyer,et al.  Systematic concurrent object-oriented programming , 1993, CACM.

[42]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[43]  Marlon Dumas,et al.  The 3DMA Middleware for Mobile Applications , 2004, EUC.

[44]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[45]  Robert Tolksdorf,et al.  Programming distributed systems with the delegation-based object-oriented language dSelf , 2002, SAC '02.

[46]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[47]  Theo D'Hondt,et al.  Of first-class methods and dynamic scope , 2003, Obj. Logiciel Base données Réseaux.

[48]  Diego Calvanese,et al.  The description logic handbook: theory , 2003 .

[49]  Hans-Peter Bischof,et al.  Many-to-Many Invocation: a new object oriented paradigm for ad hoc collaborative systems , 2002, OOPSLA '02.

[50]  Terry A. McKee,et al.  OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications , 1989 .

[51]  Vinny Cahill,et al.  STEAM: event-based middleware for wireless ad hoc networks , 2002, Proceedings 22nd International Conference on Distributed Computing Systems Workshops.

[52]  Alan Snyder Encapsulation and inheritance in object-oriented programming languages , 1986, OOPSLA 1986.

[53]  Jonathan S. Shapiro,et al.  Concurrency among strangers: programming in E as plan coordination , 2005 .

[54]  Marvin Theimer,et al.  Flexible update propagation for weakly consistent replication , 1997, SOSP.

[55]  Craig Chambers,et al.  An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes , 1989, OOPSLA '89.

[56]  Henry M. Levy,et al.  Capability-Based Computer Systems , 1984 .

[57]  Dennis Kafura,et al.  ACT++: Building a Concurrent C++ with Actors , 1989 .

[58]  Jeff McAffer Meta-level Programming with CodA , 1995, ECOOP.

[59]  Carlos A. Varela,et al.  Programming dynamically reconfigurable open systems with SALSA , 2001, SIGP.

[60]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[61]  Suresh Jagannathan,et al.  Environments as first class objects , 1987, POPL '87.

[62]  C. Tomlinson,et al.  Inheritance and Synchronization with Enabled Sets , 1989, OOPSLA.

[63]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977, Artificial Intelligence and Programming Languages.

[64]  Cecilia Mascolo,et al.  Mobile Computing Middleware , 2002, NETWORKING Tutorials.

[65]  T. V. Cutsem,et al.  Distributed Proxies as Delegation-based Descendants , 2005 .

[66]  Satoshi Matsuoka,et al.  Analysis of inheritance anomaly in object-oriented concurrent programming languages , 1993 .

[67]  Patrick Steyaert,et al.  A Marriage of Class- and Object-Based inheritance Without Unwanted Children , 1995, ECOOP.

[68]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[69]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[70]  Alexander L. Wolf,et al.  Design and Evaluation of a Support Service for Mobile, Wireless Publish/Subscribe Applications , 2003, IEEE Trans. Software Eng..

[71]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[72]  Gordon S. Blair,et al.  An asynchronous distributed systems platform for heterogeneous environments , 1998, ACM SIGOPS European Workshop.

[73]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[74]  A. Ghiroldi,et al.  Ambient Intelligence-from vision to reality , 2003 .

[75]  Valérie Issarny,et al.  QoS-aware service location in mobile ad hoc networks , 2004, IEEE International Conference on Mobile Data Management, 2004. Proceedings. 2004.

[76]  Satoshi Matsuoka,et al.  Metalevel solution to inheritance anomaly in concurrent object-oriented l~nguages , 1990 .

[77]  Mark Weiser,et al.  Some computer science issues in ubiquitous computing , 1993, CACM.

[78]  Mads Haahr,et al.  Supporting CORBA applications in a mobile environment , 1999, MobiCom.

[79]  Pierre Cointe,et al.  Towards a methodology for explicit composition of metaobjects , 1995, OOPSLA.

[80]  Andrew T. Campbell,et al.  A survey of QoS architectures , 1998, Multimedia Systems.

[81]  Hans-Arno Jacobsen,et al.  Using publish/subscribe middleware for mobile systems , 2002, MOCO.

[82]  Rachid Guerraoui,et al.  Concurrency and distribution in object-oriented programming , 1998, CSUR.

[83]  Luca Cardelli,et al.  A language with distributed scope , 1995, POPL '95.

[84]  Theo D'Hondt,et al.  Ambient-oriented programming in ambientTalk , 2005, OOPSLA '05.

[85]  Theo D'Hondt,et al.  Intersecting Classes and Prototypes , 2003, Ershov Memorial Conference.

[86]  Richard E. Barlow,et al.  Statistical Theory of Reliability and Life Testing: Probability Models , 1976 .

[87]  Amy L. Murphy,et al.  Content-Based Publish-Subscribe in a Mobile Environment , 2006, The Handbook of Mobile Middleware.

[88]  David De Roure,et al.  Sharing code through first-class environments , 1996, ICFP '96.

[89]  Franco Zambonelli,et al.  Programming pervasive and mobile computing applications with the TOTA middleware , 2004, Second IEEE Annual Conference on Pervasive Computing and Communications, 2004. Proceedings of the.

[90]  Carl Hewitt,et al.  The incremental garbage collection of processes , 1977 .

[91]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[92]  Craig Chambers,et al.  Organizing programs without classes , 1991, LISP Symb. Comput..

[93]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[94]  Jon Louis Bentley,et al.  Programming pearls: little languages , 1986, CACM.

[95]  Jim Waldo Constructing ad hoc networks , 2001, Proceedings IEEE International Symposium on Network Computing and Applications. NCA 2001.

[96]  John L. Bruno,et al.  A concurrency Mechanism for Sequential Eiffel , 1992, TOOLS.

[97]  Carolyn L. Talcott,et al.  1 Equivalence in Functional Languages with E ectsIan , 2007 .

[98]  Mahadev Satyanarayanan,et al.  Fundamental challenges in mobile computing , 1996, PODC '96.

[99]  Gregor Schiele,et al.  PCOM - a component system for pervasive computing , 2004, Second IEEE Annual Conference on Pervasive Computing and Communications, 2004. Proceedings of the.

[100]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[101]  Charles Antony Richard Hoare,et al.  Hints on programming language design. , 1973 .

[102]  Denis Caromel,et al.  Asynchronous and deterministic objects , 2004, POPL '04.

[103]  Mahadev Satyanarayanan,et al.  Coda: A Highly Available File System for a Distributed Workstation Environment , 1990, IEEE Trans. Computers.

[104]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[105]  David R. Jefferson,et al.  Virtual time , 1985, ICPP.

[106]  Klara Nahrstedt,et al.  QoS specification languages for distributed multimedia applications: a survey and taxonomy , 2004, IEEE MultiMedia.

[107]  Rachid Guerraoui,et al.  Software-Based Replication for Fault Tolerance , 1997, Computer.

[108]  M. Frans Kaashoek,et al.  Mobile Computing with the Rover Toolkit , 1997, IEEE Trans. Computers.

[109]  Akinori Yonezawa,et al.  Inheritance and Synchronization in Concurrent OOP , 1987, ECOOP.

[110]  Sam Toueg,et al.  A Modular Approach to Fault-Tolerant Broadcasts and Related Problems , 1994 .

[111]  Jack Trout,et al.  The Power Of Simplicity , 1998 .

[112]  James H. Aylor,et al.  Computer for the 21st Century , 1999, Computer.

[113]  Marvin Theimer,et al.  The Case for Non-transparent Replication: Examples from Bayou , 1998, IEEE Data Eng. Bull..

[114]  T. V. Cutsem,et al.  Abstractions for Context-aware Object References , 2005 .

[115]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[116]  David E. Culler,et al.  The nesC language: A holistic approach to networked embedded systems , 2003, PLDI.

[117]  Elisabetta Di Nitto,et al.  Content-Based Dispatching in a Mobile Environment , 2000 .

[118]  Cecilia Mascolo,et al.  XMIDDLE: information sharing middleware for a mobile environment , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[119]  Henry Lieberman,et al.  Using prototypical objects to implement shared behavior in object-oriented systems , 1986, OOPLSA '86.

[120]  Denis Caromel,et al.  A Step Toward Automatic Distribution of Java Programs , 2000, FMOODS.

[121]  Jessie Dedecker,et al.  Flexible object encapsulation for ambient-oriented programming , 2005, DLS '05.

[122]  Guy L. Steele,et al.  Growing a Language , 1999, High. Order Symb. Comput..