AmbientTalk: programming responsive mobile peer-to-peer applications with actors - Van Cutsem, Tom; Gonzalez Boix, Elisa; Scholliers, Christophe; Lombide Carreton, Andoni; Harnie, Dries; Pinte, Kevin; De Meuter, Wolfgang (Computer languages, systems & structures, 2014)
The rise of mobile computing platforms has given rise to a new class of applications: mobile applications that interact with peer applications running on neighbouring phones. Developing such applications is challenging because of problems inherent to concurrent and distributed programming, and because of problems inherent to mobile networks, such as the fact that wireless network connectivity is often intermittent, and the lack of centralized infrastructure to coordinate the peers. We present AmbientTalk, a distributed programming language designed specifically to develop mobile peer-to-peer applications. AmbientTalk aims to make it easy to develop mobile applications that are resilient to network failures by design. We describe the language׳s concurrency and distribution model in detail, as it lies at the heart of AmbientTalk׳s support for responsive, resilient application development. The model is based on communicating event loops, itself a descendant of the actor model. We contribute a small-step operational semantics for this model and use it to establish data race and deadlock freedom. •We discuss the challenges of developing responsive mobile peer-to-peer applications.•We introduce AmbientTalk, an actor-based distributed programming language designed to develop such applications.•We compare an AmbientTalk application to an equivalent one in Java RMI.•We define a small-step operational semantics for a subset of AmbientTalk.•We establish data race and deadlock freedom of the concurrency model.