European Commission logo
español español
CORDIS - Resultados de investigaciones de la UE
CORDIS

Lightweight Verification of Software

Final Report Summary - LIVESOFT (Lightweight Verification of Software)

With the further spread of our society's IT backbone -- the Internet -- computer applications which in the end predominantly enable direct or indirect interaction and communication between humans continue to become more and more distributed. Developing distributed software is however extremely challenging. A major reason is that programmers have to reason about the effects of partial failures. Such failures involving only certain components, hosts, or communication links while others remain unaffected namely can lead to inconsistent states of distributed applications. This project proposed support for automated verification of distributed systems software at build-time, i.e. at compilation of program code. More precisely, the project extended the emerging paradigm of behavioral typing -- specifically session types -- to validate distributed software implementations by verifying that the interaction between different components retains consistency, even in the presence of partial failures. The project thus proposed protocol types, which, as their name suggests, enable the type-based verification of distributed protocols. A core outcome is a foundational theory which can be used or instantiated to support a variety of failure types and applications corresponding to real-world network computing infrastructures. Specifically, the project proposed a core formalism for an event-driven programming model of event handling loops, with subsessions spawned upon execution of event handlers, coordinated by participants dynamically selected among sets of participants, thus allowing for asynchronous parallel event handling while still supporting correct coordination in the presence of failed participants.