Anna E. Chefter. A Simulator for the IOA Language Master of Engineering and Bachelor of Science in Computer Science and Engineering Thesis, Massachusetts Institute of Technology, Cambridge, MA, May 1998.


Abstract

With current advances in networking, distributed computing is becoming more commonplace. Distributed systems are hard to design and reason about, because distributed actions can exhibit arbitrary interleaving. In order to make it easier to design and analyze distributed systems, Nancy Lynch and her students have developed a formal mathematical model, the input/output (I/O) automaton model, for describing asynchronous concurrent systems. Based on the I/O automaton model, a new programming language, the IOA language, together with a suite of tools for testing, verifying, and analyzing distributed algorithms is being developed at MIT. The topic of this thesis is a simulator for the IOA language. Simulation allows one to test and debug algorithms, and it can provide insight that is helpful in understanding algorithms and in constructing correctness proofs for them. The simulator can be used to study the performance of an algorithm under varying conditions. Other contributions of this thesis are the design of an intermediate language that can be used by other IOA tools and the development of a tool that transforms an IOA program into the intermediate representation.