Software Announcement: Tom 2.7

Pierre-Etienne Moreau
Loria, Inria, France


It is our great privilege and pleasure to announce the availability of Tom version 2.7.
This release continues our work on the integration of pattern matching and rule based programming facilities into Java and C.

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, both in academia and industry. 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 proof assistant for supernatural deduction
  • a compiler algorithm for anti-pattern matching and disunification

Tom is a complex compiler which adds powerful constructs to Java and C: 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 a detailed documentation, as well as with programming and debugging support.

This new release contains many improvements and new features:

  • a completely new documentation and installation guide
  • Tom has been modified to generate statically well typed (using generics) type preserving visit methods for the Strategy library
  • the Tom compiler is now thread-safe (can compile files in parallel)
  • Gom has been extended to generate support for syntax involving alpha-convertible names and binding operations. This extension is called FreshGom
  • Gom can now generate data-structures without maximal-sharing
  • a new traversal combinator has been introduced in the Strategy Library: Up
  • the import/export facilities of Gom has been improved for better compatibility with the ATerm library.

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