Procedural Code Generation vs Static Expansion in Modelling Languages for Constraint Programming

  • Julien Martin
  • Thierry Martinez
  • François Fages
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6384)


To make constraint programming easier to use by the non-programmers, a lot of work has been devoted to the design of front-end 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.


Modelling Language Free Variable Constraint Program Packing Problem Static Expansion 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Brucker, P., Hurink, J., Jurisch, B., Wöstmann, B.: A branch & bound algorithm for the open-shop problem. In: GO-II Meeting: Proceedings of the Second International Colloquium on Graphs and Optimization, pp. 43–59. Elsevier Science Publishers B. V., Amsterdam (1997)Google Scholar
  2. 2.
    Carlsson, M., Beldiceanu, N., Martin, J.: A geometric constraint over k-dimensional objects and shapes subject to business rules. In: Stuckey, P.J. (ed.) CP 2008. LNCS, vol. 5202, pp. 220–234. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  3. 3.
    de la Banda, M.G., Marriott, K., Rafeh, R., Wallace, M.: The modelling language Zinc. In: Benhamou, F. (ed.) CP 2006. LNCS, vol. 4204, pp. 700–705. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  4. 4.
    Fages, F., Martin, J.: From rules to constraint programs with the Rules2CP modelling language. In: Oddi, A., Fages, F., Rossi, F. (eds.) CSCLP 2008. LNCS, vol. 5655, pp. 66–83. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  5. 5.
    Fages, F., Martin, J.: Modelling search strategies in Rules2CP. In: van Hoeve, W.-J., Hooker, J.N. (eds.) CPAIOR 2009. LNCS, vol. 5547, pp. 321–322. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  6. 6.
    Frisch, A.M., Harvey, W., Jefferson, C., Martinez-Hernandez, B., Miguel, I.: Essence: A constraint language for specifying combinatorial problems. Constraints 13, 268–306 (2008)MathSciNetCrossRefzbMATHGoogle Scholar
  7. 7.
    Van Hentenryck, P., Perron, L., Puget, J.-F.: Search and strategies in opl. ACM Transactions on Compututational Logic 1(2), 285–320 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    Kanellakis, P.C., Mitchell, J.C.: Polymorphic unification and ml typing. In: Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1989, pp. 105–115. ACM, New York (1989)Google Scholar
  9. 9.
    Korf, R.E.: Optimal rectangle packing: New results. In: ICAPS, pp. 142–149 (2004)Google Scholar
  10. 10.
    Michel, L., Van Hentenryck, P.: The comet programming language and system. In: van Beek, P. (ed.) CP 2005. LNCS, vol. 3709, p. 881. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  11. 11.
    Rafeh, R., de la Banda, M.G., Marriott, K., Wallace, M.: From Zinc to design model. In: Hanus, M. (ed.) PADL 2007. LNCS, vol. 4354, pp. 215–229. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  12. 12.
    Rémy, D.: Records and variants as a natural extension of ML. In: Sixteenth Annual Symposium on Principles of Programming Languages (1989)Google Scholar
  13. 13.
    Simonis, H., O’Sullivan, B.: Using global constraints for rectangle packing. In: Proceedings of the First Workshop on Bin Packing and Placement Constraints BPPC 2008, Associated to CPAIOR 2008 (May 2008)Google Scholar
  14. 14.
    Van Hentenryck, P.: The OPL Optimization programming Language. MIT Press, Cambridge (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Julien Martin
    • 1
  • Thierry Martinez
    • 1
  • François Fages
    • 1
  1. 1.EPI ContraintesINRIA Paris-RocquencourtLe Chesnay CedexFrance

Personalised recommendations