From Tom

Welcome to Tom: a software environment for defining transformations

What is Tom?

Tom is a language extension designed to manipulate tree structures and XML documents

Tom provides pattern matching facilities to inspect objects and retrieve values

Tom can be used with C, Java, Python, C++, C#, etc.

Tom is used in several companies to implement transformations of programs and queries

Tom is a mature and stable project which started in 2001 (see museum)

Here you will find a 5 minutes presentation video

Getting Started

the current stable version is Tom version 2.10 which is available for download : windows version stable version examples full version (stable version + source code + examples)

which is available for :

Tom and Java

When Tom is used in a Java environment some additional features are available:

We provide a generator of efficient object oriented tree based data-structures (Gom)

We provide a powerful strategy language that can be used to control transformations

We provide a models transformation engine relying on Ecore EMF. It includes a generator of Tom-EMF mappings, dedicated Tom construct to express a model transformation, and a dedicated introspector to be able to use strategies with models

Materials

Logos

Integrating Tom in an existing Java application that uses Java Persistence API: Video

Tom in the news : Here is a collection of links to what speaks about Tom on the web.

Material for lectures

The old Research zone link has been transferred to the TomResearch wiki, which is a private wiki with a limited access (subscriptions have been closed). Useful links have been dispatched.

Tom wiki