IOA Code Generator (Making IOA Run)

Slides:



Advertisements
Similar presentations
Impossibility of Distributed Consensus with One Faulty Process
Advertisements

Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services Authored by: Seth Gilbert and Nancy Lynch Presented by:
Requirements on the Execution of Kahn Process Networks Marc Geilen and Twan Basten 11 April 2003 /e.
1 Carnegie Mellon UniversitySPINFlavio Lerda SPIN An explicit state model checker.
CS 330 Programming Languages 10 / 16 / 2008 Instructor: Michael Eckmann.
Concurrent & Distributed Systems Lecture 4: ME solutions Lecture 3 considered possible algorithms for achieving Mutual Exclusion between the critical sections.
CS603 Advanced Topics in Distributed Systems MWF 13:30-14:30 RHPH 162 Professor Chris Clifton.
University of Kansas Construction & Integration of Distributed Systems Jerry James Oct. 30, 2000.
Dependable computing needs pervasive debugging Tim Harris
Program Flow Charting How to tackle the beginning stage a program design.
On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.
CprE 458/558: Real-Time Systems
Topic 1: Introduction to Computers and Programming
“C” Programming Language What is language ? Language is medium of communication. If two persons want to communicate with each other, they have to use.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
1 COMPSCI 110 Operating Systems Who - Introductions How - Policies and Administrative Details Why - Objectives and Expectations What - Our Topic: Operating.
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
1 IOA: Mathematical Models  Distributed Programs Nancy Lynch November 15, 2000 Collaborators: Steve Garland, Josh Tauber, Anna Chefter, Antonio Ramirez,
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
CSE 303 – Software Design and Architecture LECTURE 4.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Conformance Test Experiments for Distributed Real-Time Systems Rachel Cardell-Oliver Complex Systems Group Department of Computer Science & Software Engineering.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
1 Modeling and Analyzing Distributed Systems Using I/O Automata Nancy Lynch, MIT Draper Laboratory, IR&D Mid-Year Meeting December 11, 2002.
1 IOA: Distributed Algorithms  Distributed Programs Nancy Lynch PODC 2000 Collaborators: Steve Garland, Josh Tauber, Anna Chefter, Antonio Ramirez, Michael.
Dryad and DryaLINQ. Dryad and DryadLINQ Dryad provides automatic distributed execution DryadLINQ provides automatic query plan generation Dryad provides.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
Building reliable, high- performance communication systems from components Xiaoming Liu, Christoph Kreitz, Robbert van Renesse, Jason Hickey, Mark Hayden,
Fault tolerance and related issues in distributed computing Shmuel Zaks GSSI - Feb
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
Mathematical Models and Proof/Analysis Methods for Timing-Based Systems And… Their Application to Communication, Fault-Tolerant Distributed Computing,
1 Modeling and Analyzing Distributed Systems Using I/O Automata Nancy Lynch, MIT Draper Laboratory, IR&D Kickoff Meeting Aug. 30, 2002.
Memory Management What if pgm mem > main mem ?. Memory Management What if pgm mem > main mem ? Overlays – program controlled.
CHAPTER 1 INTRODUCTION TO COMPILER SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY.
Introduction to Algorithms
Why don’t programmers have to program in machine code?
Verifying Stability of Network Protocols
Support for Program Analysis as a First-Class Design Constraint in Legion Michael Bauer 02/22/17.
Topic: Programming Languages and their Evolution + Intro to Scratch
Advanced Operating Systems CIS 720
Chapter 1 Introduction.
Tools of the Trade
Final Project of Computer Graphics
Introduction to programming
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
CSCI-235 Micro-Computer Applications
CSE 775 – Distributed Objects Submitted by: Arpit Kothari
Håkan Sundell Philippas Tsigas
Topic: Difference b/w JDK, JRE, JIT, JVM
Programming Languages and Compilers (CS 421)
Microprocessor and Assembly Language
Chryssis Georgiou, University of Cyprus Peter Musial, VeroModo, Inc.
Chapter 1 Introduction.
An explicit state model checker
Compiler Lecture 1 CS510.
Real-time Software Design
Gabor Madl Ph.D. Candidate, UC Irvine Advisor: Nikil Dutt
Lecture 7: Introduction to Distributed Computing.
湖南大学-信息科学与工程学院-计算机与科学系
Alternating Bit Protocol
Prof. Jason Eisner MWF 3-4pm (sometimes 3-4:15)
Introduction to Algorithms
Abstraction.
Mark McKelvin EE249 Embedded System Design December 03, 2002
Atlas: An Infrastructure for Global Computing
Computer Science 340 Software Design & Testing
Presentation transcript:

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

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

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

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

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

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

Environment Implementation Delay Buffer Console Parser

Generated vs. External Automata Env Code to Generate Algorithm Channel

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

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