% Developer Terminology % % Intended to be included within its own section. Definitions within this subsection are used most frequently by the software developers addressed by this specification. \begin{description} \dt{apply} Providing a list of arguments to a function---which are in turn bound to its respective parameters in an implementation-specific manner---and replacing the application with the value returned from the function after its execution. The result of applying a procedure is implementation-defined (since procedures return no value). \dt{argument} The value bound to a parameter during a function application. \dt{array} A string of values of a single data type $T$; said to be an ``array of type $T$'' or simply an ``array of $T$''. An array of arrays is said to be multidimensional. \dt{associative array} An array indexed using hashed character strings as keys; said to be ``key/value'', where the value is ``associated'' with its respective key. \dt{bit} A value of $0$ or $1$. \dt{boolean} A datatype whose storage is capable of representing a value of $1$ or $0$. \dt{byte} A bit string of machine-dependent length that \shall be at least $8$ bits. \dt{call} Provides an argument list to a procedure---which are in turn bound to its respective parameters in an implementation-specific manner---and executes the procedure. If a function is called, the use of its return value is implementation-defined; some implementations use the terms ``call'' and ``apply'' interchangeably. \dt{character} The numeric constant representing a symbol of a character set; there exist both single-byte character sets (such as ASCII) and multi-byte (such as Unicode); this term \shallnot be synonymous with ``byte'' in this specification. \dt{data} The plural form of ``datum''. \dt{data type} Synonymous with freestanding ``type''; the type of a datum or data; dictates how the data are interpreted. For example, the hexadecimal value \hex{41} may represent the ASCII letter `A' when interpreted as a character type, but may represent the decimal value $65$ when interpreted as an integer. \dt{datatype} A definition for an interpretation of a datum or data. Examples of datatype include integers, characters, floats, and vectors. \dt{datum} The singular form of ``data''; an arbitrary unit of information whose interpretation is determined by its type. \dt{dimensions (data)} The depth of the data; can be defined inductively as follows: Let the basis be a scalar value having depth $d=0$. Let the depth of an array $A$ be the depth of its data type $d'+1$.\footnote{As an example, an ``array of an array of integers`` would have a depth of $2$ as follows: an integer is a scalar and so its depth is $0$; adding $1$, we get the depth of an ``array of integers'', which is $1$; finally, we add $1$ to get the depth of an ``array of an array of integers''.} \dt{float} A datatype using binary ^[floating-point]. \dt{floating-point} A binary approximation of a real number up to a fixed number of digits, generally represented by a sign bit; a significand (also called the ``coefficient'' and less often the ``mantissa''); and a scaling base and exponent. See IEEE 754. For the purposes of this specification, it \shall be understood that the result of an arithmetic operation in which one of the operands is a ^floating-point number may not be able to be represented exactly in its binary representation, which may result in precision errors. These errors may cause problems with rounding operations. \dt{function} A re-usable block of code that accepts input via parameters (if any) and returns some value. \dt{host environment} The runtime environment. \dt{integer} A datatype; for the purposes of this specification, any signed whole number $\{\ldots, -2, -1, 0, 1, 2, \ldots\}$ that may fit into a single machine word (usually the size of a general-purpose register on the host architecture). On 32-bit two's-compliment machines, this value ranges from $2,147,483,648--2,147,483,647$. An implementation \shall support at least 4-byte (at least 32-bit) integers and \shall not expect that any greater size is available for calculations, but may make use of additional integer sizes for other uses so long as such does not impact the final result of any calculations. \dt{memory} Physical or virtual; used to store and retrieve data outside of CPU registers. \dt{parameter} A value accepted by a function. \dt{procedure} Similar to a function, but does not return any value; implies side-effects. \dt{runtime} Occurs during the execution of the program. \dt{scalar} A datum that is not an array. \dt{side-effect} Non-local data that is altered as a consequence of applying a function or calling a procedure. \dt{string} A finite sequence of symbols---often bytes. When used on its own, traditionally implies a ``character string''---that is, a string of character values. \dt{type} Within the context of data, see ``data type''. \dt{$\bot$} Boolean value of 0; ``false''. \dt{$\top$} Boolean value of 1; ``true''; \end{description}