Abstract
Object-constraint programming provides a design to integrate constraints with dynamic, object-oriented programming languages. It allows developers to encode multi-way constraints over objects and object collections using existing, object-oriented abstractions. These constraints are automatically maintained at run-time. One original goal of the Babelsberg-family of object-constraint programming languages was to allow users familiar with the imperative paradigm to quickly and efficiently make use of constraint solver capabilities. Yet, practical problems often require careful selection of solvers to find good solutions (or any at all). Furthermore, solver performance can vary and while most solvers come with various optimizations, developers have to have a good understanding of the solving process to use these optimizations effectively. This, however, is difficult to achieve if the solver is automatically selected by the system. In this work, we discuss three different implementations for automatic solver selection that we used in Babelsberg implementations. As a second step, we look at the performance potential of edit constraints that are available in some solvers such as Cassowary or DeltaBlue, and how they can be applied automatically to improve solver performance. We argue that these techniques make object-constraint programming more practical by improving the quality and performance of solutions.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.