2012 Volume 29 Issue 4 Pages 4_114-4_129
In this paper, we explain Copris (Constraint Programming in Scala) system which is developed as a Domain-Specific Language (DSL) for constraint programming embedded in Scala programming language. Copris is designed to help Scala programmers to be able to easily solve Constraint Satisfaction Problems (CSP) and Constraint Optimization Problems (COP), and offers richer description power than existing CSP languages, such as JSR-331, a standardized constraint programming API for Java. Copris also provides a high performance constraint solving since constraint solver Sugar is used as its backend which won at global constraint categories of the international CSP solver competitions in two consecutive years. In this paper, we explain the effectiveness of using Copris by showing some example programs after describing the design overview of Copris DSL.