ETD system

Electronic theses and dissertations repository


Tesi etd-10202017-104526

Thesis type
Tesi di dottorato di ricerca
EvReact: a reactive approach to distributed and persistent programming
Settore scientifico disciplinare
Corso di studi
tutor Cisternino, Antonio
commissario Berendt, Bettina
commissario Masulli, Francesco
commissario Talia, Domenico
Parole chiave
  • reactive
  • distributed
  • control-flow
  • evreact
Data inizio appello
Riassunto analitico
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.