This paper presents a very general class which can be reused to specify and implement any type exporting synchronization or communication properties. The new Ada 95 features modelling inheritance, polymorphism and hierarchies of library units are used extensively in describing the architecture of the class and other new features (access to subprograms, protected types, …) are used for the specification and implementation of the components of the class.Section 2 presents the general architecture of our class. Sections 3, 4, 5 respectively give examples of specification, use and implementation of its components. Section 6 concludes on recalling the full role of formal techniques in our approach (they appear in the present paper only to show that the semantics of our class is defined at a more abstract level than its implementation) and discussing a few interesting points about the way Ada 95 is used here.
/lp/association-for-computing-machinery/a-fully-reusable-class-of-objects-for-synchronization-and-Sq4bB8SXS3