Implementations of ATS
is the currently released implementation of ATS. ATS/Anairiats is written
in ATS itself, consisting of nearly 100,000 lines
of source code. When compared to
ATS/Geizella, a previous implementation of ATS, ATS/Anairiats is
significantly more efficient, and in general it issues more informative
messages for identifying program errors.
Bootstrapping via gcc
In order to bootstrap ATS/Anairiats, one needs to first check out the
following svn directory and name it as some local directory, say, "FOO":
svn co https://ats-lang.svn.sourceforge.net/svnroot/ats-lang/trunk FOO
Note that this checkout puts the C code needed for bootstrapping in a
directory of the name "FOO/bootstrap0".
Please go into the directory "FOO" and then execute 'make all'.
Bootstrapping via ocaml
It is also possible to use the ATS/Geizella compiler (written in OCaml) for
bootstrapping ATS/Anairiats. This can be done by checking out the following
svn directory and name it as the local directory "FOO/bootstrap0":
svn co https://ats-lang.svn.sourceforge.net/svnroot/ats-lang/bootstrap/geizella \
After this is done, please go into the directory "FOO" and then execute
is a previously released implementation of ATS (written in OCaml and C). In this
implementation, the native unboxed data representation (as is in C) is
adopted, and this makes ATS/Geizella particularly well suited for direct
interaction with C. As for parametric polymorphism, it is supported in
ATS/Geizella through the use of templates. ATS/Geizella is now largely out
of active use as ATS/Anairiats, a compiler for ATS that is almost entirely
written in ATS, has been bootstrapped successfully (with the help of
ATS/Proto is the first implementation of ATS. In this
implementation, the standard boxed data representation is used to support
parametric polymorphism. As of now, ATS/Proto is no longer actively
maintained and its main purpose is to serve as an example for future
This page is maintained by
your comments are welcome.