Wed 7 Nov 2018 16:37 - 17:00 at Studio 1 - Language Design 2 Chair(s): Jonathan Aldrich

Object-oriented Programming has been effective in reducing code complexity in sequential programs, but in current practice, concurrent programs still present a number of challenges. We present here a model of object-oriented programming that identifies concurrent tasks and the relationship between objects and tasks, effectively making objects concurrency-aware. This awareness is formalized in a parallel programming model where every object plays a role in every task (e.g., the readonly role). When an object is shared with a new task, it adapts to the new sharing pattern by changing its roles, and therefore its behavior, i.e., the operations that can be performed with this object. This mechanism can be leveraged to prevent interfering accesses from concurrently executing tasks, and therefore makes parallel execution deterministic.

To this end, we present a role-based programming language that includes several novel concepts (role transitions, guarding, slicing) to enable practical, object-oriented deterministic parallel programming. We show that this language can be used to safely implement programs with a range of different parallel patterns. The implementations to 8 widely used programming problems achieve substantial parallel speedups and demonstrate that this approach delivers performance roughly on par with manually synchronized implementations.

Conference Day
Wed 7 Nov

Displayed time zone: Guadalajara, Mexico City, Monterrey change

15:30 - 17:00
Language Design 2OOPSLA at Studio 1
Chair(s): Jonathan AldrichCarnegie Mellon University
15:30
22m
Talk
Bidirectional Evaluation with Direct Manipulation
OOPSLA
Mikaël MayerEPFL, Switzerland, Viktor KunčakEPFL, Switzerland, Ravi ChughUniversity of Chicago
15:52
22m
Talk
BioScript: Programming Safe Chemistry on Laboratories-on-a-ChipDistinguished Paper Award
OOPSLA
Jason OttUniversity of California, Riverside, Tyson LovelessUniversity of California, Riverside, Chris CurtisUniversity of California, Riverside, Mohsen LesaniUniversity of California, Riverside, Philip BriskUniversity of California, Riverside
16:15
22m
Talk
Distributed System Development with ScalaLoci
OOPSLA
Pascal WeisenburgerTechnische Universität Darmstadt, Mirko Köhler, Guido SalvaneschiTU Darmstadt
16:37
22m
Talk
Concurrency-aware Object-oriented Programming with Roles
OOPSLA
Michael FaesETH Zurich, Thomas GrossETH Zurich
Link to publication DOI