Faculty Of Computer Science Simon Fraser University Cmpt 880 presentation An Abstract Communication Model Uwe Glasser, Yuri Gurevich and Margus Veanes.

Slides:



Advertisements
Similar presentations
Tintu David Joy. Agenda Motivation Better Verification Through Symmetry-basic idea Structural Symmetry and Multiprocessor Systems Mur ϕ verification system.
Advertisements

Abstract State Machines, and lessons of an ASM-based project at Microsoft Yuri Gurevich ( Erdos #2 ) Microsoft Research.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
Functional Programming. Pure Functional Programming Computation is largely performed by applying functions to values. The value of an expression depends.
1 Introducing ASML ASML version 2, “Steps and Updates ” Lecture 9 Software Engineering COMP201.
Discrete Mathematics Lecture 5 Alexander Bukharovich New York University.
Elementary Data Types Prof. Alamdeep Singh. Scalar Data Types Scalar data types represent a single object, i.e. only one value can be derived. In general,
ISBN Chapter 3 Describing Syntax and Semantics.
1 Simulator-Model Checker for Reactive Real-Time Abstract State Machines Anatol Slissenko University Paris 12 Pavel Vasilyev University Paris 12 University.
An Associative Broadcast Based Coordination Model for Distributed Processes James C. Browne Kevin Kane Hongxia Tian Department of Computer Sciences The.
1 Introducing ASML Classes, Structured Values, Sets, Sequences Lecture 11 Software Engineering COMP201.
A Semantic Characterization of Unbounded-Nondeterministic Abstract State Machines Andreas Glausch and Wolfgang Reisig 1.
1 Introducing ASML Methods, Values, Constraints, Constants, Variables Lecture 10 Software Engineering COMP201.
1 Introducing ASML Methods, Values, Constraints, Constants, Variables, Sets, Sequences Lecture 11, 12 Software Engineering COMP201.
1 Introducing ASML Sequences, Parallel evaluation, Maps, Non-Determinism Lecture 12 Software Engineering COMP201.
Dr. Muhammed Al-Mulhem 1ICS ICS 535 Design and Implementation of Programming Languages Part 1 Fundamentals (Chapter 4) Operational Semantics ICS.
Chess Review November 21, 2005 Berkeley, CA Edited and presented by A Semantic Unit for Timed Automata Based Modeling Languages Kai Chen ISIS, Vanderbilt.
SEQUENTIAL ABSTRACT STATE MACHINES CAPTURE SEQUENTIAL ALGORITHMS.
Chapter 11: Distributed Processing Parallel programming Principles of parallel programming languages Concurrent execution –Programming constructs –Guarded.
Elementary Data Types Scalar Data Types Numerical Data Types Other
Describing Syntax and Semantics
JavaScript, Third Edition
1/25 Pointer Logic Changki PSWLAB Pointer Logic Daniel Kroening and Ofer Strichman Decision Procedure.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Symbol Table (  ) Contents Map identifiers to the symbol with relevant information about the identifier All information is derived from syntax tree -
Abstract State Machines and Computationally Complete Query Languages Andreas Blass,U Michigan Yuri Gurevich,Microsoft Research & U Michigan Jan Van den.
Computer Architecture Computational Models Ola Flygt V ä xj ö University
Imperative Programming
The Church-Turing Thesis over Arbitrary Domains Udi Boker and Nachum Dershowitz Presenting: Yorai Geffen.
Knowledge Interchange Format Michael Gruninger National Institute of Standards and Technology
Introduction to ASMs Dumitru Roman Digital Enterprise Research Institute
Created by, Author Name, School Name—State FLUENCY WITH INFORMATION TECNOLOGY Skills, Concepts, and Capabilities.
Chapter 9 Integrity. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.9-2 Topics in this Chapter Predicates and Propositions Internal vs.
DEPARTMENT OF COMPUTER SCIENCE & TECHNOLOGY FACULTY OF SCIENCE & TECHNOLOGY UNIVERSITY OF UWA WELLASSA 1 CST 221 OBJECT ORIENTED PROGRAMMING(OOP) ( 2 CREDITS.
Chapter 25 Formal Methods Formal methods Specify program using math Develop program using math Prove program matches specification using.
CS6133 Software Specification and Verification
1 Generating FSMs from Abstract State Machines Wolfgang Grieskamp Yuri Gurevich Wolfram Schulte Margus Veanes Foundations of Software Engineering Microsoft.
Chapter 6 Programming Languages © 2007 Pearson Addison-Wesley. All rights reserved.
C++ Programming: From Problem Analysis to Program Design, Fifth Edition Arrays.
Objective At the conclusion of this chapter you will be able to:
LogP and BSP models. LogP model Common MPP organization: complete machine connected by a network. LogP attempts to capture the characteristics of such.
Code Grammar. Syntax A set of rules that defines the combination of symbols and expressions.
Semantics. Semantics is a precise definition of the meaning of a syntactically and type-wise correct program. Ideas of meaning: –Operational Semantics.
Introduction to Programming Languages S1.3.1Bina © 1998 Liran & Ofir Introduction to Programming Languages Programming in C.
ELEN 033 Lecture #1 Tokunbo Ogunfunmi Santa Clara University.
Advanced Computer Science Lesson 4: Reviewing Loops and Arrays Reading User Input.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
Chapter 3 Part II Describing Syntax and Semantics.
Mathematical Preliminaries
8. The set types The set types are one of the compound types available in SOFL, and usually used for the abstraction of data items that have a collection.
Nikolaj Bjørner Microsoft Research DTU Winter course January 2 nd 2012 Organized by Flemming Nielson & Hanne Riis Nielson.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
Semantics of Predicate Calculus For the propositional calculus, an interpretation was simply an assignment of truth values to the proposition letters of.
CSCI 465 D ata Communications and Networks Lecture 2 Martin van Bommel CSCI 465 Data Communications & Networks 1.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
Chapter 25 Formal Methods. BASIC CONCEPTS A method is formal if it has a sound mathematical basis, typically given by a formal specification language.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 8 Semantic Interpretation To understand a.
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
Information and Computer Sciences University of Hawaii, Manoa
Executable Specifications: Foundations  MS Tools
Declarative Computation Model Kernel language semantics (Non-)Suspendable statements (VRH ) Carlos Varela RPI October 11, 2007 Adapted with.
Python Tutorial for C Programmer Boontee Kruatrachue Kritawan Siriboon
Chapter 6: Programming Languages
Defining A Formal Semantics For The Rosetta Specification Language
What would be our focus ? Geometry deals with Declarative or “What is” knowledge. Computer Science deals with Imperative or “How to” knowledge 2/23/2019.
Presentation transcript:

Faculty Of Computer Science Simon Fraser University Cmpt 880 presentation An Abstract Communication Model Uwe Glasser, Yuri Gurevich and Margus Veanes Presented by: Xianghua Jiang

Agenda Origin of the Abstract Communication Model (ACM) Basic Abstract State Machine (ASM) Parallel ASM Distributed ASM ASML Simulation of Agents ACM Reuse of ACM Summary

ORIGIN OF ACM The model was developed in the process of specifying UPnP architecture. UPnP is an industrial standard for dynamic peer to peer networking. The model is based on distributed abstract state machine (DASM). The model is implemented in the specification language Asml.

BASIC ASMs A basic ASM consists of a basic ASM program together with a collection states (the legal states of the ASM) and subcollection of initial states. Basic ASMs are sequential algorithm.

ASM STATES States of ASM are first-order structures. Syntax of the state Semantic of the state

SYNTAX OF THE STATE Vocabulary is a collection of function symbols and relation symbols (or predicates). Every vocabulary contains: Equality Sign “=“; Logic symbols true, false, undef; Standard propositional connetives.

SEMANTICS OF STATE A state X of a given vocabulary Y is a nonempty set S (base set of X), together with interpretations of the function symbols and relation symbols in Y over S.

SEMANTICS OF STATE A state X of a given vocabulary Y is a nonempty set S (base set of X), together with interpretations of the function symbols and relation symbols in Y over S. Function: f(x1, ……, xn) Function F: Sx…xS S Relation: p(x1, ……, xn) Relation P Sx…xS

ASM STATES UPDATE State is a kind of memory. A location of a state A is a pair (f, a) The content of the location is y = f(a). An update of state A is a pair (l, y’) To fire the update (l, y’), replace the old value y at location l with the new value y’.

SEQUENCIAL ALGORITHM Let A be a sequential algorithm A set S(A) whose elements will be called states of A A subset L(A) of S(A) whose elements will be called initial states of A A Map TA: S(A) -> S(A) that will be called the one-step transformation of A

SEQUENCIAL ALGORITHM Let A be a sequential algorithm A set S(A) whose elements will be called states of A A subset L(A) of S(A) whose elements will be called initial states of A A Map TA: S(A) -> S(A) that will be called the one-step transformation of A A run (or computation) of A is a sequence X0, X1, X2,……. Where X0 is an initial state and every Xi+1 = TA (Xi)

SEQUENCIAL ALGORITHM IN BASIC ASM The run of a machine is a series of states and state transitions that results from applying operations to each state in succession.

THE RUN OF ASM Vocabulary: mode, orders, balance 3 states: S1, S2, S3 2 transitions: Initialize,Process All Orders

THE RUN OF ASM

BASIC ASM PROGRAMS An ASM program: entire definition of a machine, including the names of its state variables. Control logic is the portion of program made up of the rules governing the state transitions. A update rule R: f(e1,….ej) := e0 A conditional rule R: if e then R1 else R2 A do-in-parallel rule R: do in – parallel R1 R2

PARALLEL ASMS Parallel ASMs are parallel algorithms. Example: the ages of Alice, Bob and Ted are incremented on a yearly basis from the year 2000 to 2009.

DISTRIBUTED ASMS A distributed ASM (DASM) involves a collection of agents. Global states Move A single computation step of an individual agent Partially ordered runs

FROM ASM TO ASML Block structure Type Class Structure Method Variable

FROM ASM TO ASML Block structure indentation to indicate block structure Type Class, structure, etc. Class Inheritance, Overloading Method name( parameter1 as Type,...parametern as Type ) as Type Variable Set and Map

SET AND MAP VARIABLE Set A set is an unordered collection of distinct values that are of the same type Map Like arrays, maps have a set of unique keys and a set of values associated with those keys

SET AND MAP VARIABLE Set A set is an unordered collection of distinct values that are of the same type Set with enumerated elements var s = {1, 2, 3, 4} Map Like arrays, maps have a set of unique keys and a set of values associated with those keys Map declaration var phoneNumber as Map of String to Integer

SIMULATION OF AGENTS Agents declaration Class Agent Var Agents as Set of Agent = {}

SIMULATION OF AGENTS Agents declaration Class Agent Var Agents as Set of Agent = {} Mailbox and InsertMessage Method type Message Class Agent program () Var mailbox as Set of Message = {} InsertMessage( m as Message) mailbox(m) := true

SIMULATION OF AGENTS Agents declaration Class Agent Var Agents as Set of Agent = {} Mailbox and InsertMessage Method type Message Class Agent program () Var mailbox as Set of Message = {} InsertMessage( m as Message) mailbox(m) := true RunAgents forall a in chooseSubset(Agents) program(a)

ABSTRACT COMMUNICATION MODEL Class COMMUNICATOR extends Agent Class APPLICATION extends Agent

ABSTRACT COMMUNICATION MODEL Message Transformation Message Routing Delivery Condition Message Delivery

MESSAGE TRANSFORMATION Method: ResolveMessage Variable: addressTable

MESSAGE TRANSFORMATION Method: ResolveMessage type Message Class COMMUNICATOR ResoveMessage (m as MESSAGE) as Set of MESSAGE Variable: addressTable type Address Class COMMUNICATOR Var addressTable as Map of ADDRESS to Set of Address

MESSAGE TRANSFORMATION Message transformation destination (m as MESSAGE) as ADDRESS Class COMMUNICATOR Transform (m as MESSAGE, dest as ADDRESS) as MESSAGE ResolveMessage (m as MESSAGE) as Set of MESSAGE Return {Transform(m, a) | a in addressTable(destination(m))}

MESSAGE ROUTING Recipient method routingTable variable

MESSAGE ROUTING Recipient method Class COMMUNICATOR Recipient (m as MESSAGE) as Agent? routingTable variable Class COMMUNICATOR var routingTable as Map of Address to Agent

MESSAGE ROUTING Recipient method Class COMMUNICATOR Recipient (m as MESSAGE) as Agent? return routingTable (destination(m)) routingTable variable Class COMMUNICATOR var routingTable as Map of Address to Agent

DELIVER CONDITIONS Predicate ReadyToDeliver Network latency, security parameters and resource limitations, etc. Class COMMUNICATOR external ReadyToDeliver(m as MESSAGE) as Boolean

MESSAGE DELIVERY Class COMMUNICATOR Program() = Let availableMsgs = { m | m in me.mailbox where ReadyToDeliver(m)} Let selectedMsgs = chooseSubset (availableMsgs) forall msg in selectedMsgs me.mailbox(msg) := false//delete the message //resolve the message let resolvedMesgs = ResolveMessage (msg) forall m in resolveMesgs let a = Recipient(m) if a <> undef then//if recipient found InsertMessage(a, m)//forward the message else skip. In order to minimize the number of colors needed for a coloring of paths for pairs of vertices in,we can divide the path-types in groups such that the total length of the paths for path-types in a group is at most 2D and we have as few groups as possible. Here we only deal with path-types (h, v) with h > v. This implies that for any path-length L there are  (L-1)/2  items to pack.

REUSE OF THE ACM Reuse of the ACM XLANG is a real-life application of distributed abstract machines XLANG is an XML based formal language that can be used to define the data and networking protocols of automated business process.

SUMMARY ASM are able to simulate every sequential algorithms in the step for step manner. DASM involves a collection of agents. Agents may perform their computation steps concurrently with the partially ordered runs. ASML is an industrial strength language to represent ASMs in industrial environment. Abstract communication model is based on DASM, implemented in ASML. The generality of the model has been confirmed by its reuse for different architectures.

Thank You!