Announcing CLAIR 1.0

Roberto Bagnara <>
11 Apr 2005 00:18:38 -0400

          From comp.compilers

Related articles
Announcing CLAIR 1.0 (Roberto Bagnara) (2005-04-11)
| List of all articles for this month |

From: Roberto Bagnara <>
Newsgroups: comp.compilers
Date: 11 Apr 2005 00:18:38 -0400
Organization: [Infostrada]
Keywords: available, tools
Posted-Date: 11 Apr 2005 00:18:38 EDT

I am very happy to announce the availability of CLAIR 1.0.
CLAIR is a system that has been developed in order to study and
experiment with various aspects of the definition and implementation
of programming languages. In particular it is aimed at providing easy
ways of playing with:

      1. lexical analysis;
      2. syntactic analysis and generation of the abstract syntax tree;
      3. static checking of type correctness;
      4. operational semantics expressed by means of transition systems;
      5. interpretation;
      6. static analysis;
      7. compilation.

While points 1-5 are fully developed, points 6 and 7 do not exist yet.
At present, CLAIR supports two languages: a simple functional language
(SFL) and an imperative language (SIL) that recalls Pascal to some
extent. Both languages adopt the static scoping rule.

The CLAIR approach is based on structured operational semantics a` la
Plotkin for the formal description and on the Prolog language for the
implementation. One of the advantages of this combined approach is
that it is relatively easy to extend the system so as to support other
language features. CLAIR is currently being used successfully in
university courses covering formal languages and operational
semantics. Its main advantage is that students can see, with
relatively little effort, theory at work: a grammar becomes a parser,
static semantics rules directly translate into a type checker, and
with dynamic semantics rules you have an interpreter for your language
(students are deeply impressed when they see the interpreter actually
running the imperative programs). We hope to add facilities that
allow to easily turn an abstract semantics into a static analyzer.

Compilation of the system is as easy as typing `./configure' and
`make', provided at least one of the following Prolog systems is

      + Ciao Prolog
      + GNU Prolog
      + SWI-Prolog
      + SICStus Prolog
      + YAP

CLAIR is distributed under the terms of the GNU General Public License.
Feedback is solicited on all aspects of the system and its documentation.

For more information, visit the CLAIR web site at



          Roberto Bagnara

Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.