Attributed Data for CHR Indexing

  • Beata Sarna-Starosta
  • Tom Schrijvers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5649)


The overhead of matching CHR rules is alleviated by constraint store indexing. Attributed variables provide an efficient means of indexing on logical variables. Existing indexing strategies for ground terms, based on hash tables, incur considerable performance overhead, especially when frequently computing hash values for large terms.

In this paper we (1) propose attributed data, a new data representation for ground terms inspired by attributed variables, that avoids the overhead of hash-table indexing, (2) describe program analysis and transformation techniques that make attributed data more effective, and (3) provide experimental results that establish the usefulness of our approach.


Constraint Handling Rules indexing program transformation term representation attributed variables 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aït-Kaci, H.: Warren’s Abstract Machine: A Tutorial Reconstruction. MIT Press, Cambridge (1991)Google Scholar
  2. 2.
    Becket, R., et al.: Adding constraint solving to Mercury. In: Van Hentenryck, P. (ed.) PADL 2006. LNCS, vol. 3819, pp. 118–133. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Frühwirth, T.: Theory and practice of Constraint Handling Rules. Journal of Logic Programming 37(1–3), 95–138 (1998)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Holzbaur, C.: Metastructures vs. Attributed Variables in the Context of Extensible Unification. Technical Report TR-92-23, Austrian Research Institute for Artificial Intelligence, Vienna, Austria (1992)Google Scholar
  5. 5.
    Holzbaur, C., Frühwirth, T.: Compiling Constraint Handling Rules into Prolog with attributed variables. In: Nadathur, G. (ed.) PPDP 1999. LNCS, vol. 1702, pp. 117–133. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  6. 6.
    Holzbaur, C., Frühwirth, T.: A Prolog Constraint Handling Rules Compiler and Runtime System. Special Issue Journal of Applied Artificial Intelligence on Constraint Handling Rules 14(4) (April 2000)Google Scholar
  7. 7.
    Holzbaur, C., de la Banda, M.G., Stuckey, P.J., Duck, G.J.: Optimizing Compilation of Constraint Handling Rules in HAL. Theory and Practice of Logic Programming 5(4&5), 503–531 (2005)CrossRefzbMATHGoogle Scholar
  8. 8.
    Sarna-Starosta, B., Schrijvers, T.: An efficient term representation for CHR indexing. In: Carro, M., Demoen, B. (eds.) Proceedings of CICLOPS 2008, pp. 172–186 (2008)Google Scholar
  9. 9.
    Sarna-Starosta, B., Schrijvers, T.: Transformation-based indexing techniques for constraint handling rules. In: Schrijvers, T., Raiser, F., Frühwirth, T. (eds.) CHR 2008, RISC Report Series 08-10, University of Linz, Austria, Hagenberg, Austria, July 2008, pp. 3–18 (2008)Google Scholar
  10. 10.
    Schrijvers, T., Demoen, B.: The K.U.Leuven CHR system: Implementation and application. In: 1st Workshop on Constraint Handling Rules: Selected Contributions, pp. 1–5 (2004)Google Scholar
  11. 11.
    Schrijvers, T., Frühwirth, T.: Optimal Union-Find in Constraint Handling Rules. Theory and Practice of Logic Programming 6(1&2) (2006)Google Scholar
  12. 12.
    Schrijvers, T., Stuckey, P.J., Duck, G.J.: Abstract interpretation for Constraint Handling Rules. In: Barahona, P., Felty, A.P. (eds.) PPDP 2005, Lisbon, Portugal, July 2005, pp. 218–229. ACM Press, New York (2005)Google Scholar
  13. 13.
    Sneyers, J., Schrijvers, T., Demoen, B.: The computational power and complexity of Constraint Handling Rules. ACM Transactions on Programming Languages and Systems (TOPLAS) 31(12) (2009)Google Scholar
  14. 14.
    Wielemaker, J.: SWI-Prolog release 5.6.0 (2006),

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Beata Sarna-Starosta
    • 1
  • Tom Schrijvers
    • 2
  1. 1.LogicBlox Inc., AtlantaGeorgiaUSA
  2. 2.Department of Computer ScienceK.U.LeuvenBelgium

Personalised recommendations