Tiny Constraint Modelling Language
Constraint Modelling Languages offer a lot of benefits:
- they enable the unexperienced constraint programmer to formulate a problem in a language that is easy to learn,
- they allow the experienced constraint programmer to concentrate on the basics, without the need to care for implementation specific details,
- they offer a common interface to different constraint engines allowing for comparision, e. g., benchmarking.
Furthermore, a modelling language seems to be adequate to investigate analysing constraint problems:
- Can the formulation of the problem be optimised, i. e., are there unneccessary constraints, or constraints that could be expressed more efficiently?
- Has the formulation obvious deficiencies or promises potential for improvement?
- Can one replace constraints using domain propagation by constraints using bounds propagation, increasing speed?
The goal of the TCML project is to devise a constraint modelling language and to build a small tool that translates a constraint problem given in this language into Mozart and ILOG, and implements at least parts of the analysis component. More basically, we want to get a feeling for what one can do with the language and the analysis. In particular, how can the information derived in the analysis brought to bear insight and increased understanding of the problem to the user?
The tool should consist of a frontend, that translates TCML to an internal representation, an analysing component, and a backend, possibly amended by a user interface, utilising and potentially presenting the information that was derived in the analysing component.
The Oz implementation of a first prototype system has been completed. The system is available to members of the Programming Systems Lab from the CVS archives (check out module tcml), and for public download below.