Lambda the Ultimate

inactiveTopic CLAIRE: Combining Sets, Search and Rules to Better Express Algorithms
started 7/1/2003; 2:13:05 PM - last post 7/2/2003; 7:43:37 AM
Isaac Gouy - CLAIRE: Combining Sets, Search and Rules to Better Express Algorithms  blueArrow
7/1/2003; 2:13:05 PM (reads: 369, responses: 2)
I remember being fascinated by Yves Caseau's work on the programming languages LORE and LAURE 15 years ago. It's a pleasure to see that he has continued his research program:

CLAIRE: Combining Sets, Search and Rules to Better Express Algorithms
"... Oz is more ambitious than CLAIRE and has been a model for some of its features (such as the use of higher-order functions). On the other hand, Oz is still an untyped language and too high-level, from our point of view, to be a language of choice to implement propagation strategies."

CLAIRE: The Art of Elegant Programming
The key set of features that distinguishes claire from other programming languages has been dictated by our experience in solving complex optimization problems...

To provide a high degree of expressivity, claire uses

  • a rich type system including type intervals and second-order types (with static/dynamic typing),
  • parametric classes and methods,
  • propagation rules based on events,
  • dynamic versioning that supports easy exploration of search spaces.

    To achieve its goal of readability, claire uses

  • set-based programming with an intuitive syntax,
  • simple-minded object-oriented programming,
  • truly polymorphic and parametric functional programming,
  • an entity-relation approach with explicit relations, inverses and unknown values.

  • Ehud Lamm - Re: CLAIRE: Combining Sets, Search and Rules to Better Express Algorithms  blueArrow
    7/2/2003; 3:53:46 AM (reads: 362, responses: 0)
    How aobut some nice code examples?

    Isaac Gouy - Re: CLAIRE: Combining Sets, Search and Rules to Better Express Algorithms  blueArrow
    7/2/2003; 7:43:37 AM (reads: 343, responses: 0)
    The language manual Introduction to the CLAIRE Programming Language Version 3.3 has more code examples than the "Combining Sets, Search and Rules" paper.

    And more examples can be found in the online documentation: The CLAIRE and WEBCLAIRE Programming Language.

    Perhaps in contrast to Mozart/Oz,
    "The CLAIRE language is not a powerful high-level language whose compiler has progressively been designed to eliminate undue overhead. On the contrary, CLAIRE was a simple C++ code generator, which was designed to guarantee the absence of overhead, and that has evolved into a powerful language over the years while we were improving the compiler technology."

    "CLAIRE was meant to be used in a C++ environment, either as a satellite (linking claire programs to C++ programs is straightforward) or as an upper layer (importing C++ programs is also easy)."