Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Statecharts: A visual formalism for complex systems
Science of Computer Programming
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Concurrent object-oriented programming in Act 1
Object-oriented concurrent programming
Concurrent programming using actors
Object-oriented concurrent 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
Programming distributed systems
Programming distributed systems
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
COCS '91 Proceedings of the conference on Organizational computing systems
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
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
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 Java Programming Language
Reactive Programming in Eiffel//
OBPDC '95 Selected papers from the Workshop, on Object-Based Parallel and Distributed Computation
The specification of process synchronization by path expressions
Operating Systems, Proceedings of an International Symposium
Safety Property Verification of ESTEREL Programs and Applications to Telecommunications Software
Proceedings of the 7th International Conference on Computer Aided Verification
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
Design and Implementation of Triveni: a Process-algebraic API for Threads + Events
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Object and concurrency in Triveni: a telecommunication case study in java
COOTS'98 Proceedings of the 4th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 4
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
The problem of describing the concurrent behavior of objects in object-oriented languages is addressed. The approach taken is to let methods be the behavior units whose synchronization is controlled separate from their specification. Our proposal is a domain-specific language, called BDL, for expressing constraints on this control and actually implementing its enforcement. We propose a model where each object includes a so-called 驴execution controller,驴 programmed in BDL. This separates cleanly the concepts of what the methods do, the object processes, from the circumstances in which they are allowed to do it, the control. The object controller ensures that scheduling constraints between the object's methods are met. Aggregate objects can be controlled in terms of their components. This language has a convenient formal base. Thus, using BDL expressions, behavioral properties of objects or groups of interesting objects can be verified. Our approach allows, for example, deadlock detection or verification of safety properties, while maintaining a reasonable code size for the running controller.A compiler from BDL has been implemented, automatically generating controller code in an Esterel program, i.e., in a reactive programming language. From this code, the Esterel compiler, in turn, generates an automaton on which verifications are done. Then this automaton is translated into a C code to be executed. This multistage process typifies the method for successful use of a domain-specific language. This also allows high-level concurrent programming.