Terms and Definitions
May 30, 2017 ยท View on GitHub
For the purposes of this document, the following terms and definitions apply:
argument:
a value passed to a function, that is intended to map to a
corresponding parameter.
behavior:
external appearance or action.
behavior, implementation-defined:
behavior specific to an implementation, where that implementation
must document that behavior.
behavior, undefined:
behavior which is not guaranteed to
produce any specific result. Usually follows an erroneous program
construct or data.
behavior, unspecified:
behavior for which this specification provides no requirements.
case-preserved:
a construct which is case-insensitive upon declaration, but
case-sensitive upon subsequent usage.
constraint:
restriction, either syntactic or semantic, on how language elements
can be used.
error, fatal:
a translation or runtime condition from which the translator or
engine cannot recover.
error, fatal, catchable:
a fatal error that can be caught by a user-defined handler.
error, non-fatal:
an error that is not fatal.
lvalue:
an expression that designates a memory location having a type.
lvalue, modifiable:
an lvalue whose value can be changed.
lvalue, non-modifiable:
an lvalue whose value cannot be changed.
parameter:
a variable declared in the parameter list of a function that is
intended to map to a corresponding argument in a call to that
function.
Hack Run-Time Engine:
the machinery that executes a Hack program. Referred to as *the
Engine* throughout this specification.
value:
precise meaning of the contents of a memory location when
interpreted as having a specific type.
Other terms are defined throughout this specification, as needed, with the first usage being typeset like this.