Statecharts: A visual formalism for complex systems
Science of Computer Programming
Pool-T: a parallel object-oriented language
Object-oriented concurrent programming
A synchronization mechanism for typed objects in a distributed system
OOPSLA/ECOOP '88 Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming
Inheritance and synchronization with enabled-sets
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design
IEEE Transactions on Software Engineering
The ESTEREL synchronous programming language: design, semantics, implementation
Science of Computer Programming
Communicating reactive processes
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Systematic concurrent object-oriented programming
Communications of the ACM
Toward a method of object-oriented concurrent programming
Communications of the ACM
Compilation of the ELECTRE reactive language into finite transition systems
Theoretical Computer Science
OOPSLA '93 Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum)
Synchronous Programming of Reactive Systems
Synchronous Programming of Reactive Systems
The specification of process synchronization by path expressions
Operating Systems, Proceedings of an International Symposium
Definition of Reusable Concurrent Software Components
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Aggregation in a Behaviour Oriented Object Model
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Hi-index | 0.00 |
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.