IDL—a statistical programming environment
Jan Ole Pedersen · 1990
IDL is an exploration of how recent advances in hardware/software technology might be exploited to qualitatively change the way statisticians approach computer-aided data analysis. In particular, it is suggested that fast-prototyping environments, such as those supported by lisp-machine workstations, provide a superior substrate for interactive data analysis. However, these environments must be augmented by suitable quantitative and statistical computational abstractions tuned to the problem domain. IDL presents a nested series of these abstracts, starting with basic building blocks, such as an array calculator, proceeding upward through a model for analytic graphics, and culminating in a scheme for rendering datasets and analyses in an object-oriented fashion. To motivate design decisions, representative examples from a selection of data-analytic situations have been worked out in full. Yet, there is no claim that IDL provides the coverage that one might find in a more mature statistical programming environment, such as S. Instead, IDL demonstrates an extensible architecture for data-analytic computation that will accommodate a wide diversity of techniques in a form that encourages exploration and improvisation. The top-level layer of IDL illustrates many of its design goals. It attempts to package together implementation level components into higher-level computational abstractions that better reflect the domain of interest. This is accomplished through a careful decomposition of the problem space and extensive use of object-oriented programming. Measurement and tag objects capture context. Distribution and transformation objects reflect useful data-independent abstractions. Situation objects express an intent to pursue a particular line of investigation. Analyses themselves are captured as summaries or model objects. Audit trails are implemented by chaining summaries to their situations.