Tom is a Java-based software tool that enables users to define and execute transformations in a software environment.
One of the most notable features of Tom is that it is an extension of Java that is specially created to manipulate tree structures and XML documents. It is also 100% compatible with Java, meaning that any Java program can be considered a correct Tom program.
Data are represented using an efficient object-oriented tree-based data-structure. Also, standard Java built-ins, such as int, char, and String can be used. Tom provides pattern matching facilities to inspect objects and retrieve values, and a powerful strategy language can be employed to control transformations.
Many companies utilize Tom as it provides the ability to implement transformations of programs, improve software quality, describe algebraic transformations, and create rule-based systems.
Tom acts as a great language extension that brings new matching primitives to C and Java: %match. The %match construct works similar to the match primitive found in functional languages. It allows selecting a pattern that matches the subject and then performs the associated action. Additionally, recent syntax has been updated to XML syntax that in combining with powerful associative-matching capabilities, proves to be a serious alternative to manipulate XML documents in Java.
Tom also provides a %rule construct which allows to describe rewrite rule systems. This construct supports conditional rewrite rules as well as rules with matching conditions (as in ELAN or ASF+SDF). By default, Tom provides a left-most innermost normalization strategy which allows to compute normal forms in an efficient way.
In conclusion, Tom extends Java in such a way that it is not only a great tool for transforming XML documents, but it is also useful to write rule-based queries and programs. Tom’s powerful features make it a great choice for those who need an efficient programming language to improve software quality.
Version 2.6: N/A