Implementations
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.
ATS/Geizella 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).
ATS/Anairiats is the currently released implementation of
ATS. It is nearly entirely written in ATS itself, consisting of about
100,000 lines source code written in ATS. 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'.
|