Overview of GAP
GAP provides:
-
Mathematical capabilities accessible through
-
a large
library of
functions, containing
implementations of various algebraic algorithms, part of
which is divided into
'Modules' under the
responsibility of 'maintainers',
-
separate packages of additional
functions for specialized purposes which can be used like library
functions,
-
data libraries containing
large classes of various algebraic objects that are accessible by
using GAP commands.
-
A
programming language, also called GAP,
which is interpreted and can be compiled. It can be used interactively
at the keyboard or to write programs to be saved and then executed.
Such programs can easily be modified and rerun. The language features:
-
Pascal-like control structures,
-
automatic memory management including garbage collection,
-
streams,
-
flexible
list and
record data types,
-
built-in data types for key algebraic objects,
-
automatic
method selection building on a mechanism for
automatically choosing the highest ranked method for a certain
operation, depending on the current state of all its arguments,
so that GAP objects representing mathematical objects may gain
knowledge about themselves during their lifetime resulting in
better methods being chosen later on.
-
An
interactive environment that supports in particular
-
Documentation, in particular
-
a
Tutorial
and further
learning and
teaching material,
some of these in
French,
Japanese,
Portuguese, and
Russian,
-
the
Reference Manual giving complete descriptions of library
functions with examples of use,
-
separate manuals for the
packages,
-
worked out higher level
examples and a
collection of preprints and
talks,
-
advice
for people writing GAP code,
-
a mark-up language
GAPDoc for writing
GAP documentation,
-
an archive of GAP
Forum contributions,
-
a Bibliography of papers quoting
GAP.
-
Download and Installation instructions.
-
FAQ answers.
-
A
GAP3 benchmark,
designed by
Martin Schönert,
has been included with the benchmarks of the Standard Performance
Evaluation Company.
Structure of GAP
GAP has a kernel written in C. It implements
-
the GAP language,
-
an interactive environment for developing and using
GAP 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 language. Packages are mainly written in the
GAP language, but some also involve standalones. Some
packages provide links to other systems.
Requirements and Availability
The GAP system will run on any machine with a UNIX-like
or recent Windows or MacOS operating system and with a
reasonable amount
of RAM and disk space. The current version is GAP 4, but
GAP 3 is also available, so
those GAP 3 packages that have not yet been converted to
GAP 4 may still be used. Both GAP 4 and
GAP 3 may be obtained at no cost by following the
download instructions.
|