LocalazyLocalazy
GAP je systém pro výpočetní diskrétní algebru se zvláštním důrazem na výpočetní teorii grup. Poskytuje programovací jazyk, knihovnu tisíců funkcí implementujících algebraické algoritmy a rozsáhlou knihovnu dat. GAP se používá ve výzkumu a vzdělávání v algebře, teorii čísel, kryptografii, výpočetní biologii a dalších oblastech. GAP vyvinul tým na univerzitě v St Andrews ve Skotsku pod vedením profesora Franka Lübecka. První verze GAP byla vydána v roce 1986. Aktuální verzí je GAP 4, vydaný v roce 2016. GAP je svobodný software, šířený za podmínek GNU General Public License. Skupina GAP se zavázala udržovat GAP jako svobodný a otevřený software a udržovat vysoký standard kvality kódu a uživatelské podpory. GAP je interpretovaný jazyk. Programy jsou psány v textových souborech a spouštěny interpretem GAP. Programy GAP lze psát v libovolném textovém editoru, ale k dispozici je také několik grafických uživatelských rozhraní a IDE. Interpret GAP lze spustit interaktivně, což uživateli umožňuje zadávat příkazy a okamžitě vidět výsledky. Je to skvělý způsob, jak si jazyk GAP vyzkoušet a získat o něm přehled. Programy GAP je možné spouštět i neinteraktivně, což je užitečné pro delší programy nebo pro opakované spouštění stejného programu. Programy v jazyce GAP lze psát buď procedurálním, nebo objektovým stylem. V procedurálním programování jsou algoritmy implementovány jako procedury, které přijímají argumenty a vracejí výsledky. V objektově orientovaném programování jsou data zapouzdřena v objektech a algoritmy jsou implementovány jako metody, které s těmito objekty pracují. GAP poskytuje rozsáhlou standardní knihovnu funkcí, které implementují algebraické algoritmy. Tyto funkce lze použít k řešení problémů v teorii výpočetních grup a dalších oblastech matematiky. Kromě toho lze GAP rozšířit načtením externích knihoven funkcí, tzv. balíčků. V současné době je pro GAP k dispozici více než 100 balíčků, které poskytují funkce pro kombinatoriku, teorii čísel, algebraickou geometrii, kryptografii a mnoho dalších oblastí. GAP je také dodáván s rozsáhlou datovou knihovnou. Tato knihovna obsahuje data pro grupy, permutace, matice a mnoho dalších matematických objektů. Tato data lze použít k testování a porovnávání algoritmů nebo jen k poznávání a učení se o matematice.