HOOP (Heterogeneous Object-Oriented Programmer) is a distributed extension of C++ based on active objects, called units. HOOP is based on active objects called units and concurrent message passing among them. The main feature of HOOP is the possibility to coordinate the activity of different units through virtual circuits. Virtual circuits are objects that indicate what are the operations to be performed, what are the units that must do them, and what is the order in which they must be done to give a certain task. Virtual circuits can be dynamically created by pv\_units and so this distributed object-oriented system can change its behavior during its life. HOOP takes advantage of PVM and MPI procedures to perform objects distribution and message exchange, without explicitly write low-level code.