Conference Proceedings

Memoizing a monadic mixin DSL

P Wuille, T Schrijvers, H Samulowitz, G Tack, P Stuckey

Lecture Notes in Computer Science -- Functional and Constraint Logic Programming | Published : 2011


Modular extensibility is a highly desirable property of a domain-specific language (DSL): the ability to add new features without affecting the implementation of existing features. Functional mixins (also known as open recursion) are very suitable for this purpose. We study the use of mixins in Haskell for a modular DSL for search heuristics used in systematic solvers for combinatorial problems, that generate optimized C code from a high-level specification. We show how to apply memoization techniques to tackle performance issues and code explosion due to the high recursion inherent to the semantics of combinatorial search. As such heuristics are conventionally implemented as highly entangl..

View full abstract