How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The CLP( R ) language and system
ACM Transactions on Programming Languages and Systems (TOPLAS)
A minimal extension of the WAM for clp(FD)
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
Herbrand constraint solving in HAL
Proceedings of the 1999 international conference on Logic programming
Parametric Overloading in Polymorphic Programming Languages
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Building Constraint Solvers with HAL
Proceedings of the 17th International Conference on Logic Programming
Optimizing Compilation of Constraint Handling Rules
Proceedings of the 17th International Conference on Logic Programming
Metastructures versus Attributed Variables in the Context of Extensible Unification
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
A Model for Inter-module Analysis and Optimizing Compilation
LOPSTR '00 Selected Papers form the 10th International Workshop on Logic Based Program Synthesis and Transformation
Constraint Representation for Propagation
CP '98 Proceedings of the 4th International Conference on Principles and Practice of Constraint Programming
CP '99 Proceedings of the 5th International Conference on Principles and Practice of Constraint Programming
CL '00 Proceedings of the First International Conference on Computational Logic
Extending arbitrary solvers with constraint handling rules
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Checking modes of HAL programs
Theory and Practice of Logic Programming
Theory and Practice of Logic Programming
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
A Compositional Semantics for CHR with Propagation Rules
Constraint Handling Rules
Communications of the ACM
Multi-paradigm declarative languages
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Experiments in context-sensitive analysis of modular programs
LOPSTR'05 Proceedings of the 15th international conference on Logic Based Program Synthesis and Transformation
Hi-index | 0.02 |
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.