0% found this document useful (0 votes)
10 views2 pages

Literature 172 Syllabus

literature syllabus

Uploaded by

liannedsantos24
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views2 pages

Literature 172 Syllabus

literature syllabus

Uploaded by

liannedsantos24
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Edmond Dempsey

LITERATURE

LITERATURE_172_SYLLABUS

SCOOP (Simple Concurrent Object Oriented Programming) is a concurrency model designed

for the Eiffel programming language, conceived by Eiffel's creator and designer, Bertrand

Meyer.SCOOP defines a way for an object oriented program to be written without the

concept of threads, locks, or other typical multiprogramming methods.This allows the

compiler or runtime environment to optimize the amount of concurrency as well as

eliminate typical design flaws such as deadlock.The model was first designed in the early

1990s and published in 1993 in the Communications of the ACM An updated version was

described in chapter 30 of the book Object-Oriented Software Construction.A prototype

implementation was developed in 1995 by Eiffel Software.An article by Compton and

Walker provides an overview of SCOOP and describes another early

implementation.Nienaltowski, Arslan and Meyer have published a description of the model

as of 2003.Work on SCOOP proceeded at the Chair of Software Engineering at ETH

Zurich.SCOOP became available as a standard part of EiffelStudio early in 2011.== Technical

overview ==

SCOOP works by allowing references to certain objects to be declared as separate.In the

code below, an entity local_inventory is declared as a separate type, by specifying the Eiffel

language keyword separate in the declaration.A separate object may be handled by a SCOOP

processor that is different from the processor handling the referencing object.A SCOOP

processor is the abstract notion of an autonomous thread of control that handles the

execution of operations on one or more objects.SCOOP processors are independent of


underlying concurrency mechanisms like processor threads, multiple processor cores, and

distributed computer systems.In addition to the concept of separateness, SCOOP exploits

the principles of design by contract as part of the SCOOP strategy for synchronizing access

to shared separate resources.For example, a precondition for a consumer wishing to access

an item in the inventory example above, might be that such an item does currently

exist.This would be expressed with a contract on the feature of class INVENTORY which

returns the item.In traditional, sequential processing, a client intending to call

local_inventory.item would be responsible for making certain that the precondition

local_inventory.has_item holds before making the call.If the call to item were made in a state

in which has_item did not hold, the caller would incur a precondition violation exception.In

the presence of SCOOP and given the separateness of local_inventory, making the check on

has_item before calling item would not be reliable.This is because the state of

local_inventory could have been changed by requests from other SCOOP processors

between the time that the check was made and the time that item could be called.As a result,

when SCOOP is enabled, the precondition has_item is transformed from a correctness

condition, which will cause an exception in the case of a violation, to a wait condition.The

wait condition will cause the execution of item to be delayed until such time as has_item

holds.In the Eiffel Software implementation, if SCOOP is not enabled, the separate keyword

is ignored and sequential processing is assumed.

You might also like