A Prolog Program for Bottom-up Evaluation
This short paper describes a simple and intuitive Prolog program, a metainterpreter, that computes the bottom up meaning of a simple positive Horn clause definition. It involves a simple transformation of the object program rules into metarules, which are then used by a metainterpreter to compute bottom up the model of the original program. The resulting algorithm is a form of semi-naive bottom-up evaluation. We discuss various reasons why this Prolog program is particularly interesting. In particular, this is perhaps the only Prolog program for which I find the use of Prolog's assert/1 to be intrinsic, easily understood, and the best, most perspicuous, way to program an algorithm. This short paper might be best characterized as a Prolog programming pearl.
Authors
- David S. Warren (ORCID: https://orcid.org/0000-0001-7567-8156)
Institutions
- Stony Brook University (US)
Publication Details
- Journal
- Electronic Proceedings in Theoretical Computer Science
- Published
- 2025-02-11
- DOI
- https://doi.org/10.4204/eptcs.416.20
- Primary Topic
- Software System Performance and Reliability
- Type
- article
- Field-Weighted Citation Impact
- 0.00