Component Programming and Interoperability in Constraint Solver Design
Frederic Goualard

TL;DR
This paper advocates for component-oriented design of constraint solvers to enhance interoperability and efficiency in industrial applications, moving beyond traditional object-oriented implementations.
Contribution
It introduces a component programming approach for constraint solvers, demonstrating architecture and analyzing its advantages and limitations.
Findings
Component-oriented solvers improve interoperability.
Prototype architecture shows promising integration capabilities.
Identifies challenges in component-based solver design.
Abstract
Prolog was once the main host for implementing constraint solvers. It seems that it is no longer so. To be useful, constraint solvers have to be integrable into industrial applications written in imperative or object-oriented languages; to be efficient, they have to interact with other solvers. To meet these requirements, many solvers are now implemented in the form of extensible object-oriented libraries. Following Pfister and Szyperski, we argue that ``objects are not enough,'' and we propose to design solvers as component-oriented libraries. We illustrate our approach by the description of the architecture of a prototype, and we assess its strong points and weaknesses.
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 · Advanced Database Systems and Queries
