Multidimensional Predicates for Prolog
G\"unter Khyo

TL;DR
This paper introduces a library called mdp that extends Prolog with multidimensional predicates inspired by Korz, enabling clearer structuring of adaptive and context-aware systems through meta-programming techniques.
Contribution
It demonstrates how to integrate Korz's multidimensional model into Prolog, providing a flexible library for experimenting with adaptive system behaviors.
Findings
Enhanced structuring of Prolog programs with additional concerns
Facilitated experimentation with syntactical and semantical extensions
Showcased benefits in debugging, memoization, and adaptive GUIs
Abstract
In 2014, Ungar et al. proposed Korz, a new computational model for structuring adaptive (object-oriented) systems. Korz combines implicit parameters and multiple dispatch to structure the behavior of objects in a multidimensional space. Korz is a simple yet expressive model which does not require special programming techniques such as the Visitor or Strategy pattern to accommodate a system for emerging contextual requirements. We show how the ideas of Korz can be integrated in a Prolog system by extending its syntax and semantics with simple meta-programming techniques. We developed a library, called mdp (multidimensional predicates) which can be used to experiment with multidimensional Prolog systems. We highlight its benefits with numerous scenarios such as printing debugging information, memoization, object-oriented programming and adaptive GUIs. In particular, we point out that we…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Software Engineering Methodologies · Logic, programming, and type systems · Software Engineering Research
