Abstraction and encapsulation are supported by the package concept and by private types. Related data and subprograms can be grouped together and seen by a higher level as a single entity. Information hiding is enforced via strong typing and by the separation of package and subprogram specifications from their bodies. Additional Ada language elements that impact program structure are exceptions and tasks.
In this chapter...
4.1 High-Level Structure
4.1.1 Separate Compilation Capabilities
4.1.6 Data Coupling
4.2.1 Minimization of Interfaces
4.2.2 Nested Packages
4.2.3 Restricting Visibility
4.2.4 Hiding Tasks
4.3.1 Using Exceptions to Help Define an Abstraction