Information Hiding Objects
The information hiding principle appears us to be so important that it should be applied rigorously to all module structures in a system. Hence in Monads and in SPEEDOS there is no other major structuring unit except modules defined in accordance with the information-hiding principle. These replace both the normal file concept in conventional systems and conventional operating system units such as programs, operating system modules, directories, schedulers, etc.
- A "program" in the conventional sense can be regarded as an information hiding module with a single interface method and only temporary data structures. But why make that restriction? One could provide a program module which has several interface methods. A games compendium, for example, might have separate interface methods for different board games such as chess, draughts, fox and hounds, etc.
- A "library" can similarly be regarded as a module with multiple interface methods, and is thus structurally the same as a program.
- A "file" can be viewed as a module which contains a major data structure with interface routines via which the data is accessed.