Concept

Claire (programming language)

Summary
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 commercially supported. Claire is a general-purpose programming language, best suited to application software requiring sophisticated data modeling, rule processing or problem solving. WebClaire adds extensions for fuller integration with the operating system and for programming web applications. Though Claire can be used for complete projects, it is designed to integrate smoothly with C++ or Java: Claire programs may include C++ or Java code, and Claire code may be translated into C++ or Java for use in C++ or Java projects. The key set of features that distinguishes Claire from other programming languages has been dictated by experience in solving complex optimization problems. Two features not found in other mixed functional/object-oriented languages, such as OCaml, Scala and F#, are versioning and production rules. Versions can be viewed as a stack of snapshots of some part of the system, which can be made as large (for expressiveness) or small (for efficiency) as necessary.
About this result
This page is automatically generated and may contain information that is not correct, complete, up-to-date, or relevant to your search query. The same applies to every other page on this website. Please make sure to verify the information with EPFL's official sources.
Related publications

Loading

Related people

Loading

Related units

Loading

Related concepts

Loading

Related courses

Loading

Related lectures

Loading

Related MOOCs

Loading