This is a description of a programming language based on the upper (dataflow) level of the Q instruction set. While a ``high level'' language, it describes algorithms in a manner which can be directly mapped into Q program elements. It is based on the Multidimensional Lucid language, which is briefly presented in section 3 for comparison.
The syntax descriptions are given in Backus-Naur Format (BNF). A
statement contains a term being defined, followed by a `:=', then
the definition. Terms in a definition are grouped using parentheses
(), and alternative options (one of which must be present) are
separated by a vertical bar ( ). Optional portions of the
definition are indicated within square braces ([ ]). Constant
portions of the definitions which must be present -- keywords and
separators -- are shown in single quotes and a bold face font,
e.g. `)' or `if'.
An identifier is a unique sequence of alphanumeric characters (including `_'), constrained to start with an alphabetic character. It is used to identify program elements. A simple_identifier is a single alphanumeric character, used for naming dimensions. A constant is a data value which is fixed and known when the algorithm is compiled.