Other Design Objectives

As well as its scientific objectives, the AST library's design includes a number of technical criteria intended to make it applicable to as wide a range of projects as possible. The main considerations are described here:

  1. Minimum Software Dependencies. The AST library depends on no other other software[*].

  2. Environment Independence. AST is designed so that it can operate in a variety of “programming environments” and is not tied to any particular one. To allow this, it uses simple, flexible interfaces to obtain the following services:

  3. Multiple Language Support. AST has been designed to be called from more than one language. Both C and Fortran interfaces are available (see SUN/210sun210 for the Fortran version) and use from C$++$ is also straightforward if the C interface is included using:


    \begin{terminalv}
extern ''C'' {
...

    A JNI interface (known as “JNIAST” - see http://www.starlink.ac.uk/jniast/) has also been developed by Starlink which allows AST to be used from Java.

  4. ObjectObject Oriented Design. AST uses “object oriented” techniques internally in order to provide a flexible and easily-extended programming model. A fairly traditional calling interface is provided, however, so that the library's facilities are easily accessible to programmers using C and Fortran.

  5. Portability. AST is implemented entirely in ANSI standard C and, when called via its C interface, makes no explicit use of any machine-dependent facilities.

    The Fortran interface is, unavoidably, machine dependent. However, the potential for problems has been minimised by encapsulating the interface layer in a compact set of C macros which facilitate its transfer to other platforms. No Fortran compiler is needed to build the library.

    Currently, AST is supported by Starlink on PC Linux, Sun Solaris and Tru64 Unix (formerly DEC UNIX) platforms.