CoOperative objects: principles, use and implementation It is no longer relevant to praise the qualities of the Object-Oriented Approach and the Petri Net Theory. Each of them has proved to be a powerful framework in its field of application. However it is a challenge to associate them into a conceptual framework which combines the expressive power of both approaches while maintaining their respective merits. Moreover, it must be shown that such a formalism can be implemented in a sound and efficient manner. par This paper is a comprehensive presentation of the CoOperative Objects formalism. This formalism embraces the theoretical and pragmatic features of both the Petri net and the Object-Oriented approaches by thoroughly integrating their concepts. It is as well-adapted to the specification and the validation of open distributed systems as to their implementation. The basic idea is that a Petri net processes data objects as tokens, while the behaviour of an active object is defined by a Petri net. This paper also proposes a CoOperative Object solution to the dynamic dining philosophers problem, and tackles implementation issues through the presentation of SYROCO, a CoOperative Objects compiler.