WAMpy: Efficient Synthesis of Prolog Programs in Python
Organizations: Centre for Cognitive Science & Institute of Psychology, Technische Universität Darmstadt, Germany
Abstract
We present WAMpy, a Python framework optimized for synthesizing Prolog programs. Unlike general-purpose Prolog systems, WAMpy targets workloads that repeatedly generate and evaluate small candidate programs. WAMpy compiles Prolog clauses into NumPy array-based WAM instructions and supports partial recompilation of hypotheses against fixed background knowledge. Performance-critical routines are accelerated using Numba just-in-time (JIT) compilation. In a benchmark of repeated compilation-and-evaluation workloads, WAMpy improves end-to-end performance compared with SWI-Prolog accessed from Python using Janus.
Figures & tables
Program Synthesis
Program synthesis automatically constructs executable programs from examples, specifications, demonstrations, or natural-language descriptions.
See all 181 papers