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 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 \
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. Logo