When referring to keyboard characters, printing characters are written thus: a, while control characters are written like this: ^A. Thus ^C is the character you get by holding down the CTL key while you type c. Finally, the special control characters carriage-return, line-feed and space are often abbreviated to RET, LFD and SPC respectively.
When introducing a built-in predicate, we shall present its usage with a mode spec which has the form name(arg, ..., arg) where each arg denotes how that argument should be instantiated in goals, and has one of the following forms:
Mode specs are not only used in the manual, but are part of the syntax of the language as well. When used in the source code, however, the ArgName part must be omitted. That is, arg must be either :, +, -, or ?.
In the context of certain compiler declarations, we shall need the
following notation: Predicates in Prolog are distinguished by their name
and their arity. The notation
therefore used when it is necessary to refer to a predicate
concatenate/3 specifies the predicate which
is named "concatenate" and which takes 3 arguments. In general, a
predicate spec takes the form
the introduction of the module system, this spec is only defined
relative to the "current" module. An absolute predicate spec must
include a module prefix:
The full Prolog system with top-level, compiler, debugger etc. is known as the Development System. On some platforms, both a sequential and an OR-parallel Development System can be built. The OR-parallel Development System is also known as Muse.
OR-parallelism executes clauses and disjunctions of a predicate in parallel and is useful for search and all-solutions style programming. No change or annotations of the programs are necessary but sometimes more parallelism may be utilized if the program is modified. The main issue is to avoid side effects that might serialize the search. Except for some few exceptions Muse preserves the full functionality of SICStus Prolog. Muse is still an experimental system and is not formally supported.
It is possible to link user-written C code with a subset of SICStus Prolog to create stand-alone applications, called Runtime Systems. Only sequential Runtime Systems are available. When introducing a built-in predicate, any limitations on its use in Runtime Systems will be mentioned.
Whenever this manual documents a C function as part of SICStus Prolog's foreign language interface, the function prototype will be displayed in ANSI C syntax.
SICStus Prolog complies in spirit, if not in detail, with the Draft International Standard ISO/IEC 13211-1 (PROLOG: Part 1--General Core). In particular, SICStus Prolog does not offer a strictly conforming mode which rejects uses of implementation specific features. Minor deviations also concern e.g. the syntax, the arithmetic functions, and the error system.
To aid programmers who wish to write standard compliant programs, built-in predicates that have a counterpart in the ISO Prolog Standard are annotated with [ISO] in this manual, where appropriate with a comment clarifying the difference between the SICStus and the prescribed ISO Prolog versions.
Go to the first, previous, next, last section, table of contents.