Tom (pattern matching language)
Website: tom.loria.fr
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