A Unified Design of Capsules
By: Sean Lawrence Mooney
Abstract
The process of reading, writing, and reasoning about concurrent programs benefits from better abstractions for concurrency than what many common languages, such as Java, offer. Capsule-oriented programming and the Panini language utilize the idea of combining state and control within a linguistic mechanism along with asynchronous message passing to provide sequentially trained programmers with an actor-like language that preserves the expected sequential semantics. The initial design of the Panini language splits the world into two distinct elements – capsules and systems. A capsule acts as the unit of both modularity and concurrency in the program. A system acts as the sole point of composition for capsule instances. The problem is that the dichotomy between systems and capsules leads to uncomposable and non-modular programs. The connections between capsule instances in a system declaration are fixed at exactly one point and all capsules instances in program must be declared and connected to each other at a single block of code. This thesis will explore the implications on modularity and reuse of systems when a basic design decision – separating capsules and systems – is relaxed to allow a capsule to declare an internal composition of other capsule instances.
ACM Reference
Mooney, S.L. 2015. A Unified Design of Capsules. Iowa State University.
BibTeX Reference
@mastersthesis{mooney2015unified,
title = {A Unified Design of Capsules},
author = {Mooney, Sean Lawrence},
year = {2015},
school = {Iowa State University},
abstract = {
The process of reading, writing, and reasoning about concurrent programs
benefits from better abstractions for concurrency than what many common
languages, such as Java, offer. Capsule-oriented programming and the Panini
language utilize the idea of combining state and control within a linguistic
mechanism along with asynchronous message passing to provide sequentially
trained programmers with an actor-like language that preserves the expected
sequential semantics. The initial design of the Panini language splits the
world into two distinct elements – capsules and systems. A capsule acts as the
unit of both modularity and concurrency in the program. A system acts as the
sole point of composition for capsule instances. The problem is that the
dichotomy between systems and capsules leads to uncomposable and non-modular
programs. The connections between capsule instances in a system declaration
are fixed at exactly one point and all capsules instances in program must be
declared and connected to each other at a single block of code. This thesis
will explore the implications on modularity and reuse of systems when a basic
design decision – separating capsules and systems – is relaxed to allow a
capsule to declare an internal composition of other capsule instances.
}
}