Top 1,000 Features Creators Resources Extensions Blog Explorer CSV Download
GitHub icon


< >

GAP, aka Groups, Algorithms and Programming, is an open source programming language created in 1986 by gap.

#287on PLDB 38Years Old 4kRepos
Download source code:
git clone

Try now: Riju · TIO

GAP (Groups, Algorithms and Programming) is a computer algebra system for computational discrete algebra with particular emphasis on computational group theory.. Read more on Wikipedia...

Example from Riju:
Print("Hello, world!\n");
Example from Linguist:
gap> START_TEST("Test of factor groups and natural homomorphisms"); gap> G:=HeisenbergPcpGroup(2); Pcp-group with orders [ 0, 0, 0, 0, 0 ] gap> H:=Subgroup(G,[G.2,G.3,G.4,G.5]); gap> K:=G/H; gap> NaturalHomomorphism(K); gap> A:=Subgroup(H, [G.3]); Pcp-group with orders [ 0 ] gap> B:=Subgroup(Subgroup(G,[G.1,G.4,G.5]), [G.4]); Pcp-group with orders [ 0 ] gap> Normalizer(A,B); Pcp-group with orders [ 0 ] gap> # The following used to trigger the error "arguments must have a common parent group" gap> Normalizer(B,A); Pcp-group with orders [ 0 ] gap> STOP_TEST( "factor.tst", 10000000);
Example from Wikipedia:
gap> G:=SmallGroup(8,1); # Set G to be a group of order 8. <pc group of size 8 with 3 generators> gap> i:=IsomorphismPermGroup(G); # Find an isomorphism from G to a group of permutations <action isomorphism> gap> Image(i,G); # The image of G under I - these are the generators of im G. Group([ (1,5,3,7,2,6,4,8), (1,3,2,4)(5,7,6,8), (1,2)(3,4)(5,6)(7,8) ]) gap> Elements(Image(i,G)); # All the elements of im G. [ (), (1,2)(3,4)(5,6)(7,8), (1,3,2,4)(5,7,6,8), (1,4,2,3)(5,8,6,7), (1,5,3,7,2,6,4,8), (1,6,3,8,2,5,4,7), (1,7,4,5,2,8,3,6), (1,8,4,6,2,7,3,5) ]

Language features

Feature Supported Token Example
Line Comments #
# A comment
Semantic Indentation X

View source

- Build the next great programming language · About · Acknowledgements · Part of the World Wide Scroll