Implementations of ATS
ATS/Anairiats
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 \
FOO/bootstrap0
After this is done, please go into the directory "FOO" and then execute
'make all-geizella'.
ATS/Geizella
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/Geizella).
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
reference.
This page is maintained by
Hongwei Xi.
As always,
your comments are welcome.
|