Jatha - Common LISP library in Java

Jatha is a Java library that implements a fairly large subset of Common LISP, including most of the datatypes (e.g. packages, bignums) and their associated methods. The API allows programmatic access to LISP from Java, either using an eval() method or using Java methods, e.g.
  LispValue firstElement = myList.car();
Additional LISP primitives can be written in Java and registered at runtime to be used in the LISP interpreter. The LISP engine compiles the input forms to an abstract machine code specified in Kogge's book "The Architecture of Symbolic Machines". The engine is pretty fast on today's computers. The following program can calculate 2^128 = 340282366920938463463374607431768211456 in about 4 milliseconds:
  (defun power (a n)
     (if (zerop n)
       (* a (power a (1- n)))))
The Jatha library is covered by the Gnu Lesser General Public License, which allows libraries to be combined with non-free software.

Quick Links

Jatha Overview

Jatha history

Jatha evolved from a "Little LISP" I started implementing in 1991 in C++. The development of Java eliminated the need to implement a garbage collector, so I quickly converted all of the code to Java in 1996 and had a pretty complete system in 1997.

In 2002 I started using Jatha to convert the Algernon rule engine from LISP to Java. This resulted in several extensions to the library and verification that the library was complete enough to distribute. The first open source version of Jatha was distributed on June 14, 2003.

Jatha development is now supported by Hewett Research.

Hosted at: SourceForge.net Logo