Domain-specific Languages in a Finite Domain Constraint Programming System
Markus Triska

TL;DR
This paper introduces domain-specific languages for finite domain constraint programming in Prolog, enhancing specification clarity, reducing runtime overhead, and potentially improving solver correctness and efficiency.
Contribution
The paper presents novel DSLs for constraint programming that simplify implementation, improve readability, and optimize performance of finite domain solvers.
Findings
DSLs enable concise and readable specifications
Specifications are translated to Prolog code at compile time
Potential improvements in correctness, conciseness, and efficiency
Abstract
In this paper, we present domain-specific languages (DSLs) that we devised for their use in the implementation of a finite domain constraint programming system, available as library(clpfd) in SWI-Prolog and YAP-Prolog. These DSLs are used in propagator selection and constraint reification. In these areas, they lead to concise specifications that are easy to read and reason about. At compilation time, these specifications are translated to Prolog code, reducing interpretative run-time overheads. The devised languages can be used in the implementation of other finite domain constraint solvers as well and may contribute to their correctness, conciseness and efficiency.
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
TopicsConstraint Satisfaction and Optimization · Model-Driven Software Engineering Techniques · AI-based Problem Solving and Planning
