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.
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.