Pointers are strongly typed. That is, pointers can point only to objects that are targets. Although this idea makes solid pedagogical sense, the words pointer and target originated for the purpose of better compiler optimization. A sophisticated array language facilitates operations on whole arrays, contiguous and noncontiguous sections and slices of arrays. Modules are a data encapsulation mechanism that allows data to be grouped with the procedures that operate on that data.
Modules can use other modules.
As well, programs and procedures can use modules. Using a module makes the public entities of that module available. Examples of modules are found in Table 3 . Instead, the concept of an object is best viewed as a module that defines a public, user-defined type together with the public procedures that operate on that type. The user of such a module can then declare a scalar or array of the defined type and have access to its procedures.