A small, object-oriented language is introduced: BCOOPL (Basic Concurrent o
bject-oriented Programming Language). This language is specifically targete
d to support component-oriented programming. The main design goal of BCOOPL
was to provide a small, but powerful set of language features that support
s the construction of high-quality components through well-established soft
ware engineering practices, which include the separation of interfaces and
implementations, weakly-coupled objects, and abstraction. A number of desig
n patterns based on these principles is actually built in the language. In
particular, the observer, the mediator and the bridge are supported directl
y. This provides a strong foundation on which higher level component specif
ication languages can be built. BCOOPL has a long research history. Its roo
ts can be traced back to path expressions, and the concurrent object-orient
ed programming languages Procol and Talktalk, As a result, BCOOPL only inte
grates essential language features that blend well and have proven their va
lue in practice. Copyright (C) 2000 John Wiley & Sons, Ltd.