Implicit Invocation Meets Safe, Implicit Concurrency

dc.contributor.advisor Hridesh Rajan
dc.contributor.author Long, Yuheng
dc.contributor.department Computer Science
dc.date 2018-08-11T14:53:21.000
dc.date.accessioned 2020-06-30T02:38:38Z
dc.date.available 2020-06-30T02:38:38Z
dc.date.copyright Fri Jan 01 00:00:00 UTC 2010
dc.date.embargo 2013-06-05
dc.date.issued 2010-01-01
dc.description.abstract <p>Writing correct and efficient concurrent programs still remains a challenge. Explicit concurrency is difficult, error prone, and creates code which is hard to maintain and debug. This type of concurrency also treats modular program design and concurrency as separate goals, where modularity often suffers. To solve these problems, we are designing a new language that we call Panini. In this work, we focus on Panini's asynchronous, typed events which reconcile the modularity goal promoted by the implicit invocation design style with the concurrency goal of exposing potential concurrency between the execution of subjects and observers. Since modularity is improved and concurrency is implicit in Panini, programs are easier to reason about and maintain. The language incorporates a static analysis to determine potential conflicts between handlers and a dynamic analysis which uses the conflict information to determine a safe order for handler invocation. This mechanism avoids races and deadlocks entirely, yielding programs with a guaranteed deterministic semantics. To evaluate our language design and implementation we show several examples of its usage as well as an empirical study of program performance. We found that not only is developing and understanding programs significantly easier compared to standard concurrent object-oriented programs, but also performance of Panini programs is comparable to their equivalent hand-tuned versions written using Java's fork-join framework.</p>
dc.format.mimetype application/pdf
dc.identifier archive/lib.dr.iastate.edu/etd/11853/
dc.identifier.articleid 2897
dc.identifier.contextkey 2808095
dc.identifier.doi https://doi.org/10.31274/etd-180810-221
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath etd/11853
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/26059
dc.language.iso en
dc.source.bitstream archive/lib.dr.iastate.edu/etd/11853/Long_iastate_0097M_11639.pdf|||Fri Jan 14 18:59:46 UTC 2022
dc.subject.disciplines Computer Sciences
dc.subject.keywords Modularity
dc.subject.keywords Safe Implicit Concurrency
dc.title Implicit Invocation Meets Safe, Implicit Concurrency
dc.type article
dc.type.genre thesis
dspace.entity.type Publication
relation.isOrgUnitOfPublication f7be4eb9-d1d0-4081-859b-b15cee251456
thesis.degree.level thesis
thesis.degree.name Master of Science
File
Original bundle
Now showing 1 - 1 of 1
Name:
Long_iastate_0097M_11639.pdf
Size:
589.17 KB
Format:
Adobe Portable Document Format
Description: