logo SBA

ETD

Digital archive of theses discussed at the University of Pisa

 

Thesis etd-10202017-104526


Thesis type
Tesi di dottorato di ricerca
Author
CANCIANI, ANDREA
URN
etd-10202017-104526
Thesis title
EvReact: a reactive approach to distributed and persistent programming
Academic discipline
INF/01
Course of study
SCIENZE DI BASE "GALILEO GALILEI"
Supervisors
tutor Cisternino, Antonio
commissario Berendt, Bettina
commissario Masulli, Francesco
commissario Talia, Domenico
Keywords
  • control-flow
  • distributed
  • evreact
  • reactive
Graduation session start date
01/11/2017
Availability
Full
Summary
Distributed systems are becoming pervasive, thanks to the increased availability of connectivity and smart devices, combined with the increase in the amount of data to be managed. The interest in actor-based frameworks and reactive programming has recently grown in response to their ability to ease the implementation of such distributed applications.
In fact, actors are a very effective way to express a message-driven computation as finite-state automata, while functional reactive programming is an extremely convenient way to represent event-driven data-flow computations. While both these options are very convenient in several cases, they lack the ability to express the control flow of a distributed application in a declarative and compositional way.
Another domain in which applications are commonly event-driven is that of User Interfaces. Even though the Observer Pattern is currently very widespread in this field, several alternatives which provide more structure and guarantees are well-known. This thesis work stems from GestIT, a framework which was designed specifically to provide a domain-specific language in which custom event patterns (“gestures”) could be defined and composed.
This gesture recognition language was conceived to handle a wide range of input devices and was tested on several of them. Nonetheless it was not possible to use it effectively with generic event sources. This thesis analyses some of the limitations of GestIT and attempts to resolve them. The new event pattern language, named EvReact, extends the approach of GestIT to enable its usage in a more general problem domain. This is achieved by means of a slightly increased expressiveness and stronger compositionality guarantees. EvReact has been implemented in two widely used programming languages and it has been evaluated by implementing applications from different domains, including UI gesturing and IoT services.
File