A Formal Operational Semantics for Languages of Type Prolog III

We use dynamic algebras introduced by Gurevich in [Gurevich 1988], [Gurevich 1991] to develop a formal semantics for the logical core of constraint logic programming languages of type Prolog III [Colmerauer 1990]. Our specification abstracts away from any particular feature of the mechanism for the resolution of constraints, thus providing a uniform description of constraint logic programming languages which turns out to be a natural refinement of the standard Prolog algebras developed in [Borger 1990]. In particular we show how our method can be used for a precise but simple method to handle specification problems connected to the freeze predicate.