Chair of Software Engineering PPoPP 2003, 13.06.2003, San Diego SCOOP it up! Piotr Nienaltowski Chair of Software Engineering, ETH Zurich, Switzerland.

Slides:



Advertisements
Similar presentations
SCOOP: Simple Concurrent Object-Oriented Programming Extend the pure, strongly typed, object-oriented language Eiffel with a general and powerful concurrency.
Advertisements

Eiffel: Analysis, Design and Programming Bertrand Meyer (Nadia Polikarpova) Chair of Software Engineering.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 10: Advanced Object-Oriented Mechanisms (based on.
2 nd Microsoft Rotor Workshop, Pisa, April 23-25, SCOOPLI for.NET: a library for concurrent object-oriented programming Volkan Arslan, Piotr Nienaltowski.
SCOOP on.NET Volkan Arslan Chair of Software Engineering ETH Zurich, Switzerland
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 7: SCOOP Type System (based on work with Piotr Nienaltowski)
1 Software Architecture Bertrand Meyer ETH Zurich, March-May 2009 Lecture 15: Designing for concurrency & real-time.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
Chair of Software Engineering OOSC Lecture 20 - Concurrency Object-Oriented Software Construction Bertrand Meyer.
Chair of Software Engineering Piotr Nienaltowski, SCOOP Simple Concurrent Object-Oriented Programming.
Chair of Software Engineering SCOOP: an introduction Bertrand Meyer Chair of Software Engineering, ETH Zurich, Switzerland
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
DISTRIBUTED AND HIGH-PERFORMANCE COMPUTING CHAPTER 7: SHARED MEMORY PARALLEL PROGRAMMING.
Chair of Software Engineering Piotr Nienaltowski, , Concurrent Object-Oriented Programming Bertrand Meyer, Piotr Nienaltowski.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Chair of Software Engineering Piotr Nienaltowski, , Concurrent Object-Oriented Programming Bertrand Meyer, Piotr Nienaltowski.
Chair of Software Engineering 1 Concurrent Object-Oriented Programming Arnaud Bailly, Bertrand Meyer and Volkan Arslan.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer Lecture 10: Project Presentation Ilinca.
Chair of Software Engineering SCOOP for ROTOR Bertrand Meyer Capstone (ROTOR final workshop), 2005 © Bertrand Meyer, 2005.
Chair of Software Engineering ATOT - Lecture 26, 30 June Advanced Topics in Object Technology Bertrand Meyer.
SCOOP: Simple Concurrent Object-Oriented Programming Piotr Nienaltowski, Volkan Arslan, Bertrand Meyer presented by: Mark Schall.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Exercise Session 2: Introduction.
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
Chair of Software Engineering OOSC - Lecture 21 1 Object-Oriented Software Construction Bertrand Meyer.
Chair of Software Engineering ATOT - Lecture 25, 30 June Advanced Topics in Object Technology Bertrand Meyer.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 9: Contracts and Inheritance (based on work with.
Chair of Software Engineering Updated: 04 April 2006 Lecture 1: Course overview and introduction Concurrent Object-Oriented Programming Bertrand Meyer,
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 6:Computational Model (based on work with Piotr Nienaltowski)
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 2: an overview of SCOOP.
PRASHANTHI NARAYAN NETTEM.
Chair of Software EngineeringPiotr Nienaltowski, 2 nd SCOOP workshop, SCOOP update and proposed extensions Piotr Nienaltowski.
Chair of Software EngineeringOOSC – Summer Semester 2005 Object-Oriented Software Construction Bertrand Meyer Lecture 19: SCOOP Simple Concurrent Object-Oriented.
Chair of Software Engineering ATOT - Lecture 21, 16 June 2003 Advanced Topics in Object Technology Bertrand Meyer.
Chair of Software Engineering ATOT - Lecture 22, 18 June Advanced Topics in Object Technology Bertrand Meyer.
Chair of Software Engineering JMLC 2003, , Klagenfurt Austria Event Library: an object-oriented library for event-driven design Volkan Arslan,
What is Concurrent Programming? Maram Bani Younes.
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
Chapter 6 Concurrent Processes Understanding Operating Systems, Fourth Edition.
Threads in Java. History  Process is a program in execution  Has stack/heap memory  Has a program counter  Multiuser operating systems since the sixties.
Multithreading in Java Project of COCS 513 By Wei Li December, 2000.
111 © 2002, Cisco Systems, Inc. All rights reserved.
ABSTRACT The real world is concurrent. Several things may happen at the same time. Computer systems must increasingly contend with concurrent applications.
Contracts for Concurrency - Contracts & Inheritance Aryabrata Basu University of Georgia.
1 Concurrency Architecture Types Tasks Synchronization –Semaphores –Monitors –Message Passing Concurrency in Ada Java Threads.
By Garrett Kelly. 3 types or reasons for distributed applications Data Data used by the application is distributed Computation Computation is distributed.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
Chair of Software Engineering 1 Introduction to Programming Bertrand Meyer Exercise Session October 2008.
13-1 Chapter 13 Concurrency Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Java Threads C# Threads.
C H A P T E R E L E V E N Concurrent Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
CS533 - Concepts of Operating Systems 1 Threads, Events, and Reactive Objects - Alan West.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
SMP Basics KeyStone Training Multicore Applications Literature Number: SPRPxxx 1.
Page 1 2P13 Week 1. Page 2 Page 3 Page 4 Page 5.
Adding Concurrency to a Programming Language Peter A. Buhr and Glen Ditchfield USENIX C++ Technical Conference, Portland, Oregon, U. S. A., August 1992.
SCOOPLI for .NET: a library for concurrent object-oriented programming
Simple Concurrent Object-Oriented Programming
Multithreading Tutorial
Chapter 6 Concurrent Processes
Symmetric Multiprocessing (SMP)
Multithreading Tutorial
CS 501: Software Engineering Fall 1999
What is Concurrent Programming?
What is Concurrent Programming?
Multithreading Tutorial
Multithreading Tutorial
NETWORK PROGRAMMING CNET 441
Lecture 12 Input/Output (programmer view)
Presentation transcript:

Chair of Software Engineering PPoPP 2003, , San Diego SCOOP it up! Piotr Nienaltowski Chair of Software Engineering, ETH Zurich, Switzerland joint work with Volkan Arslan and Bertrand Meyer ETH Zurich

Chair of Software Engineering PPoPP 2003, , San Diego Motivation  Extend a pure, strongly typed, object-oriented language (Eiffel, …) with a simple, general and powerful concurrency model  Provide the IT industry with a simple and powerful model for parallel programming  Make programmers sleep better!  Let them forget about all the nightmares of parallel programming and make their lives easier

Chair of Software Engineering PPoPP 2003, , San Diego The SCOOP model  Simple Concurrent Object-Oriented Programming  High-level concurrency mechanism  Full use of inheritance and other object-oriented techniques  Applicable to many physical setups: multiprocessing, multithreading, distributed execution, etc.  Based on Design by Contract

Chair of Software Engineering PPoPP 2003, , San Diego Object-oriented computation To perform a computation is  to use certain processors  to apply certain actions  to certain objects.

Chair of Software Engineering PPoPP 2003, , San Diego What makes an application concurrent? Processor: autonomous thread of control supporting sequential execution of instructions on one or more objects Can be implemented as:  CPU  Process  Thread  AppDomain (.NET) …

Chair of Software Engineering PPoPP 2003, , San Diego Feature call (synchronous)  Fundamental scheme of O-O computation: feature call x.f (a)  x: CLASS_X

Chair of Software Engineering PPoPP 2003, , San Diego Separate feature call (asynchronous)  Fundamental scheme of O-O computation: feature call x.f (a)  x: separate CLASS_X

Chair of Software Engineering PPoPP 2003, , San Diego Access control policy  Target of a separate call must be a formal argument of the enclosing routine: store (buffer: separate BUFFER; value: INTEGER) is -- Store value into buffer. do buffer.put (value) end  To obtain exclusive access to a separate object, use it as argument of the call: store (my_buffer, 10)

Chair of Software Engineering PPoPP 2003, , San Diego From preconditions to wait-conditions Contracts in Eiffel store (buffer: BUFFER; value: INTEGER) is -- Store value into buffer. require not buffer.is_full value > 0 do buffer.put (value) ensure not buffer.is_empty end... store (my_buffer, 10)  If b is separate, precondition becomes wait condition (instead of correctness condition)

Chair of Software Engineering PPoPP 2003, , San Diego From preconditions to wait-conditions Contracts in Eiffel store (buffer: separate BUFFER; value: INTEGER) is -- Store value into buffer. require not buffer.is_full value > 0 do buffer.put (value) ensure not buffer.is_empty end... store (my_buffer, 10)  If buffer is separate, precondition becomes wait condition.

Chair of Software Engineering PPoPP 2003, , San Diego Synchronization  No special mechanism needed for client to resynchronize with supplier after separate call.  The client will wait only when it needs to: x.f x.g (a) y.f … value := x.some_query

Chair of Software Engineering PPoPP 2003, , San Diego Synchronization  No special mechanism needed for client to resynchronize with supplier after separate call.  The client will wait only when it needs to: x.f x.g (a) y.f … value := x.some_query  This mechanism is called wait by necessity.

Chair of Software Engineering PPoPP 2003, , San Diego Two-level architecture of SCOOP  SCOOP can be implemented in several environments  Microsoft.NET is our current platform SCOOP platform-independent.NET Compact Framework POSIX Threads …

Chair of Software Engineering PPoPP 2003, , San Diego Future work  Extension of access control policy  multiple locking of separate objects based on the concept of pure functions  Instruction-level parallelism  Deadlock prevention  Extending SCOOP for real-time systems  duel mechanism with priorities  timing assertions

Chair of Software Engineering PPoPP 2003, , San Diego Conclusion SCOOP model is simple yet powerful  Full concurrency support  Full use of object-oriented techniques  Just one new keyword separate  Based on Design by Contract  Several platforms and architectures

Chair of Software Engineering PPoPP 2003, , San Diego Scoop it up! PostDoc and RA/PhD positions available At the Chair of Software Engineering, ETH Zurich, lead by Bertrand Meyer  SCOOP project (PostDoc/RA)  Formal methods for O-O programming (RA)