next up previous index
Up: Q Language Previous: Syntax   Index

The Syntax of Multidimensional Lucid

The BNF description of the Lucid language is presented in Figure 4. It was derived from the description presented in Ch. 3 of Multidimensional Programming, with a the Lucid variable is called a stream.

Figure 4: BNF description of Lucid
\begin{figure}\begin{eqnarray}
\mathit{ program } & := & \mathit{ term } \\
\...
...\mbox{\lq }\mathbf{,}\mbox{'}\
\mathit{ lhs\_list } ]
\end{eqnarray}\end{figure}

A term N-tuple is a list of N terms. If N is greater than one, the curly braces ( {} ) are required around the entire list.

All atoms have both a ``number of dimensions'' and a ``number of arguments''. The atoms are slightly redundant, as a stream is a function call with no (zero) arguments and a constant is an operation with no arguments. The Lucid language contains a monadic context query constant (`#'), identical to the one in the Q language.



magiceight-web@media.mit.edu