Literature 172 Syllabus
Literature 172 Syllabus
LITERATURE
LITERATURE_172_SYLLABUS
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
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
overview ==
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
the principles of design by contract as part of the SCOOP strategy for synchronizing 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
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,
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