Extended DCG Notation: A Tool for Applicative Programming in Prolog

Abstract : This report describes a preprocessor that simplifies purely applicative programming in Prolog. The preprocessor generalizes Prolog's Definite Clause Grammar (DCG) notation to allow programming with multiple accumulators. It has been an indispensable tool in the development of an optimizing Prolog compiler. Its use is transparent in versions of Prolog that conform to the Edinburgh standard. This report contains a description of the preprocessor, a user manual, a large example program, and the source code of the preprocessor.