Code Comments
Programming Forum and web based access to our favorite programming groups.I am very happy to announce the availability of CLAIR 1.0. CLAIR is a Prolog 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; they also tend to look at Prolog with increased interest and respect). 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 available: + 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 http://www.cs.unipr.it/clair/ Enjoy, Roberto Bagnara P.S. Interested readers of this newsgroup may notice that several data-structures in CLAIR were not chosen with efficiency in mind (to say the least). This will be corrected in subsequent releases. -- Prof. Roberto Bagnara Computer Science Group Department of Mathematics, University of Parma, Italy http://www.cs.unipr.it/~bagnara/ mailto:bagnara@cs.unipr.it
Post Follow-up to this messagePowered by vBulletin
Copyright 2000-2006 Jelsoft Enterprises Limited.