Work

Capsule-oriented Programming in the Panini Language

Year: 2014
Type: article
Abstract: 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.\nWe 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.\nWe 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.
Language: English
Subfield: Software
Open Access status: green
OpenAlex ID: W2150102920
FWCI: 7.415
Cites: 1
Cited by: 12
Related to: 10