LocalazyLocalazy
GAP é um sistema de álgebra discreta computacional, com particular ênfase na teoria dos grupos computacionais. Fornece uma linguagem de programação, uma biblioteca de milhares de funções que implementam algoritmos algébricos, e uma grande biblioteca de dados. O GAP é utilizado na investigação e educação em álgebra, teoria dos números, criptografia, biologia computacional e outras áreas. O GAP foi desenvolvido por uma equipa da Universidade de St Andrews na Escócia, liderada pelo Prof. Frank Lübeck. A primeira versão do GAP foi lançada em 1986. A versão actual é a GAP 4, lançada em 2016. GAP é software livre, distribuído sob os termos da Licença Pública Geral GNU. O grupo GAP está empenhado em manter o GAP livre e de código aberto, e em manter um elevado padrão de qualidade de código e apoio ao utilizador. GAP é uma linguagem interpretada. Os programas são escritos em ficheiros de texto e executados pelo intérprete GAP. Os programas GAP podem ser escritos em qualquer editor de texto, mas há também várias interfaces gráficas de utilizador e IDEs disponíveis. O intérprete GAP pode ser executado interactivamente, permitindo que o utilizador digite os comandos e veja imediatamente os resultados. Esta é uma óptima maneira de experimentar o GAP e de ter uma noção da língua. Também é possível executar programas GAP de forma não interactiva, o que é útil para programas mais longos ou para executar o mesmo programa várias vezes. Os programas GAP podem ser escritos num estilo processual ou orientado para objectos. Na programação de procedimentos, os algoritmos são implementados como procedimentos que levam argumentos e retornam resultados. Na programação orientada a objectos, os dados são encapsulados em objectos e os algoritmos são implementados como métodos que operam sobre esses objectos. GAP fornece uma grande biblioteca padrão de funções que implementam algoritmos algébricos. Estas funções podem ser utilizadas para resolver problemas na teoria de grupos computacionais e outras áreas da matemática. Além disso, o GAP pode ser alargado carregando bibliotecas externas de funções, chamadas pacotes. Existem actualmente mais de 100 pacotes disponíveis para GAP, fornecendo funcionalidades para combinatórias, teoria dos números, geometria algébrica, criptografia, e muitas outras áreas. O GAP é também fornecido com uma grande biblioteca de dados. Esta biblioteca inclui dados para grupos, permutações, matrizes, e muitos outros objectos matemáticos. Estes dados podem ser usados para testar e comparar algoritmos, ou apenas para explorar e aprender sobre matemática.