8 Standards and Conventions

8-1 FORTRAN SGP/16.10
Application Programming Standard

Describes the Starlink Fortran programming standard, which exists to promote portability and maintainability in Fortran 77 software. It specifies use of the Fortran 77 language standard plus a small number of approved extensions. It also contains a wealth of advice on good programming style and how to avoid common pitfalls.

8-2 C SGP/4.1
Starlink C Programming Standard

Written in a similar style to the Fortran standard (SGP/16), this programming standard for the C language also exists to promote portability and maintainability. Although C is not recommended as an applications language, it is being used to an increasing extent for real-time and system software. C has a far greater potential for danger than Fortran, especially given the variety of compilers available. This document guides you through the C minefield to help you produce good software which will run on a wide range of computer systems.

8-3 DATA SGP/38.2
Starlink Standard Data Structures

An extensive document describing the philosophy behind the use of HDS for building general-purpose data structures. It also gives a full (and gory) description of the Extensible N-Dimensional Data Format, or NDF. The detail in this document is only likely to be of interest to those developing related data-access software. However, the general sections covering the use and design of data structures would be valuable reading for anyone planning extensive use of HDS.

Organisation of ADAM Applications Packages

Describes how separate ADAM applications packages are organised for release. It covers such things as the provision of standard “startup” files, the structure of help libraries, introductory help information, etc. This is essential reading for anyone planning to release a new package of ADAM applications via Starlink.

Conventions for Accessing Starlink Libraries (VMS)

This document will mainly be of interest to those developing new subroutine libraries. It covers the facilities which a library should provide, the use of shareable libraries on VMS, and the naming scheme through which callers of the library should be able to access it. This document also describes the distinction between the ADAM and “stand-alone” versions of a library.

8-6 UNIX SSN/66.2
Starlink Software Organisation on UNIX

Describes how Starlink software is distributed and installed on UNIX machines. This also covers access to subroutine libraries and their “include files” on UNIX systems. The final part of the document covers “make files” and the methods used for the building of UNIX executables.