The role of explicit type management schemes in the implementation of abstract data types in Ada

The flexibility Of the Ada package allows for many different implementation choices for an ADT specification, one of which, the explicit type manager, we present in this paper. If objects reside not in the user's local workspace but instead in the package body of the ADT, then there must be some type management facility in that body handling object management. The type manager can in turn be either supplied by the Ada run-time support facility or explicitly managed in the package body. Reasons why one might want to do the latter are discussed and an example window management ADT is presented, along with the side issues of derived type usage and assignment semantics. to design such an explicit type management scheme in Ada, along with examples of when it might be advantageous to do so. One such example, a window management facility, is discussed in depth, along with a number of parallel issues related to the implementation of a type management scheme to support this facility. These issues include the usage and usability of the Ada derived type facility, and the question of IS vs. EQUALS in the implementation of an ADT using a type management facility (i.e., the problem of "object" vs. "value" semantics in the assignment operator). II. Explicit vs. Implicit Type Management Schemes In this section we introduce the notion of an explicit type management scheme. Consider the following LARGE_INTEGERS package: