SCOOP: Simple Concurrent Object Oriented Programming

栏目: IT技术 · 发布时间: 4年前

内容简介:SCOOP defines a way for an object oriented program to be written without the concept of threads, locks, or other typicalmultiprogramming methods. This allows the compiler or runtime environment to optimize the amount of concurrency as well as eliminate ty

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 typicalmultiprogramming 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 byEiffel Software. An article by Compton and Walkerprovides 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 atETH Zurich.SCOOP became available as a standard part ofEiffelStudio early in 2011.

Contents

Technical overview [ edit ]

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.

    local_inventory: separate INVENTORY

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 likeprocessor 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, aprecondition 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.

    item: PRODUCT
        -- Current item
    require
        inventory_has_item: has_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.

See also [ edit ]


以上所述就是小编给大家介绍的《SCOOP: Simple Concurrent Object Oriented Programming》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

菜鸟侦探挑战数据分析

菜鸟侦探挑战数据分析

[日] 石田基广 / 支鹏浩 / 人民邮电出版社 / 2017-1 / 42

本书以小说的形式展开,讲述了主人公俵太从大学文科专业毕业后进入征信所,从零开始学习数据分析的故事。书中以主人公就职的征信所所在的商业街为舞台,选取贴近生活的案例,将平均值、t检验、卡方检验、相关、回归分析、文本挖掘以及时间序列分析等数据分析的基础知识融入到了生动有趣的侦探故事中,讲解由浅入深、寓教于乐,没有深奥的理论和晦涩的术语,同时提供了大量实际数据,使用免费自由软件RStudio引领读者进一步......一起来看看 《菜鸟侦探挑战数据分析》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具