Open Effects: Programmer-guided Effects for Open World Concurrent Programs

dc.contributor.author Long, Yuheng
dc.contributor.author Bagherzadeh, Mehdi
dc.contributor.author Rajan, Hridesh
dc.contributor.author Rajan, Hridesh
dc.contributor.department Computer Science
dc.date 2018-02-14T00:53:15.000
dc.date.accessioned 2020-06-30T01:56:43Z
dc.date.available 2020-06-30T01:56:43Z
dc.date.issued 2013-10-15
dc.description.abstract <p>The open world assumption makes the design of a type-and-effect system challenging, especially in concurrent object-oriented languages. The main problem is in the computation of the effects of a dynamically dispatched method invocation, because all possible dynamic types of its receiver are not known statically. Previous work proposes effect annotations that provide a static upper bound on the effects of a dynamically dispatched method, conservative enough to cover the effects of all methods which could possibly be executed upon its invocation. For two dynamically dispatched methods, a typical type-and-effect system may disallow concurrent execution of their invocations because their conservatively specified static effects conflict. However, such a conflict may not actually happen at runtime, depending on the dynamic types of their receivers. This work proposes open effects, a sound trust-but-verify type-and-effect system, to better enable concurrent execution of dynamically dispatched method invocations. If a programmer annotates the receiver of a certain method invocation as open, then the type system trusts the programmer and assigns an open effect to the method. The open effect is supposed, optimistically, not to conflict with other effects. Such optimistic assumptions are verified statically, if possible, or at runtime otherwise. Open effects is complementary to previously proposed static and dynamic effect analyses and combines them such that the accuracy of static analysis could help decrease the overhead of the dynamic analysis. Performance evaluations of an implementation of open effects, on various benchmarks, show that: open effects incurs negligible annotation and runtime overheads such that code with open effects does almost as well as its manually tuned concurrent version.</p>
dc.description.comments <p>Copyright © 2013, Yuheng Long, Mehdi Bagherzadeh, and Hridesh Rajan</p>
dc.identifier archive/lib.dr.iastate.edu/cs_techreports/325/
dc.identifier.articleid 1310
dc.identifier.contextkey 5539921
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath cs_techreports/325
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/20155
dc.source.bitstream archive/lib.dr.iastate.edu/cs_techreports/325/TR.pdf|||Fri Jan 14 23:36:04 UTC 2022
dc.subject.disciplines Programming Languages and Compilers
dc.subject.disciplines Software Engineering
dc.subject.keywords type-and-effect
dc.subject.keywords open effects
dc.subject.keywords optimistic concurrency
dc.title Open Effects: Programmer-guided Effects for Open World Concurrent Programs
dc.type article
dc.type.genre article
dspace.entity.type Publication
relation.isAuthorOfPublication 4e3f4631-9a99-4a4d-ab81-491621e94031
relation.isOrgUnitOfPublication f7be4eb9-d1d0-4081-859b-b15cee251456
File
Original bundle
Now showing 1 - 1 of 1
Name:
TR.pdf
Size:
326.83 KB
Format:
Adobe Portable Document Format
Description:
Collections