Tom is a software environment for defining transformations in Java. It is an extension of Java designed to manipulate tree structures and XML documents. It is compatible with Java: a Java program is a correct Tom program. Data are represented using an efficient tree based data-structure. Java built-ins (int, char, String, etc) can be used. Tom provides pattern matching facilities to inspect objects and retrieve values. A powerful strategy language can be used to control transformations.
| Tags | Software Development |
|---|
Recent releases


Release Notes: A %rule construct. ACU normalization rules. Terms with pointers. A new compiler. AU matching. FL (flatten lists) matching. A new strategy library.


Release Notes: The Eclipse plugin is now available again. In the %match construct, the sort of the subject is now optional. It is automatically inferred from the patterns when possible. Gom generates congruence strategies and offers new functionalities, such as the length of a list. A new "!" construct can be used to denote anti-patterns. The strategy library has been extended such that strategy expressions can be matched, like any other term. A strategy can now take another strategy in its argument. Support for Java bytecode analysis and transformation has been added.


Release Notes: Gom, a new generator of data-structure implementations, which is more expressive, better, and more efficient than Vas. A hook mechanism allows calculation of normal forms of terms at construction time. %strategy, a new construct that helps to defines strategies. When using %strategy, it is no longer necessary to define inner classes. In addition, a Tom mapping is automatically generated. %[...]%, a new construct that helps to write backends. The text between %[ and ]% is not interpreted, therefore the string s=%[print("hi")]% corresponds to s="print(\"hi\")". Updated documentation.


Release Notes: Gom was implemented, which is a new generator of data structure implementations, and is more expressive, better, and more efficient than Vas. %strategy was added as a new construct that helps to defines strategies. When using %strategy, it is no longer necessary to define inner-classes. In addition, a Tom mapping is automatically generated. %[...]% is a new construct that helps to write backends. The text between %[ and ]% is not interpreted, so character escaping does not need to be done. The documentation was updated.