Publication
The IOA Language and Toolset: Support for Designing,
Analyzing, and Building Distributed Systems
Stephen J. Garland and Nancy A. Lynch
Technical Report MIT-LCS-TR-762, MIT Laboratory for Computer Science,
Cambridge, Massachusetts, August 1998
Abstract
This paper presents a new language for distributed programming, the IOA language, together with a design
for a suite of tools, the IOA toolset, that support the production of high-quality distributed
software. The language and tools are based on the I/O automaton model, which has been used extensively to
describe and verify distributed algorithms. The toolset supports a development process that begins with a
high-level specification, refines that specification via successively more detailed designs, and ends by
automatically generating efficient distributed programs. The toolset encourages system decomposition,
which helps make distributed programs understandable and easy to modify. Most importantly, it provides a
variety of validation methods (theorem proving, model checking, and simulation), which can be used to
ensure that the generated programs are correct, subject to stated assumptions about externally-provided
system services (e.g., communication services).
Download:
PDF