Transformers -*- Text -*- ------------ C++ parsing tool bundle for Stratego/XT. Authors ------- Robert Anisko Valentin David Nicolas Desprès Akim Demaille Olivier Gournet Quôc Peyrot Nicolas Pouillard Julien Roussel Nicolas Tisserand Clément Vasseur Overview -------- Thanks to the keyword template, and almost by accident, C++ is a very special language where one can not only specify what a program will do once compiled, but in addition one can specify how the compiler will compile a program. This feature gave birth to powerful programming techniques, commonly referred to as ``metaprogramming''. Because of its committment in the Olena and Vaucanson projects, the LRDE has developped expertize in metaprogramming. Unfortunately the implementation is tricky and very error-prone. Starting from the simple idea that ``we want metaprogramming efficiency, but we don't want to write it'', the Transformers project was initiated. It aims at converting naive (but decent) C++ programming into high-speed (but indecent) C++ source code. To this end, several tasks must be addressed: basically the Transformers project aims at designing a set of tools to manipulate C++ programs. The software we use to build those tools comes mainly from Stratego/XT. Its main goal is to ease the use of static C++ programming patterns, such as the ones which are currently in use in Olena or Vaucanson by letting the programmer use classical (human readable) C++ code and transform it into efficient generic code. There are several steps to go before we have a usable tool. Requirements ------------ StrategoXT 0.9.5 or above (http://www.stratego-language.org/) Installation ------------ $ ./configure --with-xt= $ make $ make install -- Copyright (C) 2003, 2004 EPITA Research and Development Laboratory. This file is part of the Transformers project. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA