A particular form of promise which claims to the compiler that the specified goal will always hold. If useful, the compiler may use this information to perform optimisations.
class context
The typeclass constraints on a predicate or function.
a structure used by codegen.m
The "High Level Data Structure". See hlds.m.
instantiatedness. An inst holds three different sorts of information. It indicates whether a variable is free, partially bound, or ground. If a variable is bound, it may indicate which functor(s) the variable can be bound to. Also, an inst records whether a value is unique, or whether it may be aliased.
this term is used to mean two quite different things!
  1. There's a notion of liveness used in mode analysis: a variable is live if either it or an alias might be used later on in the computation.
  2. There's a different notion of liveness used for code generation: a variable becomes live (is "born") when the register or stack slot holding the variable first acquires a value, and dies when that value will definitely not be needed again within this procedure. This notion is low-level because it could depend on the low-level representation details (in particular, `no_tag' representations ought to affect liveness).
The "Low Level Data Structure". See llds.m.
this has two meanings:
  1. a mapping from one instantiatedness to another (the mode of a single variable)
  2. a mapping from an initial instantiatedness of a predicate's arguments to their final instantiatedness (the mode of a predicate)
Another name for the HLDS.
Not Yet Implemented.
the structure in HLDS which contains information about a predicate.
proc (procedure)
a particular mode of a predicate.
the structure in HLDS which contains information about a procedure.
A declaration that specifies a law that holds for the predicates/functions in the declaration. Thus, examples of promises are assertions and promise ex declarations. More generally, the term promise is often used for a declaration where extra information is given to the compiler which it cannot check itself, for example in purity pragmas.
promise ex
A shorthand for promise_exclusive, promise_exhaustive, and promise_exclusive_exhaustive declarations. These declarations are used to tell the compiler determinism properties of a disjunction.
The "RunTime Type Information". See rtti.m. A copy of a paper given on this topic is available here in zipped Postscript format.
super-homogenous form (SHF)
a simplified, flattened form of goals, where each unification is split into its component pieces; in particular, the arguments of each predicate call and functor must be distinct variables.
a disjunction which does a case analysis on the toplevel functor of some variable.