1 / 10

IOA Code Generator: Making Program Run in Distributed Networks

Develop a Java code generator for IOA program to run in distributed networks efficiently without global synchronization. Use existing external services and hand-written data type implementations for successive refinement and support for other tools. Submit program for node algorithm, resolve nondeterminism, emit target code, and verify correctness.

Download Presentation

IOA Code Generator: Making Program Run in Distributed Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. I A O IOA Code Generator (Making IOA Run) Joshua A. Tauber PODC Rump Session July 17, 2000 Joint work with: Steve Garland, Nancy Lynch, Michael Tsai

  2. What • Generate standard language (Java) translation of IOA program that will run in a physically distributed network • Execution should be efficient • No global synchronization

  3. Why • (Short term) Test bed for distributed algorithm design • (Long term) Find practical method for generating code from specifications

  4. How • Make humans do hard thinking • Model and use existing external services (e.g. network, console) • Use library of hand-written data type implementations • Stay in IOA until very last step • Successive refinement • Supports application of other tools

  5. Env System Node-Channel Form Global Specification Node-Channel Form

  6. Abstract Channels • Abstract model for ease of programming (e.g., Reliable FIFO queue): • Algorithm that implements abstract channel in terms of (model of) real channel: Auxiliary Automaton Real channel

  7. Environment Implementation Env Delay Buffer Console Parser

  8. Generated vs. External Automata Env Code to Generate Algorithm Channel

  9. Code Generation Process • Submit IOA program for node algorithm • Generate parser automaton • Compose algorithm, parser (computed), and auxiliary network automata (from library) • Resolve nondeterminism in schedule • Convert implicit ND to explicit ND • Resolve explicit ND (programmer help) • Emit target language code - Link to hand coded-datatype implementations

  10. Truth in Advertising • Assume network implements model • Assumes data type implementations implement axiomatic definitions • No current fault tolerance • Still in progess • Composer • Code generator • Proof of design correctness

More Related