Tom 2.5 released: the way to do pattern matching in Java


News: Tom 2.5 released: the way to do pattern matching in Java

  1. Tom is a text processor that translates classes with some special syntax into Java, and integrates pattern matching and rule based programming facilities. It is particularly well-suited for programming various transformations on trees/terms and XML based documents. It has some interesting possible applications as a domain specific language. Tom adds new constructs to Java that enable information retrieval and transformation (via conditional rules) in lists and trees. Traversals of trees and transformations are based on a strong theoretical background. Tom compiler is mature enough to be used for large scale developments and applications, and integrating Tom in any existing application is straightforward, as Tom produces Java source code. Some applications developed in Tom (both in academia and industry): - requests transformations (ex: XQuery requests' optimizations ) - the Tom compiler itself - languages semantics, interpreters and program transformation tools - a generator of canonical abstract syntax trees (Gom) - a Just In Time strategy compiler using dynamic Java bytecode transformation - a proof assistant for supernatural deduction - a compilation algorithm for anti-pattern matching and disunification A guided tour of Tom can be found here. Tom is available, in open source (GPL/BSD License), from the web page:
  2. off hand, Tom reminds me a bit of rewrite rules in Apache's webserver: there's a bit of a learning curve, but once you've got the hang of it, you wonder how you lived without. I'm looking forward to trying out Tom soon, it seems like something that would take a day to get comfortable with, and then you'd be able to slap together rules engines of any kind. Thanks for releasing it!