Jtom: a (Java) To One Matching compiler

TOM is a language extension which adds pattern matching facilities to an existing imperative language. In the current version, TOM supports C, Java and Eiffel as native language.

News

jtom-1.3 will be released by the end of August. This major release improves the use of builtins and integrates a debugger.
A Tom eclipse plugin is under development and will be released in September
xtom: an extended version of Tom dedicated to XML transformations will be released in September
a nice application of Tom: BoulderDash

Publications

Pierre-Etienne Moreau, Christophe Ringeissen and Marian Vittek. A Pattern Matching Compiler. In D. Parigot and M. G. J. van den Brand, editors, 1st International Workshop on Language Descriptions, Tools and Applications, Genova (Italy), volume 44 of ENTCS. April 2001.
Pierre-Etienne Moreau, Christophe Ringeissen and Marian Vittek. A Pattern Matching Compiler for Multiple Target Languages. In G. Hedin, editor, 12th Conference on Compiler Construction, Warsaw (Poland), volume 2622 of LNCS, pages 61-76. Springer-Verlag, May 2003.

Principles

The tool does not impose a fixed term representation, rather it accepts implementation of terms (or term like data types) of yet existing applications and it permits to define and execute rewriting rules upon those types. The main design of the implementation can be decomposed into several parts:
The current implementation supports C and Java as target language
It is usable: the TOM compiler is written in TOM itself
A full online documentation with installation instructions, language description and tutorial

Download

Releases

[2003-04-24] jtom-1.2.tar.gz: Version 1.2 released
[2003-01-23] jtom-1.1.tar.gz: Version 1.1 released
[2002-11-21] jtom-1.0.tar.gz: Version 1.0 released
[2002-11-07] jtom-0.6.tar.gz: Efficiency improved and backquotes introduced
[2002-08-21] jtom-0.5.tar.gz: A release with the new front-end
[2002-01-28] jtom-0.4.1.tar.gz
[2002-01-24] jtom-0.4.tar.gz: Complete re-implementation of the syntactic matching
[2002-01-22] jtom-0.3.tar.gz: A release with full list-matching
[2001-09-10] jtom-0.2.5.tar.gz
[2001-06-15] jtom-0.2.4.tar.gz
[2001-06-01] jtom-0.2.3.tar.gz: A release with rewrite rules
[2001-05-14] jtom-0.2.2.tar.gz: A release with records
[2001-03-20] jtom-0.2.1.tar.gz: A release with list-matching
[2001-03-09] jtom-0.2.tar.gz: The first stable release

Bundles

[2003-04-24] jtom-bundle-1.2.tar.gz: This package contains a self-content bundle of jtom-1.2
[2003-02-03] jtom-bundle-1.1.tar.gz: This package contains a self-content bundle of jtom-1.1
[2002-11-21] jtom-bundle-1.0.tar.gz: This package contains a self-content bundle of jtom-1.0

Jar distribution

[2003-04-24] jtom-1.2.jar
[2003-04-24] aterm-1.2.jar
[2003-04-24] shared-objects-1.2.jar
[2003-04-24] jjtraveler-0.4.jar

Daily distribution

The best way to get the last version of jtom is to download the daily distribution (at CWI):
jtom-1.3beta.tar.gz
aterm-java-1.3beta.tar.gz
shared-objects-1.3beta.tar.gz
JJTraveler-0.4.tar.gz

CVS distribution

jtom is available by anonymous cvs:
cvs -d :pserver:cvs@cvs-sop.inria.fr:/CVS/aircube checkout jtom
some cvs snapshots are also available: jtom-cvs.tgz, JJTraveler-cvs.tgz, aterm-java-cvs.tgz, and shared-objects-cvs.tgz

Museum

mtom

Statistics