Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 11: An introduction to CSP.

Slides:



Advertisements
Similar presentations
Formal techniques for getting software right: some old ideas and some new tools Applied Formal Methods Research Group David Lightfoot:
Advertisements

Formal Semantics of Programming Languages 虞慧群 Topic 6: Advanced Issues.
Processes and Basic LOTOS Team LOT ‘O Specs Cara Gibbs Terry Peckham Robert Cowles Manon Sanscartier Ergun Gurak.
1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.
1 Lecture 3 The CSP approach to the specification and analysis of Security protocols Communicating Sequential Processes [Hoare 78] Mathematical framework.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 11: An introduction to CSP.
1 Software Architecture Bertrand Meyer ETH Zurich, March-May 2009 Lecture 15: Designing for concurrency & real-time.
SD3049 Formal Methods Module Leader Dr Aaron Kans Module website
Language, Culture and Communication: Introduction
1 Introduction to Computability Theory Lecture4: Regular Expressions Prof. Amos Israeli.
The P-Calculus Supratik Mukhopadhyay PEMWS-2 April 6 th 2011.
Lecture 3UofH - COSC Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 3.
Checking correctness properties of object-oriented programs K. Rustan M. Leino Microsoft Research, Redmond, WA Lecture 1 EEF summer school on Specification,
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 2: Dealing with Objects I.
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 2: Dealing with Objects I.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Exercise Session 3: Introduction.
Review of “Embedded Software” by E.A. Lee Katherine Barrow Vladimir Jakobac.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Exercise Session 2: Introduction.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
1 Static vs dynamic SAGAs Ivan Lanese Computer Science Department University of Bologna/INRIA Italy.
Chair of Software Engineering Updated: 04 April 2006 Lecture 1: Course overview and introduction Concurrent Object-Oriented Programming Bertrand Meyer,
Prof. Diletta Romana Cacciagrano.  From sequential over concurrent to mobile systems  Introduction to the Pi-Calculus  Operational Equivalences based.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Parallel & Concurrent Programming: Occam Vitaliy Lvin University of Massachusetts.
CSC1401: Introductory Programming Steve Cooper
PELİN YAĞMUR ATAŞ MEHMET ÖZDEMİR.
Introduction to the Unified Modeling Language “The act of drawing a diagram does not constitute analysis or design. … Still, having a well-defined and.
(C) P. H. Welch Software Engineering Chapter 3.
MIMD Distributed Memory Architectures message-passing multicomputers.
Advanced Topics in SE Spring Process Algebra Hossein Hojjat Formal Methods Lab University of Tehran.
PAT: Getting started.
Managing XML and Semistructured Data Lecture 13: XDuce and Regular Tree Languages Prof. Dan Suciu Spring 2001.
Introduction to CSP Alexandre Mota
Requirements Engineering Methods for Requirements Engineering Lecture-30.
CSP: Communicating Sequential Processes. Overview Computation model and CSP primitives Refinement and trace semantics Automaton view Refinement checking.
 What is Modeling What is Modeling  Why do we Model Why do we Model  Models in OMT Models in OMT  Principles of Modeling Principles of Modeling 
Internet Security CSCE 813 Communicating Sequential Processes.
SD3049 Formal Methods. Formal Methods Module Leader Dr Aaron Kans
UW CSE 503 ▪ Software Engineering ▪ Spring 2004 ▪ Rob DeLine1 CSE 503 – Software Engineering Lecture 7: Process calculi and refinement Rob DeLine 19 Apr.
: the art or skill of speaking or writing formally and effectively especially as a way to persuade or influence people.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
MPRI 3 Dec 2007Catuscia Palamidessi 1 Why Probability and Nondeterminism? Concurrency Theory Nondeterminism –Scheduling within parallel composition –Unknown.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
: the art or skill of speaking or writing formally and effectively especially as a way to persuade or influence people.
Properties as Processes : FORTE slide Properties as Processes: their Specification and Verification Joel Kelso and George Milne School of Computer.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
CS223: Software Engineering
MAT 125 – Applied Calculus 5.1 – Exponential Functions.
ARTIFICIAL INTELLIGENCE Lecture 2 Propositional Calculus.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Formal Approaches to Swarm Technologies Technical Briefing Christopher Rouff, Amy Vanderbilt - SAIC Walt Truszkowski, James Rash - NASA GSFC, Code 588.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Types of Diction Diction is word choice. If a vocabulary is a list of words available for use, then good diction is the careful selection of those words.
CS 501: Software Engineering Fall 1999 Lecture 15 Object-Oriented Design I.
Ichiro Hasuo University of Tokyo Kohei Suenaga JSPS Research Fellow (PD) Kyoto University Programming with Infinitesimals A WHILE-Language for Hybrid System.
Internet Security CSCE 813 Communicating Sequential Processes.
7/7/20161 Formal Methods in software development a.a.2015/2016 Prof.Anna Labella.
Distributed and Parallel Processing
Process Algebra (2IF45) Extending Process Algebra: Abstraction
SS 2018 Software Verification ML, state machines
Automata and Formal Languages (CS 350/550)
COSC 3340: Introduction to Theory of Computation
CSE322 Definition and description of finite Automata
Software Engineering Lecture # 01
Presentation transcript:

Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 11: An introduction to CSP

2 Origin Communicating Sequential Processes: C.A.R. Hoare 1978 paper, based in part on ideas of E.W. Dijkstra (guarded commands, 1978 paper and “A Discipline of Programming” book) Revised with help of S. D. Brooks and A.W. Roscoe 1985 book, revised 2004

3 CSP purpose Concurrency formalism  Expresses many concurrent situations elegantly  Influenced design of several concurrent programming languages, in particular Occam (Transputer) Calculus  Formally specified: laws  Makes it possible to prove properties of systems

4 Basic notions Processes engage in events Example: BDVM = (coin  coffee  coin  coffee  STOP)  (BDVM) = {coin, coffee} u

5 Basic CSP syntax P ::= Stop |-- Does not engage in any events a  P |-- Accepts a, then engages in P P П P|-- Internal choice P  P|-- External choice P || P|-- Concurrency P ||| P|-- Interleaving P \ H|-- Hiding (H: alphabet symbols)  P f (P)-- Recursion

6 Some examples CLOCK = (tick  CLOCK) This is an abbreviation for CLOCK =  P (tick  P) CVM= (in1f  (coffee  CVM)) = (in1f  coffee  CVM)-- Right-associativity CHM1 = (in1f  out50rp  out20rp  out20rp  out10rp) CHM2 = (in1f  out50rp  out50rp) CHM = CHM1  CHM2

7 More examples COPYBIT = (in.0  out.0  COPYBIT  in.1  out.1  COPYBIT)

8 More examples VMC = (in2f  ((large  VMC)  (small  out1f  VMC))  (in1f  ((small  VMC)  (in1f  large  VMC)) FOOLCUST = (in2f  large  FOOLCUST  in1f  large  FOOLCUST) FOOLCUST || VMC =  P (in2f  large  P  in2f  STOP)

9 Formal semantics: through traces

10 Internal non-deterministic choice CH1F = (in1f  ((out20rp  out20rp  out20rp  out20rp  out20rp  CH1F) П (out50rp  out50rp  CH1F)))

11 Laws of concurrency P || Q = Q || P P || (Q || R)) = ((P || Q) || R) P || STOP  P = STOP  P (c  P) || (c  Q) = (c  (P || Q)) (c  P) || (d  Q) = STOP-- If c ≠ d (x: A  P (x)) || (y: B  Q (y)) = (z: (A  B)  (P (z) || Q (z))

12 Laws of non-deterministic internal choice P П Q = Q П P P П ( Q П R) = (P П Q) П R x  (P П Q) = (x  P) П ( x  Q) P || ( Q П R) = (P || Q) П (P || R ) (P || Q) П R = (P || R) П (Q || R ) The recursion operator is not distributive; consider: P =  X ((a  X) П ( b  X)) Q = (  X (a  X)) П (  X (b  X))