This is a page on GAP 3, which is
still available, but no longer supported. The present version is
GAP 4 (See
Status of GAP 3). 
Overview of GAP 3
GAP 3 provides:

A programming language,
also called GAP, which is interpreted. Note that the
language of GAP 3 differs in some details from that of
GAP 4 (see
GAP 3 to GAP 4).
The language features:

Pascallike control structures,

automatic memory management including garbage collection,

builtin data types for key algebraic objects,

flexible list and
record data types.

An interactive
environment that supports
debugging and timing of GAP programs, and provides
online access to the reference manual as well as interactive help.

A library of
functions
containing implementations of various algebraic
algorithms written in the GAP language. Besides using
them you can also look at them to find how they work, and use them as
examples for own programs. Although the GAP 3 library
provides over 4,000 functions, compare the manuals of
GAP 3 and GAP 4 to see that the library
of functions of GAP 4 provides by far more functionality
than that of GAP 3.

Separate share packages
consisting of additional libraries of functions for specialized purposes.

Data libraries containing
lists of large classes of algebraic objects that are accessible by using
GAP 3 commands.

Documentation, in particular
Note that the last three points refer to information for both,
GAP 3 and GAP 4.

Download and Installation
instructions.

FAQ answers, some of which refer to
GAP 4.
Structure of GAP 3
GAP 3 has a kernel written in C. It implements

the GAP 3 language,

an interactive environment for developing and using GAP 3
programs,

memory management, and

fast versions of time critical operations for various data types.
All the rest of the library of functions is written in the
GAP 3 language.
Requirements and Availability
GAP 3 will run on any machine with a UNIXlike or recent
Windows or MacOS operating system. For hardware requirements see the
GAP 3 download
instructions.
