Coordination control with BCOOPL

Hans de Bruin
2001 Proceedings of the 2001 ACM symposium on Applied computing - SAC '01  
This paper introduces BCOOPL (Basic Concurrent Object-Oriented Programming Language), a language specifically designed to support component-oriented programming. BCOOPL is more than just a programming language. It can also be seen as a design language with which high level architectural elements, like software components and connectors, can be specified. BCOOPL is centered around two concepts: interfaces and patterns. Operations to be implemented in objects are specified in an interface using
more » ... augmented regular expression notation, not only detailing when a specific operation may be invoked, but also detailing the parties that are allowed to do so. Object behavior is defined separately with so called patterns. BCOOPL encourages the design of high-quality software components through high level OO abstractions including the built-in support of the Observer and Mediator design patterns. A key characteristic of the Observer design pattern is that it reduces the coupling between objects. An object provides its services by issuing notifications without being aware of the clients that actually use the services. It is up to the clients to link to these notifications in order to receive them. The notifications of various objects can be synchronized with patterns, which are specified using the same regular expression notation as for interfaces. An object in this role can be seen as a mediator controlling the interactions between independently operating objects. As a result, component behavior is decoupled from their interactions with other components, which is a prerequisite for system adaptations and reusability. The expressive and descriptive power of BCOOPL is demonstrated in an extended example in which a solution is given for a real-time, process control problem. Separation of interface and implementation An interface defines the operations that must be implemented by an object that conforms to that interface. By adhering to the principle of programming to an interface, a certain amount a flexibility is added to a system since new implementations can be provided without breaking existing code. A BCOOPL interface is specified as an augmented regular expression over operations. It not only describes how an operation can be invoked, but also when and by whom.
doi:10.1145/372202.372296 dblp:conf/sac/Bruin01 fatcat:jya3zzo365evdo3uvy3vooi5q4