Tom (programming language)

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 domain-specific languages (DSL)
 * transforming XML documents
 * implementing rule-based systems
 * describing algebraic transformations