Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.

Slides:



Advertisements
Similar presentations
The need for AMS assertions Verify the analog/digital interfaces at block and SoC levels –Check properties involving voltages and currents –Check complex.
Advertisements

Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 10: Advanced Object-Oriented Mechanisms (based on.
- Vasvi Kakkad.  Formal -  Tool for mathematical analysis of language  Method for precisely designing language  Well formed model for describing and.
2 nd Microsoft Rotor Workshop, Pisa, April 23-25, SCOOPLI for.NET: a library for concurrent object-oriented programming Volkan Arslan, Piotr Nienaltowski.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
Ch. 7 Process Synchronization (1/2) I Background F Producer - Consumer process :  Compiler, Assembler, Loader, · · · · · · F Bounded buffer.
Programming Paradigms for Concurrency Lecture 11 Part III – Message Passing Concurrency TexPoint fonts used in EMF. Read the TexPoint manual before you.
Chair of Software Engineering PPoPP 2003, , San Diego SCOOP it up! Piotr Nienaltowski Chair of Software Engineering, ETH Zurich, Switzerland.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 11: An introduction to CSP.
Course on Probabilistic Methods in Concurrency (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 The pi-calculus and the asynchronous.
C. Varela; Adapted w/permission from S. Haridi and P. Van Roy1 Declarative Computation Model Defining practical programming languages Carlos Varela RPI.
1 Ivan Lanese Computer Science Department University of Bologna Italy Exploiting user-definable synchronizations in graph transformation.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
Capturing the requirements
The lambda calculus David Walker CS 441. the lambda calculus Originally, the lambda calculus was developed as a logic by Alonzo Church in 1932 –Church.
1 Ivan Lanese Computer Science Department University of Bologna Italy Behavioural Theory for SSCC Joint work with Luis Cruz-Filipe, Francisco Martins,
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
CSCI 4550/8556 Computer Networks Comer, Chapter 11: Extending LANs: Fiber Modems, Repeaters, Bridges and Switches.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Exercise Session 2: Introduction.
Software Engineering, COMP201 Slide 1 Protocol Engineering Protocol Specification using CFSM model Lecture 30.
Models of Computation for Embedded System Design Alvise Bonivento.
Chapter 11: Distributed Processing Parallel programming Principles of parallel programming languages Concurrent execution –Programming constructs –Guarded.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 9: Contracts and Inheritance (based on work with.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Presenter: PCLee Design Automation Conference, ASP-DAC '07. Asia and South Pacific.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 1 Introduction to Object-Oriented Programming and Software Development.
Chair of Software Engineering Concurrent Object-Oriented Programming Concurrent Object-Oriented Programming Bertrand Meyer, Piotr Nienaltowski.
Mahapatra-A&M-Sprong'021 Co-design Finite State Machines Many slides of this lecture are borrowed from Margarida Jacome.
PPL Syntax & Formal Semantics Lecture Notes: Chapter 2.
Prof. Diletta Romana Cacciagrano.  From sequential over concurrent to mobile systems  Introduction to the Pi-Calculus  Operational Equivalences based.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Static program checking and verification Slides: Based.
COMPUTER PROGRAMMING. Control Structures A program is usually not limited to a linear sequence of instructions. During its process it may repeat code.
CSE S. Tanimoto Lambda Calculus 1 Lambda Calculus What is the simplest functional language that is still Turing complete? Where do functional languages.
CPSC 875 John D. McGregor C9 - Tactics. Tactics A tactic is a transformation Given that the pre-condition of the tactic is true The tactic defines changes.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Mahapatra-A&M-Fall'001 Co-design Finite State Machines Many slides of this lecture are borrowed from Margarida Jacome.
3.1 Silberschatz, Galvin and Gagne ©2009Operating System Concepts with Java – 8 th Edition Chapter 3: Processes.
Formal Methods in Software Engineering
Operations with Matrices
11/19/20151 Metodi formali nello sviluppo software a.a.2013/2014 Prof.Anna Labella.
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Types and Programming Languages Lecture 6 Simon Gay Department of Computing Science University of Glasgow 2006/07.
CSE-321 Programming Languages -Calculus (II) POSTECH March 27, 2006 박성우.
Computer Architecture and Operating Systems CS 3230: Operating System Section Lecture OS-4 Process Communication Department of Computer Science and Software.
CS 5204 Spring 99 1 A Simple Agent A CCS agent is described both by a structural diagram and one or more algebraic equations. The diagram is for readability.
SYSE 802 John D. McGregor Module 1 Session 2 Requirements Modeling in SysML.
CSCI1600: Embedded and Real Time Software Lecture 11: Modeling IV: Concurrency Steven Reiss, Fall 2015.
1/33 Basic Scheme February 8, 2007 Compound expressions Rules of evaluation Creating procedures by capturing common patterns.
Object-Oriented Design Concepts University of Sunderland.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
SystemC Semantics by Actors and Reduction Techniques in Model Checking Marjan Sirjani Formal Methods Lab, ECE Dept. University of Tehran, Iran MoCC 2008.
CSE-321 Programming Languages -Calculus (II) POSTECH March 26, 2007 박성우.
Agenda  Quick Review  Finish Introduction  Java Threads.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
Types and Programming Languages Lecture 16 Simon Gay Department of Computing Science University of Glasgow 2006/07.
PPL Syntax & Formal Semantics Lecture Notes: Chapter 2.
Lecture 5 Page 1 CS 111 Summer 2013 Bounded Buffers A higher level abstraction than shared domains or simple messages But not quite as high level as RPC.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
CS 550 Programming Languages Jeremy Johnson
CS 611: Lecture 9 More Lambda Calculus: Recursion, Scope, and Substitution September 17, 1999 Cornell University Computer Science Department Andrew Myers.
CC La Web de Datos Primavera 2016 Lecture 7: SPARQL (1.0)
Queues: Implemented using Arrays
CSE S. Tanimoto Lambda Calculus
Introduction to the Lab
Presentation transcript:

Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan

Chair of Software Engineering 2 Lecture 7: Modeling with the Pi-Calculus.

Chair of Software Engineering 3 The Pi-calculus  Super-set of CCS.  Allows monadic name communication.  Scope extrusion is fundamental.  Well-developed theory.  Programming languages: PICT, Join, TyCO, …

Chair of Software Engineering 4 Pi-Calculus Syntax  We shall omit trailing ’s, as usual.

Chair of Software Engineering 5 Free and Bound Names  Free names are names that are not bound.

Chair of Software Engineering 6 Substitution  Behaves similarly to the Lambda-Calculus substitution:  replaces the free occurrences of names,  many names can be substituted simultaneously,  substitution may involve renaming of bound names to avoid incidental capture.  Examples:

Chair of Software Engineering 7 Pi-Calculus Semantics (1)

Chair of Software Engineering 8 Pi-Calculus Semantics (2)

Chair of Software Engineering 9 Example: Scope Extrusion

Chair of Software Engineering 10 Encoding Polyadic Interactions  We can use these shortcuts transparently.  We introduce notations:

Chair of Software Engineering 11 Encoding Named Processes  Defining named processes by adding a context to (plain) terms.

Chair of Software Engineering 12 Named Process Example

Chair of Software Engineering 13 The Mobile Phone Example  Borrowed from Milner(1991).

Chair of Software Engineering 14 The Mobile Phone Example (2)

Chair of Software Engineering 15  What happens when the CENTRE give the switching order? The Mobile Phone Example (3)

Chair of Software Engineering 16 Encoding Booleans  Now a process has to provide a port, in order to receive an answer!

Chair of Software Engineering 17 Encoding Numerals  Define Copy so that:  Solution:  Define Successor so that:  Solution:

Chair of Software Engineering 18 Addition and Multiplication

Chair of Software Engineering 19 Duplication & Zero Test

Chair of Software Engineering 20 Encoding Lists  Define “Pattern Matching”:  Define Concatenation:

Chair of Software Engineering 21 Encoding The Lambda-Calculus (!)

Chair of Software Engineering 22 Encoding State  A cell with read and write methods can be implemented in many ways. First one:  Second solution with exclusive access:

Chair of Software Engineering 23 Synchrony & Asynchrony  Pi-Calculus communication is synchronous:  But a message can be represented by:  Example:

Chair of Software Engineering 24 Encoding Objects and Classes  Both objects and classes correspond to processes.  A class is an object with method new:  On the self name is first sent the list of method names.  An object is very much like a mutable cell.  Example:

Chair of Software Engineering 25 BBuffer using ACT++ Primitives class BBUFFER is public interface: … // as before behavior: empty= {put} partial= {put, get} full= {get} implementation: Boolean isFull, isEmpty; put (t: OBJECT) is … if (isFull) then become full; else become partial; end; OBJECT: get () is … if (isEmpty) then become empty; else become partial; end; end BBUFFER;

Chair of Software Engineering 26 Example: The Bounded Buffer (1)

Chair of Software Engineering 27 Example: The Bounded Buffer (2)

Chair of Software Engineering 28 Problems  “Faithful” encodings, preserving types.  Complexity of checking properties.

Chair of Software Engineering 29 Next  Some specific encodings.  Verifying properties…