Capsule-oriented Programming in the Panini Language

dc.contributor.author Rajan, Hridesh
dc.contributor.author Kautz, Steven
dc.contributor.author Rajan, Hridesh
dc.contributor.author Lin, Eric
dc.contributor.author Mooney, Sean
dc.contributor.author Long, Yuheng
dc.contributor.author Upadhayaya, Ganesha
dc.contributor.department Computer Science
dc.date 2018-02-14T09:47:46.000
dc.date.accessioned 2020-06-30T01:57:00Z
dc.date.available 2020-06-30T01:57:00Z
dc.date.issued 2014-08-05
dc.description.abstract <p>Sequentially-trained programmers, i.e. programmers with little or no training in concurrent program design, remain an important subset of today's IT workforce. Inherent concurrency in modern software together with prevalence of multiple hardware threads due to multicore processors is increasing pressure on these programmers to become adept at concurrency, but they continue to find writing and reasoning about concurrent programs difficult. The difficulties originate from having to write and reason about programs that have a multitude of possible execution orders.</p> <p>We present a novel implicitly-concurrent programming model called capsule-oriented programming that is designed for sequentially-trained programmers. Capsule-oriented programming solves these problems by introducing a new module-like abstraction called capsule that (1) guarantees sequential reasoning within its boundary, and (2) makes those program locations where interleavings may occur explicit. The former property allows programmers to (a) reuse existing sequential code as is and (b) use sequential reasoning for most of their code, and the latter property helps by (c) precisely showing program locations where programmers must reason about concurrent interleavings, and (d) creating opportunities for helping reasoning.</p> <p>We present a realization of this programming model in an extension of Java called Panini. The Panini compiler compiles capsule-oriented programs to standard Java Bytecode.</p>
dc.identifier archive/lib.dr.iastate.edu/cs_techreports/362/
dc.identifier.articleid 1361
dc.identifier.contextkey 5898929
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath cs_techreports/362
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/20196
dc.source.bitstream archive/lib.dr.iastate.edu/cs_techreports/362/panini.pdf|||Fri Jan 14 23:47:35 UTC 2022
dc.subject.disciplines Programming Languages and Compilers
dc.subject.disciplines Software Engineering
dc.subject.keywords Capsule-oriented programming
dc.subject.keywords safe concurrency
dc.subject.keywords implicitly-concurrent languages
dc.subject.keywords pervasive interference problem
dc.subject.keywords oblivious interference problem
dc.title Capsule-oriented Programming in the Panini Language
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:
panini.pdf
Size:
396.55 KB
Format:
Adobe Portable Document Format
Description:
Collections