Procedural code generation vs static expansion in modelling languages for constraint programming

  • Authors:
  • Julien Martin;Thierry Martinez;François Fages

  • Affiliations:
  • EPI Contraintes, INRIA Paris-Rocquencourt, Le Chesnay Cedex, France;EPI Contraintes, INRIA Paris-Rocquencourt, Le Chesnay Cedex, France;EPI Contraintes, INRIA Paris-Rocquencourt, Le Chesnay Cedex, France

  • Venue:
  • CSCLP'09 Proceedings of the 14th Annual ERCIM international conference on Constraint solving and constraint logic programming
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

To make constraint programming easier to use by the nonprogrammers, a lot of work has been devoted to the design of frontend modelling languages using logical and algebraic notations instead of programming constructs. The transformation to an executable constraint program can be performed by fundamentally two compilation schemas: either by a static expansion of the model in a flat constraint satisfaction problem (e.g. Zinc, Rules2CP, Essence) or by generation of procedural code (e.g. OPL, Comet). In this paper, we compare both compilation schemas. For this, we consider the rule-based modelling language Rules2CP with its static exansion mechanism and describe with a formal system a new compilation schema which proceeds by generation of procedural code. We analyze the complexity of both compilation schemas, and present some performance figures of both the compilation process and the generated code on a benchmark of scheduling and bin packing problems.