Babel Group's Research Projects

The SLAM Project

The SLAM Project is an ambitiuos initiative which seeks to facilitate the production of high quality software by introducing formal methods in the development process, specifically in design and programming stages. The project was started in year 2000 by the Babel Group at Technical University of Madrid (School of Computer Science).


A negation system for Prolog.

We have presented a novel method for incorporating negation into a Prolog compiler which takes a number of existing methods (some modified and improved by us) and uses them in a combined fashion. The method makes use of information provided by a global analysis of the source code.


Sloth is a compiler that translates Curry programs into Prolog, extending our previous work on the translation of Babel programs.

The system includes both an interactive shell and a batch compiler.

The project was started in year 1998 by the Babel Group at Technical University of Madrid (School of Computer Science).


The Relational Abstract Machine is the main computation engine for the Relational Computing project, and provides a new foundation for declarative programming based on rewriting and interpretation of Relation Expressions.


MTP (More Than Parsing) is an ongoing tool for describing context free grammars of programming languages (lexical and semantical analyzer generator). Grammars are described in GONF (Generalised Object Normal Form), a syntax definition formalism that demands thinking about their abstract syntax from the beginning. The project was started in year 2004 by the Babel Group at Technical University of Madrid (School of Computer Science).


The Global GNU Compiler Collection (GGCC) project (funded by ITEA) aims to extend GCC through continuing research efforts, providing tools, interfaces and documentation which will enable new approaches to be developed around program-wide static analysis techniques. The static analysis of GGCC will work on the GIMPLE internal representations of GCC, hence be usable for all the current source languages and target systems available today in GCC.


McErlang is a model checker for programs written in the Erlang programming language. The idea is to replace the part of the standard Erlang runtime system that concerns distribution, concurrency and communication with a new runtime system which simulates processes inside the model checker, and which offers easy access to the program state.