LocalazyLocalazy
GAP ist ein System für rechnerische diskrete Algebra, mit besonderem Schwerpunkt auf der rechnerischen Gruppentheorie. Es bietet eine Programmiersprache, eine Bibliothek mit Tausenden von Funktionen, die algebraische Algorithmen implementieren, und eine große Datenbibliothek. GAP wird in Forschung und Lehre in den Bereichen Algebra, Zahlentheorie, Kryptographie, Computerbiologie und anderen Bereichen eingesetzt. GAP wurde von einem Team an der Universität von St. Andrews in Schottland unter der Leitung von Prof. Frank Lübeck entwickelt. Die erste Version von GAP wurde 1986 veröffentlicht. Die aktuelle Version ist GAP 4, die 2016 veröffentlicht wurde. GAP ist freie Software, die unter den Bedingungen der GNU General Public License verbreitet wird. Die GAP-Gruppe setzt sich dafür ein, GAP frei und quelloffen zu halten und einen hohen Standard an Codequalität und Benutzerunterstützung aufrechtzuerhalten. GAP ist eine interpretierte Sprache. Programme werden in Textdateien geschrieben und durch den GAP-Interpreter ausgeführt. GAP-Programme können in jedem Texteditor geschrieben werden, aber es sind auch mehrere grafische Benutzeroberflächen und IDEs verfügbar. Der GAP-Interpreter kann interaktiv ausgeführt werden, d. h. der Benutzer kann Befehle eingeben und die Ergebnisse sofort sehen. Dies ist eine gute Möglichkeit, GAP auszuprobieren und ein Gefühl für die Sprache zu bekommen. Es ist auch möglich, GAP-Programme nicht-interaktiv auszuführen, was für längere Programme oder die mehrfache Ausführung desselben Programms nützlich ist. GAP-Programme können entweder in einem prozeduralen oder objektorientierten Stil geschrieben werden. Bei der prozeduralen Programmierung werden Algorithmen als Prozeduren implementiert, die Argumente annehmen und Ergebnisse zurückgeben. Bei der objektorientierten Programmierung werden die Daten in Objekten gekapselt und die Algorithmen als Methoden implementiert, die auf diesen Objekten arbeiten. GAP bietet eine umfangreiche Standardbibliothek von Funktionen, die algebraische Algorithmen implementieren. Diese Funktionen können zur Lösung von Problemen in der rechnergestützten Gruppentheorie und anderen Bereichen der Mathematik verwendet werden. Darüber hinaus kann GAP durch das Laden externer Funktionsbibliotheken, so genannter Pakete, erweitert werden. Derzeit sind über 100 Pakete für GAP verfügbar, die Funktionen für Kombinatorik, Zahlentheorie, algebraische Geometrie, Kryptographie und viele andere Bereiche bieten. GAP wird auch mit einer großen Datenbibliothek geliefert. Diese Bibliothek enthält Daten für Gruppen, Permutationen, Matrizen und viele andere mathematische Objekte. Diese Daten können zum Testen und Vergleichen von Algorithmen oder einfach zum Erforschen und Lernen von Mathematik verwendet werden.