Grammatica Prolog semplificato (lo scopo è Program): ::= | ::= . | :- . | :- . | ?- . ::= | ( // Nota ::= ) | , ::= | | ::= [] | [ ::= | ::= ; | ; ::= | ::= , | , | ::= not | ( | ! | fail | | | is | = ::= ) | ) | ) | ) ::= | ::= =:= | =\= | < | > ::= | ::= | ::= | ::= | ^ ::= | ::= | ( ) | ^ <> ::= - | + ::= * | / ::= | ::= stringa che inizi con una lettera maiuscola oppure con _ ::= stringa che inizi con una lettera minuscola ::= è il simbolo "|" con cui si seleziona la testa e la coda di una lista Nota: la stringa "append(L1,L2,L3)" è sintatticamente corretta, invece la stringa "append (L1,L2,L3)" non lo è; la grammatica dovrebbe essere scritta in modo da segnalare questo fatto.