A Prolog Subset.
A grammar for a small Prolog language is given below;
it follows the grammar for Horn clause form closely.
Variable names begin with a capital letter.
It simplifies matters to make a program consist of zero or more
rules followed by a single query;
in other systems queries can be interspersed with the rules.
Note also that most Prologs use `:-' instead of `<='
and use `,' instead of `and' to separate atoms.
<Program> ::= [ <rules> ] <query>
<rule> ::= <atom> . | <atom> <= <literals> .
<rules> ::= <rule> [ <rules> ]
<query> ::= ? <literals> .
<literal> ::= <atom> | not <atom>
<literals> ::= <literal> [ and <literals> ]
<atom> ::= <ident> | <ident> ( <terms> )
<term> ::= <ident> | <numeral> | -- constants
<ident> ( <terms> ) | -- functions
<IDENT> -- variables
<terms> ::= <term> [, <terms> ]
--- Prolog-S Syntax. ---
[Previous Page]
[Next Page]
[Index]
© L. Allison, Dept. Computer Science, Monash University