Claire (programming language)

Claire (programming language)
Claire
Paradigm(s) multi-paradigm: functional, object-oriented (class-based), rule processing, reflective
Appeared in 1994 (1994)
Designed by Yves Caseau
Stable release 3.3.46 (February 17, 2009; 2 years ago (2009-02-17))
Typing discipline strong, both static and dynamic
Major implementations Claire (reference implementation), WebClaire
Influenced by Smalltalk, SETL, OPS5, Lisp, ML, C, LORE, LAURE
OS Cross-platform
License Permissive free software license
Usual filename extensions .cl

Claire is a high-level functional and object-oriented programming language with rule processing capabilities. It was designed by Yves Caseau at Bouygues' e-Lab research laboratory, and received its final definition in 2004.

Claire provides:

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.

Overview

Claire is a general-purpose language, best suited to applications 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. Creation and roll-back of versions permit backtracking, as found in logic programming, though Claire's backtracking may cover any user-defined structure rather than just a set of logic variables.

A production rule in Claire is composed of an event, a condition and a response to be evaluated if the condition is satisfied. An event may be any change in an object's slot or the instantiation of a class, and a response may itself set off further events. Such production rules are especially useful in describing reactive algorithms, such as those for constraint propagation.

Claire was created as a successor to LAURE, an expressive but complex language designed by Caseau in the 1980s that combined many paradigms. Claire was intended to be both easier to learn than its predecessor and to impose no performance overhead relative to C++; it is thus a much smaller language, omitting features such as constraints and deductive rules, and is closer to C in spirit and syntax. Its main users in industry have been the Bouygues and Thales groups.

Example

A function to compute the nth Fibonacci number:

fib(n:integer) : integer
-> (if (n < 2) 1
else fib(n - 1) + fib(n - 2))

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Multi-paradigm programming language — A multi paradigm programming language is a programming language that supports more than one programming paradigm. As Leda designer Tim Budd holds it: The idea of a multiparadigm language is to provide a framework in which programmers can work in… …   Wikipedia

  • Constraint programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computin …   Wikipedia

  • List of programming languages — Programming language lists Alphabetical Categorical Chronological Generational The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in… …   Wikipedia

  • Marie-Claire D'Ubaldo — is an Argentine singer / musician and a prolific songwriter; she has appeared as a guest vocalist on many albums. She had her biggest success with Falling Into You which was covered by Celine Dion, who also named her album after the single.… …   Wikipedia

  • Clair — For a list of people with the name Claire, see Claire (given name). Clair or Claire may refer to: Contents 1 Places 1.1 Canada 1.2 United States 1.3 Scotland …   Wikipedia

  • Unification (computer science) — Unification, in computer science and logic, is an algorithmic process by which one attempts to solve the satisfiability problem. The goal of unification is to find a substitution which demonstrates that two seemingly different terms are in fact… …   Wikipedia

  • List of Yale University people — Yalies are persons affiliated with Yale University, commonly including alumni, current and former faculty members, students, and others. Here follows a list of notable Yalies. Dynamic listNotes: * LL.B. (Legum Baccalaureum) is a graduate degree… …   Wikipedia

  • Bell Labs — Bell Laboratories (also known as Bell Labs and formerly known as AT T Bell Laboratories and Bell Telephone Laboratories) is the research organization of Alcatel Lucent and previously the American Telephone Telegraph Company (AT T). Bell… …   Wikipedia

  • Supercomputer — A supercomputer is a computer that is at the frontline of processing capacity, particularly speed of calculation (at the time of its introduction). The term Super Computing was first used by New York World newspaper in 1929 [cite book |last=Eames …   Wikipedia

  • Ada (langage) — Pour les articles homonymes, voir Ada. Ada Lovelace Ada est un langage de programmation orienté objet dont les premières versions remontent au début des années …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”