LocalazyLocalazy
GAP es un sistema de álgebra discreta computacional, con especial énfasis en la teoría de grupos computacional. Proporciona un lenguaje de programación, una biblioteca de miles de funciones que implementan algoritmos algebraicos y una gran biblioteca de datos. GAP se utiliza en investigación y educación en álgebra, teoría de números, criptografía, biología computacional y otras áreas. GAP fue desarrollado por un equipo de la Universidad de St Andrews (Escocia) dirigido por el profesor Frank Lübeck. La primera versión de GAP se publicó en 1986. La versión actual es GAP 4, publicada en 2016. GAP es software libre, distribuido bajo los términos de la Licencia Pública General GNU. El grupo GAP se compromete a mantener GAP libre y de código abierto, y a mantener un alto nivel de calidad del código y de asistencia al usuario. GAP es un lenguaje interpretado. Los programas se escriben en archivos de texto y son ejecutados por el intérprete de GAP. Los programas GAP pueden escribirse en cualquier editor de texto, pero también hay disponibles varias interfaces gráficas de usuario e IDEs. El intérprete GAP puede ejecutarse de forma interactiva, lo que permite al usuario escribir comandos y ver inmediatamente los resultados. Es una buena forma de probar GAP y familiarizarse con el lenguaje. También es posible ejecutar programas GAP de forma no interactiva, lo que resulta útil para programas más largos o para ejecutar el mismo programa varias veces. Los programas GAP pueden escribirse con un estilo procedimental u orientado a objetos. En la programación procedimental, los algoritmos se implementan como procedimientos que toman argumentos y devuelven resultados. En la programación orientada a objetos, los datos se encapsulan en objetos y los algoritmos se implementan como métodos que operan sobre esos objetos. GAP proporciona una amplia biblioteca estándar de funciones que implementan algoritmos algebraicos. Estas funciones pueden utilizarse para resolver problemas de teoría de grupos computacional y otras áreas de las matemáticas. Además, GAP puede ampliarse cargando bibliotecas externas de funciones, denominadas paquetes. Actualmente hay más de 100 paquetes disponibles para GAP, que proporcionan funcionalidad para combinatoria, teoría de números, geometría algebraica, criptografía y muchas otras áreas. GAP también incluye una amplia biblioteca de datos. Esta biblioteca incluye datos sobre grupos, permutaciones, matrices y muchos otros objetos matemáticos. Estos datos pueden utilizarse para probar y comparar algoritmos, o simplemente para explorar y aprender matemáticas.