Claire (programming language)
| Claire | |
|---|---|
| Paradigm | multi-paradigm: functional, object-oriented (class-based), rule processing, reflective | 
| Designed by | Yves Caseau | 
| First appeared | 1994 | 
| Stable release | 3.3.46
   / February 17, 2009 | 
| Typing discipline | strong, both static and dynamic | 
| OS | Cross-platform | 
| License | Apache 2.0 | 
| Filename extensions | .cl | 
| Website | www | 
| Major implementations | |
| Claire (reference implementation), WebClaire | |
| Influenced by | |
| Smalltalk, SETL, OPS5, Lisp, ML, C, LORE, LAURE | |
Claire is a high-level functional and object-oriented programming language with rule processing abilities. It was designed by Yves Caseau at Bouygues' e-Lab research laboratory, and received its final definition in 2004.
Claire provides:
- A simple object system with parametric classes and methods
- Polymorphic and parametric functional programming
- Production rules triggered by events
- Versioned snapshots of the state of the whole system, or any part, supporting rollback and easy exploration of search spaces
- Explicit relations between entities; for example, two entities might be declared inverses of one another
- First-class sets with convenient syntax for set-based programming
- An expressive set-based type system allowing both second-order static and dynamic typing
Claire's reference implementation, consisting of an interpreter and compiler, was fully open-sourced with the release of version 3.3.46 in February 2009. Another implementation, WebClaire, is supported commercially.
Claire has, since 2022, a new reference version, CLAIRE4, which is written on the Go language. It has a new website with documentations and examples, together with a Github open source repository.