ATS/Proto, written in OCaml, is the first complete implementation of
ATS. In this implementation, the standard boxed data representation is
chosen to implement parametric polymorphism. There is direct support in
ATS/Proto for object-oriented programming (OOP), which is no longer
available in later implementations of ATS. Also, there is support in
ATS/Proto for typed meta-programming (MP), that is, constructing programs
that can output well-typed programs, which is mostly abandoned in later
implementations. As of now, ATS/Proto is no longer actively maintained and
its main purpose is to serve as an example for future reference.
is a previously released implementation of ATS, which is also written in
OCaml. In this implementation, the native unboxed data representation
(as is in C) is adopted, making ATS/Geizella particularly well-suited for
direct interaction with C (that incurs no run-time overhead). 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/Geizella).
is the currently released implementation of ATS. It is nearly entirely
written in ATS itself, consisting of 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 checkout svn://svn.code.sf.net/p/ats-lang/code/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'. If the directory "FOO/bootstrap0" is
not present, please check it out by executing the following command-line:
svn checkout svn://svn.code.sf.net/p/ats-lang/code/bootstrap/anairiats FOO/bootstrap0
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 checkout svn://svn.code.sf.net/p/ats-lang/code/bootstrap/geizella FOO/bootstrap0
After this is done, please go into the directory "FOO" and then execute 'make all-geizella'.
is the currently released implementation of ATS2. It is nearly entirely
written in ATS1, consisting of 140,000+ lines of source code.