A Prolog program consists of a sequence of sentences or
lists of sentences. Each sentence is a Prolog
term. How terms are interpreted as sentences is
defined below (see Sentence). Note that a term representing a
sentence may be written in any of its equivalent syntactic
forms. For example, the compound term Head
:-
Body could be written in standard prefix notation instead of as
the usual infix operator.
Terms are written as sequences of tokens. Tokens are sequences of characters, which are treated as separate symbols. Tokens include the symbols for variables, constants and functors, as well as punctuation characters such as brackets and commas.
We define below how lists of tokens are interpreted as terms (see Term Token). Each list of tokens that is read in (for interpretation as a term or sentence) has to be terminated by a full-stop token. Two tokens must be separated by a layout-text token if they could otherwise be interpreted as a single token. Layout-text tokens are ignored when interpreting the token list as a term, and may appear at any point in the token list.
We define below defines how tokens are represented as strings of characters (see Token String). But we start by describing the notation used in the formal definition of Prolog syntax (see Syntax Notation).