GAP (Groups, Algorithms and Programming) – program typu CAS służący do przeprowadzania obliczeń na obiektach algebraicznych (zwłaszcza z obliczeniowej teorii grup).
GAP jest również nazwą języka programowania używanego w systemie GAP (większość dostępnych w tym systemie funkcji napisanych jest w tym właśnie języku).
Możliwości GAP-a obejmują: obliczenia na liczbach całkowitych (dowolnej wielkości), wymiernych, p-adycznych, wielomianach, funkcjach wymiernych, elementach ciał skończonych, permutacjach i in. struktury danych takie jak listy (w tym na macierze, zbiory), struktury algebraiczne (podgrupy grupy permutacji, grupy macierzowe, grupy skończenie prezentowalne, grupy policykliczne, przestrzenie liniowe, moduły, ciała), grafy, automaty skończone i in. relacje i odwzorowania (w szczególności homomorfizmy struktur algebraicznych, działania grup, reprezentacje) obliczanie niezmienników takich jak: rząd grupy, jądro homomorfizmu, podgrupy Sylowa, charaktery i wiele innych. możliwe jest korzystanie z zewnętrznych programów takich jak KANT czy SINGULAR.