Tom (pattern matching language)
# Tom (pattern matching 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
