Why yet another programming language ?

CLAIRE is designed to explore complex optimisation algorithm, on the edge of combinatorial optimisation, stochastic programming, constraint-based programming and rule-based programming.

Why an interpreted language ?

After  more than 40 years of programming, I am an unconditional fan of the REPL (Read - Eval - Print Loop). The productivity gain is still not matched by most modern IDE.

What is the benefit of a full separate compiler ?

Although JIT (just in time) works better and better with modern computers, there is still a performance advantage for fully compiled languages (such as C, C++, Java or Go)

What is the main characteristic of CLAIRE ?

CLAIRE was derived from a combinatorial optimisation algorithmic specification language. Its main goal is to be a language that can both be used to teach and to write algorithms

Why did CLAIRE switch to Go as its target source generation ?

CLAIRE achieves the combination of high-level expressiveness and low-level efficiency through source code transformation. After 30 years of C++, I switched to Go to improve the robustness (leaving memory management to Go) while maintaining a high level of performance, for the compile AND for the interpreter. Go was selected after studying a large set of alternatives because of its ability to implement the dynamic evaluation loop of an interpreter with the same level of efficiency as the best modern interpreters, such as Python.

Why does CLAIRE use non standard notations ?

CLAIRE favours readability for non computer practitioners, hence it follows more general principles: