MTOM: A Tool for Efficient Embedded Rewriting
MTOM is a term rewriting tool designed for industrial use. The tool do
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.
Simple Examples
- nfib.m n-th Fibonacci number on "int" type
- fib.m n-th Fibonacci number on Peano arithmetics
- atfib.m n-th Fibonacci number on ATerms
(requires ATerm
library)
- silist.m sorted list of integers on C structure
- lazyPrimes.m (infinite) list of all
prime numbers computed in lazy manner.
All programs (except atfib) are self standing, not requiring any other
run-time library.
Complex Example: MTOM written in MTOM
[Jan 08 2001]
The main design of this new implementation of MTOM can be decomposed
into two parts:
- A parsing phase that generates Abstract Syntax Trees (using ATerms)
- A compilation phase that transforms the AST into a program written
in the goal language
The new implementation of MTOM is now written in MTOM itself:
boot-mtom.m
The result of the parsing phase is the following: boot-mtom.tomfix
In order to bootstrap this new implementation, you can apply the first
implementation of MTOM to boot-mtom.m
and get a C file ("boot-mtom.mtom.c").
Compiling this C code you get "mtom2" which can be applied to
boot-mtom.tomfix, in order to get
"mtom3": the bootstrapped version of MTOM.
MTOM for Java [Jan 10 2001]
The new implementation of MTOM can now generate Java goal language
- java-fib.m n-th Fibonacci number on
ATerms (requires the Loria implementation of the Java ATerm library)
MTOM for Java is bootstrapped
[Jan 11 2001]
Download
A preliminary version of MTOM can be downloaded here.
A Java version of MTOM can be downloaded here.
Authors
Last modified: Wed Jan 17 13:59:24 GMT 2001