DADiSP | |
Developer: | DSP Development Corporation |
Latest Release Version: | DADiSP 6.7 B02 |
Programming Language: | C, C++, SPL |
Operating System: | Microsoft Windows |
Platform: | IA-32, x86-64 |
Genre: | Technical computing |
License: | Proprietary commercial software |
SPL | |
Paradigm: | multi-paradigm |
Year: | late 1990s |
Designer: | Randy Race |
Developer: | DSP Development Corporation |
Latest Release Version: | 6.7 |
Latest Release Date: | 2017 |
Typing: | Dynamic, weak |
Influenced By: | APL, C, C++ |
Operating System: | Microsoft Windows |
File Ext: | .spl |
DADiSP (Data Analysis and Display, pronounced day-disp) is a numerical computing environment developed by DSP Development Corporation which allows one to display and manipulate data series, matrices and images with an interface similar to a spreadsheet. DADiSP is used in the study of signal processing,[1] numerical analysis, statistical and physiological data processing.[2]
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.[3] [4] 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*W1
sets 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 .
DADiSP includes a series based programming language called SPL (Series Processing Language)[5] 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 statement A = 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 = {3, 5, 2, 4}
causes "B" to automatically update with .
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.