Mailing Lists


CLAIR: The Combined Language and Abstract Interpretation Resource

What Is CLAIR?

Welcome to the home page of CLAIR: The Combined Language and Abstract Interpretation Resource. The CLAIR system has been developed in order to study and experiment with various aspects of programming language implementation. In particular it is aimed to provide easy ways of playing with
  1. lexical analysis;
  2. syntactic analysis and generation of the abstract syntax tree (parsing);
  3. static checking of type correctness;
  4. operational semantics expressed by means of transition systems;
  5. interpretation.
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 à la Plotkin for the formal description [Plo81] 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.


Apr 04, 2005 CLAIR 1.0 released, at last!
This is the first truly public release of the system.


You can browse the code or browse the latest user's manual in PDF. You can also jump straight to the latest version's download area. Visiting the rest of this site will give you access to more information, more documentation and more download options.

[Page last updated on January 13, 2013, 15:58:52.]

© Roberto Bagnara

Home | Documentation | Documentation | Download | Credits | Mailing Lists | Links