Conference on Domain-Specific Languages, 1997
BDL: A Language to Control the Behavior of Concurrent Objects
Frédéric Bertrand and Michel Augeraud
Université de La Rochelle, France
Abstract
Combining concurrency and object orientation is still difficult.
In an approach where methods are concurrency units, one of the main difficulties is the control of the behavior of objects.
Our proposal is BDL a language allowing to express and to achieve this control.
We propose a model where each object includes a so called "execution controller" programmed with BDL.
This introduces a conceptually clean separation between processing (method execution) and control.
The controller ensures the respect of scheduling constraints between the executions of methods.
Similarly the behavior of aggregate objects can be controlled.
This language has a convenient formal base.
Thus, using the expression of control, behavioral properties of an object, or even of a group of interesting objects can be verified.
Our approach allows, for example, deadlock detection or verification of safety properties while the compiled object controller keeps a reasonable size.
A compiler has been implemented allowing to automatically generate the controller code from a BDL program.
This compilation is achieved by producing an Esterel (reactive programming language) code from a BDL program, the Esterel compiler giving the executable code.
Inter-method concurrency is implemented using lightweight processes.
- View the full text of this paper in
HTML form and
PDF form.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|