DADiSP is designed to perform technical data analysis in a spreadsheet like environment. However, unlike a typical business spreadsheet that operates on a table of cells each of which contain single scalar values, a DADiSP Worksheet consists of multiple interrelated windows where each window contains an entire series or multi-column matrix. A window not only stores the data, but also displays the data in several interactive forms, including 2D graphs, XYZ plots, 3D surfaces, images and numeric tables. Like a traditional spreadsheet, the windows are linked such that a change to the data in one window automatically updates all dependent windows both numerically and graphically. Users manipulate data primarily through windows. A DADiSP window is normally referred to by the letter "W" followed by a window number, as in "W1". For example, the formula W1: 1..3 assigns the series values to "W1". The formula W2: W1*W1sets a second window to compute the square of each value in "W1" such that "W2" will contain the series. If the values of "W1" change to, the values of "W2" automatically update to.
Programming language
DADiSP includes a series based programming language called SPL used to implement custom algorithms. SPL has a C/C++ like syntax and is incrementally compiled into intermediate bytecode, which is executed by a virtual machine. SPL supports both standard variables assigned with = and "hot" variables assigned with :=. For example, the statementA = 1..3 assigns the series to the standard variable "A". The square of the values can be assigned with B = A * A. Variable "B" contains the series. If "A" changes, "B" does not change because "B" preserves the values as assigned without regard to the future state of "A". However, the statement A := 1..3 creates a "hot" variable. A hot variable is analogous to a window, except hot variables do not display their data. The assignment B := A * A computes the square of the values of "A" as before, but now if "A" changes, "B" automatically updates. Setting A = causes "B" to automatically update with.
History
DADiSP was originally developed in the early 1980s as part of a research project at MIT to explore the aerodynamics of Formula One racing cars. The original goal of the project was to enable researchers to quickly explore data analysis algorithms without the need for traditional programming.