... variable.4.1
The display matrix tools is similar to the variable display of Grace. The main differences are: it can display all attributes, not just the finite domain attribute; the attributes can only be observed, not changed; and the labelling strategy cannot be changed.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...ECLiPSe4.2
Unless it is attached to the remote development tools, in which case the display matrix is invoked.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... place6.1
An example of using this feature is the library ifdef.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... it6.2
This is in fact ambiguous; the system predicate compiled_stream/1 which is exported from the module sepia_kernel is more precise.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... files6.3
This style is not recommended.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... predicate6.4
The standard approach is to index only on the first argument
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... declared7.1
For backward compatibility they can still be made global, but this is not a recommended practice.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... imported7.2
for local initialization use :- local initialization(...).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... definitions7.3
except that reexported predicates retain their original definition module
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... predicates7.4
Many Prolog systems call them meta-predicates.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... Prolog7.5
to the extent implemented by ECLiPSe's compatibility library
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... floats8.1
ECLiPSe versions older than 5.5 optionally supported single precision floats. This is no longer the case.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... reals8.2
We have chosen to use the term bounded real rather than interval in order to avoid confusion with interval variables as used in the interval arithmetic constraint solvers
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... determined\8.3
This is in contrast to a floating point number, which represents a real number which lies somewhere in the vicinity of the float
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... it9.1
Though this feature could be used to make a copy of a term with new variables, it is cleaner and more efficient to use copy_term/2 for that purpose
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... results9.2
A similar problem can occur when the counter is used by an interrupt handler
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... integer10.1
Note that the stream numbers are not the same as UNIX file descriptors
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...ProcClause11.1
It should be remembered that because of the definition of the syntax of a term, to assert a procedure of the form p :- q,r it is necessary to enclose it in parentheses: assert((p:-q,r)).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... goal12.1
type(goal) stands for suspensions.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... global12.2
So that the user can redefine it with a local one.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... time13.1
This is time that the CPU spends on executing user code, i.e. the ECLiPSe program.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... discarded13.2
This is necessary because the compiler recognises simple predicates as deterministic at compile time and so if a simple predicate would cause the invocation of a non-deterministic error handler, the generated code may no longer be correct.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... variable13.3
Note that some events are not errors but are used for different purposes. In thoses cases the second and third argument are sometimes used differently. See Appendix C for details.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... independent13.4
Note that since the interrupt handler has only one optional argument which is a number, it cannot bind any variables in the current resolvent.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... predicate14.1
provided the call has been compiled in debug_compile mode, or the call is a meta-call
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... inspected14.2
In ECLiPSe 4.0, this was implemented as a submode (invoked with two key strokes - Hi). It is now fully integrated into the debugger
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... tool15.1
The profiler requires a small amount of hardware/compiler dependent code and may therefore not be available on all platforms.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... attributes.16.1
We use both metaterm and attributed variable to denote the same data structure. The latter is more appropriate, but for the reasons of backward compatibility we sometimes use the former. The name ``metaterm'' originates from its application in meta-programming: for an object-level program, a metaterm looks like a variable; but the meta-program accesses the metaterm's attribute and can store meta-level information in it.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... e.g.:16.2
The attribute suspend is always present and defined by system coroutining.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... begins17.1
This mechanism may be reconsidered in a future release
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... delayed17.2
This is sometimes referred to as floundering.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... needed19.1
provided that the underlying operating system supports this
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
... visible21.1
The packet boundaries are not of much interest in Prolog because every Prolog term represents itself a message with clear boundaries.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Warwick Harvey
2004-08-07