CLAIRE: Combining Objects and Rules for Problem Solving

This paper describes a new approach towards code reuse through a high-level programming language. This work has been developed in the context of combinatorial optimization for industrial problems, where performance is criti cal and where a large number of fairly complex algorithms are used, that often share similar structures (such as branch & bound). The result is the CLAIRE programming language, which provides high levels of abstraction and parametrization. Consequently, it may be used as an executable pseudo-code to describe concise and reusable problem solving algorithms.