To the Gates of HAL: A HAL Tutorial

  • Authors:
  • María J. García de la Banda;Bart Demoen;Kim Marriott;Peter J. Stuckey

  • Affiliations:
  • -;-;-;-

  • Venue:
  • FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
  • Year:
  • 2002

Quantified Score

Hi-index 0.02

Visualization

Abstract

Experience using constraint programming to solve real-life problems has shown that finding an efficient solution to the problem often requires experimentation with different constraint solvers or even building a problem-specific constraint solver. HAL is a new constraint logic programming language expressly designed to facilitate this process. It provides semi-optional type, mode and determinism declarations. These allow natural constraint specification by means of type overloading, better compile-time error checking and generation of more efficient run-time code. Importantly, it provides type classes which can be used to specify solver interfaces, allowing the constraint programmer to support modelling of a constraint problem independent of a particular solver, leading to easy "plug and play" experimentation with different solvers. Other interesting features include mutable global variables for implementing a constraint store, and dynamic scheduling and Constraint Handling Rules (CHRs) for combining, extending and writing new constraint solvers.