ATSlogo
Home(old)
Downloads
Documents
Libraries
Community
Papers
Examples
Resources
Implements
Mailing-list
ats-lang-users
ats-lang-devel
Try ATS on-line
The ATS Programming Language
Unleashing the Potentials of Types and Templates!

Libraries

ATS is feature-rich. It can accommodate low-level C-style imperative programming as well as high-level ML-style functional programming. In addition, it supports an advanced template system comparable to the one in C++. As different programming styles often require different kinds of library support, it is probably unsurprising that there are several varieties of libraries in ATS available to meet certain distinct needs of programmers (such as a runtime with or without GC).


ATSPRE

ATSPRE is also referred to as ATSLIB/prelude. The implementation code of ATSPRE is nearly entirely template-based (to be used by the compiler (ATS/Postiats) for generating C code).

  • ATSPRE_all_in_one (raw) (html)
  • Backup: ATSPRE_all_in_one (raw) (html)

ATSLIB/libats

ATSLIB/libats consists of various data structures implemented in ATS (or, more precisely, ATS2). The implementation code is nearly entirely template-based (to be used by the compiler (ATS/Postiats) for generating C code). Often a data structure is given a functional implementation as well as a linear implementation in ATSLIB/libats, where the former requires the availability of garbage collection (GC) for automatic memory management while the latter relies on linear types to ensure the safety of manual memory management.

  • ATSLIB_libats_all_in_one (raw) (html)
  • Backup: ATSLIB_libats_all_in_one (raw) (html)

ATSLIB/libats/ML

ATSLIB/libats/ML essentially consists of an API of ML-style for making use of various functional data structures implemented in ATSLIB/libats.

  • ATSLIB_libats_ML_all_in_one (raw) (html)
  • Backup: ATSLIB_libats_ML_all_in_one (raw) (html)

ATSLIB/libats/libc

ATSLIB/libats/libc essentially consists of an API for calling libc-functions in ATS.

  • ATSLIB_libats_libc_all_in_one (raw) (html)
  • Backup: ATSLIB_libats_libc_all_in_one (raw) (html)

ATSLIB/contrib/libatscc

ATSLIB/contrib/libatscc is primarily meant for employing ATS and various other programming languages in a style of co-programming. For instance, programs written in ATS can be transpiled into popular languages like JavaScript, Python, PHP, Perl, Erlang, Scheme, Clojure, R, etc.


[thePageRFooterSep]
This page is created by Hongwei Xi
with tools including ATS/weboxy, atscc2js and atscc2php.