Automated implementation of complex distributed algorithms specified in the IOA language

  • Authors:
  • Chryssis Georgiou;Nancy Lynch;Panayiotis Mavrommatis;Joshua A. Tauber

  • Affiliations:
  • University of Cyprus, Department of Computer Science, Nicosia, Cyprus;MIT CSAIL, Cambridge, MA, USA;Google Inc., Mountain View, CA, USA;MIT CSAIL, Cambridge, MA, USA

  • Venue:
  • International Journal on Software Tools for Technology Transfer (STTT)
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

IOA is a formal language for describing Input/Output automata that serves both as a formal specification language and as a programming language (Garland et al. in http://theory.lcs.mit.edu/tds/ioa/manual.ps, 2004). The IOA compiler automatically translates IOA specifications into Java code that runs on a set of workstations communicating via the Message Passing Interface. This paper describes the process of compiling IOA specifications and our experiences running several distributed algorithms, ranging from simple ones such as the Le Lann, Chang and Roberts (LCR) leader election in a ring algorithm to that of Gallager, Humblet and Spira (GHS) for minimum-weight spanning tree formation in an arbitrary graph (Humblet et al. in ACM Trans Program Lang Syst 5(1):66–77, 1983). Our IOA code for all the algorithms is derived from their Input/Output automaton descriptions that have already been formally proved correct. The successful implementation of these algorithms is significant for two reasons: (a) it is an indication of the capabilities of the IOA compiler and of its advanced state of development, and (b) to the best of our knowledge, these are the first complex, distributed algorithms implemented in an automated way that have been formally and rigorously proved correct. Thus, this work shows that it is possible to formally specify, prove correct, and implement complex distributed algorithms using a common formal methodology.