Language Engineering for Mobile Software

Mobile systems offer the possibility of delivering software services that tightly match user needs,thanks to their availability right at the moment and place where they are needed, and their ability to take advantage of local resources and self-adapt to their environment of use. Alas, writing software for mobile systems is not an easy endeavour. Mobile software construction imposes a number challenges that render existing programming technology insufficient to write such software conveniently. To improve this situation, we have taken a language engineering approach. In this chapter we identify the main challenges encountered in mobile software construction and the requirements they rise in the design of programming languages. By way of illustration, we present the result of our language engineering experiments —four programming models to ease the construction of software that can cope gracefully with the challenges brought about by mobility.

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

[2]  Pascal Costanza Context-oriented programming in ContextL: state of the art , 2008, LISP50.

[3]  Craig Chambers,et al.  Object-Oriented Multi-Methods in Cecil , 1992, ECOOP.

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

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

[6]  Oscar Nierstrasz,et al.  Explicit Namespaces , 2000, JMLC.

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

[8]  Guilherme Horta Travassos,et al.  ISPIS: From Conception towards Industry Readiness , 2007, XXVI International Conference of the Chilean Society of Computer Science (SCCC'07).

[9]  Theo D'Hondt,et al.  Feature Descriptions for Context-oriented Programming , 2008, SPLC.

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

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

[12]  Daniel G. Bobrow,et al.  Common lisp object system specification , 1988, SIGP.

[13]  Andrew P. Black,et al.  Fine-grained mobility in the emerald system , 1987, SOSP '87.

[14]  R. Kent Dybvig The Scheme Programming Language, ANSI Scheme , 1996 .

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

[16]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

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

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

[19]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

[20]  Oscar Nierstrasz,et al.  Piccola - A Small Composition Language , 1999, ECOOP Workshops.

[21]  Jonathan Aldrich,et al.  Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model , 2005, ECOOP.

[22]  Kim Mens,et al.  Context-Oriented Programming with the Ambient Object System , 2008, J. Univers. Comput. Sci..

[23]  Jeffrey D. Ullman Elements of ML programming , 1994 .

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

[25]  Gary T. Leavens,et al.  MultiJava: Design rationale, compiler implementation, and applications , 2006, TOPL.

[26]  Wolfgang De Meuter,et al.  Reactive queries in mobile ad hoc networks , 2008, MPAC '08.

[27]  Kim Mens,et al.  Transactional contexts: harnessing the power of context-oriented reflection , 2009, COP@ECOOP.

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

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

[30]  Theo D'Hondt,et al.  Ambient-Oriented Programming in AmbientTalk , 2006, ECOOP.

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

[32]  Theo D'Hondt,et al.  Context-oriented software transactional memory in common lisp , 2009, DLS '09.

[33]  Jessie Dedecker,et al.  AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks , 2007, XXVI International Conference of the Chilean Society of Computer Science (SCCC'07).