Specification and correctness proof of a WAM extension with abstract type constraints
- 1 July 1996
- journal article
- Published by Association for Computing Machinery (ACM) in Formal Aspects of Computing
- Vol. 8 (4) , 428-462
- https://doi.org/10.1007/bf01213533
Abstract
We provide a mathematical specification of an extension of Warren's Abstract Machine (WAM) for executing Prolog to type-constraint logic programming and prove its correctness. Our aim is to provide a full specification and correctness proof of a concrete system, the PROTOS Abstract Machine (PAM), an extension of the WAM by polymorphic order-sorted unification as required by the logic programming language PROTOS-L. In this paper, while leaving the details of the PAM's type constraint representation and solving facilities to a sequel to this work, we keep the notion of types and dynamic type constraints abstract to allow applications to different constraint formalisms like Prolog III or CLP(R). This generality permits us to introduce modular extensions of Börger's and Rosenzweig's formal derivation of the WAM. Since the type constraint handling is orthogonal to the compilation of predicates and clauses, we start from type-constraint Prolog algebras with compiled AND/OR structure that are derived from Börger's and Rosenzweig's corresponding compiled standard Prolog algebras. The specification of the type-constraint WAM extension is then given by a sequence of evolving algebras, each representing a refinement level, and for each refinement step a correctness proof is given. Thus, we obtain the theorem that for every such abstract type-constraint logic programming system L, every compiler to the WAM extension with an abstract notion of types which satisfies the specified conditions, is correct.Keywords
This publication has 13 references indexed in Scilit:
- Refinement of a typed WAM extension by polymorphic order-sorted typesFormal Aspects of Computing, 1996
- Run-time type computations in the Warren Abstract machineThe Journal of Logic Programming, 1994
- A verified prolog compiler for the Warren Abstract MachineThe Journal of Logic Programming, 1992
- WAM algebras—A mathematical study of implementation Part 2Published by Springer Nature ,1992
- Horn clause programs with polymorphic types: semantics and resolutionTheoretical Computer Science, 1991
- A formal operational semantics for languages of type Prolog IIIPublished by Springer Nature ,1991
- From prolog algebras towards WAM-A mathematical study of implementationPublished by Springer Nature ,1991
- An introduction to Prolog IIICommunications of the ACM, 1990
- Logic programming with polymorphically order-sorted typesLecture Notes in Computer Science, 1988
- A polymorphic type system for prologArtificial Intelligence, 1984