Concurrent object languages are in many respects the ancestors of
agent languages. The notion of a self-contained concurrently executing
object, with some internal state that is not directly accessible to
the outside world, responding to messages from other such objects, is
very close to the concept of an agent as we have defined it. The
earliest concurrent object framework was Hewitt's Actor
model [Agha, 1986][Hewitt, 1977]; another well-known example is the
ABCL system [Yonezawa, 1990]. For a discussion on the
relationship between agents and concurrent object programming, see
[Gasser and Briot, 1992].