LocalazyLocalazy
GAP je systém na výpočtovú diskrétnu algebru s osobitným dôrazom na výpočtovú teóriu skupín. Poskytuje programovací jazyk, knižnicu tisícov funkcií implementujúcich algebraické algoritmy a veľkú dátovú knižnicu. GAP sa používa vo výskume a vzdelávaní v algebre, teórii čísel, kryptografii, výpočtovej biológii a ďalších oblastiach. GAP vyvinul tím na University of St Andrews v Škótsku pod vedením profesora Franka Lübecka. Prvá verzia GAP bola vydaná v roku 1986. Aktuálna verzia je GAP 4, vydaná v roku 2016. GAP je slobodný softvér, šírený podľa podmienok GNU General Public License. Skupina GAP sa zaviazala udržať GAP ako slobodný a otvorený softvér a udržiavať vysoký štandard kvality kódu a podpory používateľov. GAP je interpretovaný jazyk. Programy sa píšu v textových súboroch a vykonávajú sa pomocou interpretu GAP. Programy GAP možno písať v ľubovoľnom textovom editore, ale k dispozícii je aj niekoľko grafických používateľských rozhraní a IDE. Interpretátor GAP možno spustiť interaktívne, čo umožňuje používateľovi zadávať príkazy a okamžite vidieť výsledky. Je to skvelý spôsob, ako si vyskúšať jazyk GAP a získať o ňom prehľad. Programy GAP je možné spúšťať aj neinteraktívne, čo je užitočné pri dlhších programoch alebo pri viacnásobnom spustení toho istého programu. Programy v jazyku GAP možno písať buď procedurálnym, alebo objektovým štýlom. V procedurálnom programovaní sú algoritmy implementované ako procedúry, ktoré prijímajú argumenty a vracajú výsledky. V objektovo orientovanom programovaní sú údaje zapuzdrené v objektoch a algoritmy sú implementované ako metódy, ktoré pracujú s týmito objektmi. GAP poskytuje rozsiahlu štandardnú knižnicu funkcií, ktoré implementujú algebraické algoritmy. Tieto funkcie sa dajú použiť na riešenie problémov vo výpočtovej teórii skupín a iných oblastiach matematiky. Okrem toho možno GAP rozšíriť načítaním externých knižníc funkcií, ktoré sa nazývajú balíky. V súčasnosti je pre GAP k dispozícii viac ako 100 balíkov, ktoré poskytujú funkcie pre kombinatoriku, teóriu čísel, algebraickú geometriu, kryptografiu a mnohé ďalšie oblasti. GAP sa dodáva aj s rozsiahlou dátovou knižnicou. Táto knižnica obsahuje údaje pre grupy, permutácie, matice a mnohé ďalšie matematické objekty. Tieto údaje možno použiť na testovanie a porovnávanie algoritmov alebo len na skúmanie a učenie sa o matematike.