Tom is a programming language particularly well-suited for programming various transformations on tree structures and XML based documents. Tom is a language extension which adds new matching primitives to C and Java as well as support for rewrite rules systems. The rules can be controlled using a strategy language.Tom is good for: programming by pattern matching developing compilers and DSL transforming XML documents implementing rule based systems describing algebraic transformations↑ ↑ ↑ ↑ ↑ ↑