from http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl?_key=Lucid ...
Lucid is a DataflowProgramming
language designed to experiment with non-VonNeumann
programming models. It has fundamentally different semantics from a language like C or Lisp: in Lucid, the programmer defines filters or transformation functions that act on time-varying data streams. Lucid supported a very small set of data types: integers, reals, and symbols.
The syntax of Lucid was deliberately designed to be unusual and different, to prevent programmers from applying procedural-programming habits that might be inapplicable, and to sustain the illusion of data flows as infinite objects.
Lucid also employed several techniques from FunctionalProgramming
: lack of side effects, and LazyEvaluation
Lucid evolved greatly in the 1980s and 1990s. A later evolutionary step of Lucid is called GLU (Granular LUcid). It supports high-level data flow programming and embedding of legacy code. GLU is available free for most UNIX platforms.
The latest generation of Lucid is GIPSY (General IntensionalProgramming
System); see http://www.baltimore-websites.com/gipsy-links.html
Lucid was a powerful advance in computer science, and spawned several additional research areas over the 1980s. Two of those areas, Multidimensional Programming and Intensional Programming, are still active research areas in computer science.
Lucid code to solve the HammingProblem
h = 1 fby merge(merge(2 * h, 3 * h), 5 * h);
merge(x,y) = if xx <= yy then xx else yy fi
xx = x upon xx <= yy;
yy = y upon yy <= xx;