stringtranslate.com

Axioma (sistema de álgebra computacional)

Axiom es un sistema de álgebra computacional gratuito y de propósito general . Consta de un entorno de interpretación, un compilador y una biblioteca que define una jerarquía fuertemente tipada .

Historia

IBM desarrolló dos sistemas de álgebra computacional denominados Scratchpad . El primero fue iniciado en 1965 por James Griesmer [2] a petición de Ralph Gomory y escrito en Fortran . [3] El desarrollo de este software se detuvo antes de cualquier lanzamiento público. El segundo Scratchpad, originalmente llamado Scratchpad II , se desarrolló a partir de 1977 en el Centro de Investigación Thomas J. Watson , bajo la dirección de Richard Dimick Jenks. [4]

El diseño se debe principalmente a Richard D. Jenks (IBM Research), James H. Davenport (Universidad de Bath), Barry M. Trager (IBM Research), David YY Yun (Universidad Metodista del Sur) y Victor S. Miller (IBM Research). Los primeros consultores del proyecto fueron David Barton (Universidad de California, Berkeley) y James W. Thatcher (IBM Research). La implementación incluyó a Robert Sutor (IBM Research), Scott C. Morrison (Universidad de California, Berkeley), Christine J. Sundaresan (IBM Research), Timothy Daly (IBM Research), Patrizia Gianni (Universidad de Pisa), Albrecht Fortenbacher (Universitaet Karlsruhe), Stephen M. Watt (IBM Research y Universidad de Waterloo), Josh Cohen (Universidad de Yale), Michael Rothstein (Universidad Estatal de Kent), Manuel Bronstein (IBM Research), Michael Monagan (Universidad Simon Fraser), Jonathan Steinbach (IBM Research), William Burge (IBM Research), Jim Wen (IBM Research), William Sit (City College de Nueva York) y Clifton Williamson (IBM Research) [5].

Scratchpad II fue rebautizado como Axiom cuando IBM decidió, alrededor de 1990, convertirlo en un producto comercial. Unos años más tarde, fue vendido a NAG . En 2001, fue retirado del mercado y relanzado bajo la Licencia BSD Modificada . Desde entonces, el desarrollador principal del proyecto ha sido Tim Daly.

En 2007, Axiom se bifurcó dos veces, lo que dio origen a dos proyectos de código abierto diferentes: OpenAxiom [6] y FriCAS [7], tras "un serio desacuerdo sobre los objetivos del proyecto". [8] El proyecto Axiom continuó siendo desarrollado por Tim Daly.

La dirección actual de la investigación es “Demostrar que el axioma es sensato”, es decir, lógico, racional, juicioso y sólido.

Documentación

Axiom es un programa alfabetizado . [9] El código fuente está disponible en una serie de volúmenes que se pueden consultar en el axiom-developer.orgsitio web. Estos volúmenes contienen el código fuente real del sistema.

Los documentos actualmente disponibles son:

Vídeos

El proyecto Axiom se centra principalmente en proporcionar documentación. Recientemente, el proyecto anunció el primero de una serie de vídeos instructivos, que también están disponibles en el sitio web axiom-developer.org[10] . El primer vídeo [11] proporciona detalles sobre las fuentes de información de Axiom. [11]

Filosofía

El proyecto Axiom se centra en el “Horizonte de 30 años”. La filosofía principal es que Axiom necesita desarrollar varias características fundamentales para ser útil a la próxima generación de matemáticos computacionales. La técnica de programación alfabetizada de Knuth se utiliza en todo el código fuente. Axiom planea utilizar tecnología de prueba para demostrar la corrección de los algoritmos (como Coq y ACL2 ).

Axiom utiliza contenedores Docker como parte de un proceso de lanzamiento continuo. La última imagen está disponible en cualquier plataforma mediante Docker y los comandos:

docker pull daly/axiomadocker run -i -t daly/axiom axioma

Diseño

En Axiom, cada objeto tiene un tipo. Algunos ejemplos de tipos son las estructuras matemáticas (como anillos , campos , polinomios ), así como las estructuras de datos de la informática (por ejemplo, listas , árboles , tablas hash ).

Una función puede tomar un tipo como argumento y su valor de retorno también puede ser un tipo. Por ejemplo, Fractiones una función que toma un IntegralDomaincomo argumento y devuelve el campo de fracciones de su argumento. Como otro ejemplo, el anillo de matrices con entradas racionales se construiría como . Por supuesto, cuando se trabaja en este dominio, se interpreta como la matriz identidad y daría la inversa de la matriz , si existe.SquareMatrix(4, Fraction Integer)1A^-1A

Varias operaciones pueden tener el mismo nombre, y los tipos de los argumentos y del resultado se utilizan para determinar qué operación se aplica (cf. sobrecarga de funciones ).

Axiom viene con un lenguaje de extensión llamado SPAD. Todo el conocimiento matemático de Axiom está escrito en este lenguaje. El intérprete acepta aproximadamente el mismo lenguaje.

Características

Dentro del entorno del intérprete, Axiom utiliza inferencia de tipos y un algoritmo heurístico para hacer que las anotaciones de tipos explícitas sean prácticamente innecesarias.

Cuenta con 'HyperDoc', un sistema de ayuda interactivo similar a un navegador, y puede mostrar gráficos en dos y tres dimensiones, además de ofrecer funciones interactivas como rotación e iluminación. También cuenta con un modo de interacción especializado para Emacs , así como un complemento para el editor TeXmacs .

Axiom tiene una implementación del algoritmo de Risch para la integración elemental, que fue realizado por Manuel Bronstein y Barry Trager. Si bien esta implementación puede encontrar la mayoría de las antiderivadas elementales y determinar si existen, tiene algunas ramas no implementadas y genera un error cuando se encuentran dichos casos durante la integración. [12] [13]

Véase también

Referencias

  1. ^ "Etiquetas daly/axiom". Docker Hub . Consultado el 25 de marzo de 2022 .
  2. ^ Fitch, John (23 de julio de 2012). "James Griesmer 1929--2011". Comunicaciones ACM en Álgebra Computacional . 46 (1/2): 10–11. doi : 10.1145/2338496.2338499 . S2CID  36788754.
  3. ^ "Sistema de álgebra computacional Axiom". axiom-developer.org .
  4. ^ "Información biográfica de Richard D. Jenks". www.eecis.udel.edu .
  5. ^ "EUROCAL '85 | SpringerLink". www.springer.com .
  6. ^ "OpenAxiom: La plataforma abierta de computación científica". www.open-axiom.org .
  7. ^ "FriCAS 18a5ef5d99c796a89efeac06df40043a85b3d44d — FriCAS". fricas.github.io .
  8. ^ "Historia — FriCAS". fricas.github.io .
  9. ^ ¿ Por qué una programación literaria? en el sitio web axiom-developer.org
  10. ^ "Sistema de álgebra computacional Axiom". www.axiom-developer.org .
  11. ^ ab "Fuentes de información del sistema de álgebra computacional Axiom". YouTube . 30 de noviembre de 2008.
  12. ^ Bronstein, Manuel (5 de septiembre de 2003). "Manuel Bronstein sobre las capacidades de integración de Axiom". groups.google.com . Consultado el 10 de febrero de 2023 .
  13. ^ "integración - ¿Existe una implementación completa del algoritmo de Risch?". MathOverflow . 15 de octubre de 2020 . Consultado el 10 de febrero de 2023 .

Lectura adicional

Enlaces externos

Medios relacionados con Axiom (software de álgebra computacional) en Wikimedia Commons

Bifurcaciones de software: