Tom 2.5 released

Antoine Reilles <>
Thu, 12 Jul 2007 17:44:23 +0000 (UTC)

          From comp.compilers

Related articles
Tom 2.5 released (Antoine Reilles) (2007-07-12)
| List of all articles for this month |

From: Antoine Reilles <>
Newsgroups: comp.compilers
Date: Thu, 12 Jul 2007 17:44:23 +0000 (UTC)
Organization: CIRIL, Nancy, France
Keywords: C, Java, tools, available
Posted-Date: 12 Jul 2007 22:08:23 EDT

Tom 2.5 announcement

It is our great privilege and pleasure to announce the availability of
Tom version 2.5.

This release continues our work on the integration of pattern matching
and rule based programming facilities into C and Java.

Tom is a pattern matching compiler developed at INRIA. It is
particularly well-suited for programming various transformations on
trees/terms and XML based documents. Its design follows our research on
the semantics and the efficient compilation of rule based languages.

Many applications have been developed in Tom. Among them, let us mention:
  - the Tom compiler itself
  - languages semantics, interpreters and program transformation tools
  - a generator of canonical abstract syntax trees (Gom)
  - a Just In Time strategy compiler using dynamic Java bytecode
  - a proof assistant for supernatural deduction
  - a compiler algorithm for anti-pattern matching and disunification

Tom is a complex compiler which adds powerful constructs to C and Java:
rewrite rules, strategies, non linear syntactic matching, associative
matching with neutral element (a.k.a. list-matching), XML based pattern
matching, string matching, and equational rewriting.
This offers the possibility to analyze and transform any kind of
data-structure. Tom can be used for large scale developments and
applications. It comes with documentation, as well as with programming
and debugging support.

This new release contains many improvements and new features:

    - a new compiler based on constraint propagation. This makes the code
        simpler and ready for combinations of theories.

    - a new strategy library, simpler to use, more efficient, and ready
        for graph traversal.

    - a new "rule" construct to specify conditional rewrite rules that
        are always applied (the data-structure is in normal form by

    - a full support of list-operators whose domain is equal to the
        codomain. This corresponds to associative matching with neutral
        element (AU). An interesting variant for flattened lists (FL) has
        also been developed.

    - the data-structure can be normalized wrt. to associative-commutative
        (AC) or AC with neutral element (ACU).

    - any combination of patterns, anti-patterns, and list-operators is
        fully supported.

    - the possibility to define terms with pointers. This is very useful
        to represent, analyze, and transform term-graphs like CFG for

Tom is available, in open source (GPL/BSD License), from the web page:

    Best regards,
    Tom development team

Post a followup to this message

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