Projects / TOM programming language

TOM programming language

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

RSS Recent releases

  •  13 Jul 2007 10:44

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

  •  05 Oct 2006 04:00

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.

  •  28 Apr 2006 10:34

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.

  •  27 Apr 2006 23:06

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.

Screenshot

Project Spotlight

Socat

A relay for bidirectional data transfer.

Screenshot

Project Spotlight

SSLsplit

A transparent and scalable SSL/TLS interception tool.