The implementation of ACT++ on a shared memory multiprocessor

TR Number



Journal Title

Journal ISSN

Volume Title


Virginia Tech


ACT++ is a programming environment in which concurrent programs can be written in C++. The underlying model of concurrent computation is the Actor model. Programs in ACT++ consist of a collection of active objects called actors. Several actors execute simultaneously and cooperate with each other by sending request and reply messages. Request messages are processed by agents called behaviors of the actor. Each behavior of an actor is responsible for specifying a replacement behavior which processes the next available request message. One of the salient features of ACT++ is its ability to handle the Inheritance Anomaly - the interference between the inheritance mechanism of C++ and the specification of synchronization constraints in the methods of a class - using the notion of behavior sets. Another feature of ACT++ is its realization of I/O as an actor operation. A special type of actor, called an interface actor, provides a high level interface for a particular device which is sent request messages whenever I/O is necessary. The interface actors can also transparently perform asynchronous I/O. ACT++ has been successfully implemented on the Sequent Symmetry multiprocessor using the PRESTO lightweight threads package.