Getting Started | Documentation | Glish | Learn More | Programming | Contact Us |
Version 1.9 Build 1367 |
|
An important distinction should be made between the data objects and methods discussed in this document and the C++ classes, designed for power and efficiency, that they are based upon. This distinction deals with the data objects from the point of view of the scientist and not necessarily the programmer. We tacitly assume that some of these objects, and some of their methods, are intended solely to make programming and algorithm modification easy for astronomers who are not experts at the sublety and power of C++. Providing efficient classes is basic, but a secondary goal of providing classes expressing a scientist's point of view is probably essential to easy use of AIPS++ for programming by astronomers.
Some of the concepts to be discussed are derived from a study of the object-oriented data processing and visualization language S (Becker et al. 1988, Chambers and Hastie 1991), using the version released by AT & T in 1991, as implemented for workstations and PCs in the commercial implementation product S+ .
The issues that we should consider are not solely based upon a list of classes with associated methods. For this reason we will use a slightly different language to describe needed entities. First of all, we will discuss fundamental data objects in a manner which seemingly separates these data objects from the methods that use, modify, and create basic data objects. It seems useful to distinguish between the user-invocation of a method, methods that represent specific algorithms using data objects, and the methods of classes that instantiate data objects.
Amongst the completely new data objects that we suggest as useful for AIPS++ are: mlist, factor, grid, and the abovementioned mtable. Minor augmentation of the attributes of AIPS++ Array-based classes, and addition of important methods for Array-based classes will be described for marray, mvector, and mmatrix. An mtable is a table when viewed as a collection of one or more vectors of numeric and/or string types, each with the same length, with character string labeling for rows and columns.