Articulo de referencia

Axioma (sistema de álgebra computacional)

{{cite web |title=AXIOM | url=https://dl.sv.gnu.org/releases/axiom/axiom_20210105dp1.tar.gz}} "},"repo":{"wt":"https://git.sv.gnu.org/cgit/axiom.git"},"operating system":{"wt":"...

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

Historia

IBM desarrolló dos sistemas de álgebra computacional llamados 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 interrumpió antes de su 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). Entre los primeros consultores del proyecto se encontraban 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 (Universidad de 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 pasó a llamarse Axiom cuando IBM decidió, alrededor de 1990, convertirlo en un producto comercial. Unos años más tarde, se vendió a NAG . En 2001, se retiró del mercado y se relanzó bajo la Licencia BSD Modificada . Desde entonces, el desarrollador principal del proyecto ha sido Tim Daly.

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

La línea de investigación actual es "Demostrar que un axioma es lógico, racional, juicioso y sólido".

Documentación

Axiom es un programa con lenguaje natural . [ 9 ] El código fuente se está publicando en una serie de volúmenes disponibles en el www.nongnu.org/axiomsitio web. Estos volúmenes contienen el código fuente real del sistema.

Los documentos disponibles actualmente son:

  • Tabla de contenido combinada
  • Volumen 0: Axioma de Jenks y Sutor —El libro de texto principal
  • Volumen 1: Tutorial de Axiom — Una introducción sencilla
  • Volumen 2: Guía del usuario de Axiom — Ejemplos detallados de uso del dominio (incompleto)
  • Volumen 3: Guía del programador de Axiom — Ejemplos guiados de escritura de programas (incompleto)
  • Volumen 4: Guía para desarrolladores de Axiom — Ensayos breves sobre temas específicos para desarrolladores (incompleto)
  • Volumen 5: Intérprete Axiom — Código fuente del intérprete Axiom (incompleto)
  • Volumen 6: Axiom Command — Código fuente de comandos y scripts del sistema (incompleto)
  • Volumen 7: Axiom Hyperdoc — Código fuente y explicación del navegador de ayuda X11 Hyperdoc
    • Volumen 7.1 Páginas de Axiom Hyperdoc : código fuente para las páginas de Hyperdoc
  • Volumen 8: Gráficos Axiom — Código fuente del subsistema gráfico X11
    • Volumen 8.1 Galería Axiom — Una galería de imágenes de Axiom
  • Volumen 9: Compilador Axiom — Código fuente del compilador Spad (incompleto)
  • Volumen 10: Implementación del álgebra axiomática — Ensayos sobre problemas de implementación (incompleto)
    • Volumen 10.1: Teoría del álgebra axiomática — Ensayos que contienen teoría básica
    • Volumen 10.2: Categorías de álgebra axiomática — Código fuente para las categorías axiomáticas
    • Volumen 10.3: Dominios del álgebra axiomática — Código fuente para los dominios axiomáticos
    • Volumen 10.4: Paquetes de álgebra Axiom — Código fuente de los paquetes Axiom
    • Volumen 10.5: Axiom Algebra Numerics — Código fuente para Axiom numerics
  • Volumen 11: Navegador Axiom — Páginas fuente para la interfaz del navegador Firefox Axiom
  • Volumen 12: Axiom Crystal — Código fuente de la interfaz de usuario de Axiom Crystal (incompleto)
  • Volumen 13: Demostración de la corrección de axiomas — Demostración de axiomas en álgebra (incompleto)
  • Volumen 15: El compilador Axiom SANE
  • Bibliografía: Bibliografía Axiom — Referencias bibliográficas
  • Lista de errores: Lista de errores de Axiom - Lista de errores
  • Ficha de referencia: Ficha de referencia de Axiom — Resumen de funciones útiles

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 www.nongnu.org/axiom[ 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. Su 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 literaria de Knuth se utiliza en todo el código fuente. Axiom planea usar tecnología de demostración para probar la corrección de los algoritmos (como Rocq y ACL2 ).

Los paquetes binarios de AXIOM están disponibles para su instalación en una amplia variedad de plataformas, como Debian GNU/Linux. [ 12 ]

Diseño

En Axiom, cada objeto tiene un tipo. Ejemplos de tipos son las estructuras matemáticas (como anillos , cuerpos , polinomios ) y 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 de4×4{\displaystyle 4\times 4}Las matrices con entradas racionales se construirían como SquareMatrix(4, Fraction Integer). Por supuesto, cuando se trabaja en este dominio, 1se interpreta como la matriz identidad y A^-1daría la inversa de la matriz A, si existe.

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

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

Características

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

Incluye «HyperDoc», un sistema de ayuda interactivo similar a un navegador, y puede mostrar gráficos bidimensionales y tridimensionales, 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 cuenta con una implementación del algoritmo de Risch para la integración elemental, desarrollada por Manuel Bronstein y Barry Trager. Si bien esta implementación puede encontrar la mayoría de las antiderivadas elementales y determinar su existencia, presenta algunas ramas no implementadas y genera un error cuando se encuentran tales casos durante la integración. [ 13 ] [ 14 ]

Véase también

Referencias

  1. "AXIOMA" .
  2. Fitch, John (23 de julio de 2012). "James Griesmer 1929-2011" . ACM Communications in Computer Algebra . 46 (1/2): 10–11 . doi : 10.1145/2338496.2338499 . S2CID 36788754 . 
  3. "Sistema de Álgebra Computacional Axiom" . www.nongnu.org/axiom/ .
  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é la programación literaria? en el sitio web www.nongnu.org/axiom
  10. "Sistema de Álgebra Computacional Axiom" . www.nongnu.org/axiom .
  11. 1 2 "Fuentes de información del sistema de álgebra computacional Axiom" . YouTube . 30 de noviembre de 2008.
  12. "Debian" . www.debian.org .
  13. 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 .
  14. "integración - ¿Existe una implementación completa del algoritmo de Risch?" . MathOverflow . 15 de octubre de 2020 . Consultado el 10 de febrero de 2023 .

Lecturas adicionales

  • James H. Griesmer; Richard D. Jenks (1971). SCRATCHPAD/1: Una herramienta interactiva para matemáticas simbólicas | Actas del segundo simposio de la ACM sobre manipulación simbólica y algebraica (SYMSAC '71) . págs. 42–58 . 
  • Clemens G. Raab; Michael F. Singer (2022). Integración en términos finitos: Fuentes fundamentales . Springer. ISBN 978-3030987664.
  • Richard D. Jenks (1971). META/PLUS - La herramienta de extensión de sintaxis para SCRATCHPAD (Informe de investigación). Centro de Investigación Thomas J. Watson de IBM . RC 3259.
  • James H. Griesmer; Richard D. Jenks (1972). Experiencia con un sistema de matemáticas simbólicas en línea | Actas de la Conferencia ONLINE72 . Vol.  1. Universidad de Brunel . págs. 457–476 . 
  • James H. Griesmer; Richard D. Jenks (1972). "Bloc de notas". Avisos ACM SIGPLAN . 7 (10): 93– 102. doi : 10.1145/942576.807019 .
  • Richard D. Jenks (1974). "El lenguaje SCRATCHPAD". Boletín ACM SIGSAM . 8 (2): 20– 30. doi : 10.1145/1086830.1086834 . S2CID 14537956 . 
  • Arthur C. Norman (1975). "Computing with Formal Power Series". ACM Transactions on Mathematical Software . 1 (4): 346– 356. doi : 10.1145/355656.355660 . ISSN 0098-3500 . S2CID 18321863 .  
  • Richard D. Jenks (1976). Un compilador de patrones | Actas del tercer simposio de la ACM sobre manipulación simbólica y algebraica (SYMSAC '76) . págs. 60–65 . 
  • E. Lueken (1977). Ueberlegungen zur Implementierung eines Formelmanipulationssystems (tesis de maestría) (en alemán). Alemania: Technischen Universitat Carolo-Wilhelmina zu Braunschweig .
  • George E. Andrews (1984). Ramanujan y SCRATCHPAD | Actas de la Conferencia de Usuarios de MACSYMA de 1984. Schenectady: General Electric . págs. 383–408 . 
  • James H. Davenport; P. Gianni; Richard D. Jenks; V. Miller; Scott Morrison; M. Rothstein; C. Sundaresan; Robert S. Sutor; Barry Trager (1984). Scratchpad . Departamento de Ciencias Matemáticas, Centro de Investigación Thomas J. Watson de IBM .
  • Richard D. Jenks (1984). "El nuevo lenguaje y sistema SCRATCHPAD para álgebra computacional". Actas de la Conferencia de Usuarios de MACSYMA de 1984 : 409–416 .
  • Richard D. Jenks (1984). Una introducción: 11 claves para New Scratchpad | Actas del Simposio Internacional sobre Computación Simbólica y Algebraica '84 . Springer. págs. 123–147 . 
  • Robert S. Sutor (1985). El lenguaje y sistema de álgebra computacional Scratchpad II | Actas del Simposio Internacional sobre Computación Simbólica y Algebraica '85 . Springer. págs. 32–33 . 
  • Rüdiger Gebauer; H. Michael Möller (1986). El algoritmo de Buchberger y las bases lineales escalonadas | Actas del quinto simposio de la ACM sobre computación simbólica y algebraica (Simposio Internacional sobre Computación Simbólica y Algebraica '86) . ACM. págs. 218–221 . ISBN  978-0-89791-199-3.
  • Richard D. Jenks; Robert S. Sutor; Stephen M. Watt (1986). Scratchpad II: un sistema de tipos de datos abstractos para computación matemática (Informe de investigación). Centro de Investigación Thomas J. Watson de IBM . RC 12327.
  • Michael Lucks; Bruce W. Char (1986). Una implementación rápida de la factorización de polinomios | Actas de SYMSAC '86 . ACM. págs. 228–232 . ISBN  978-0-89791-199-3.
  • J. Purtilo (1986). Aplicaciones de un sistema de interconexión de software en entornos de resolución de problemas matemáticos | Actas de SYMSAC '86 . ACM. págs. 16–23 . ISBN  978-0-89791-199-3.
  • William H. Burge; Stephen M. Watt (1987). Estructura infinita en SCRATCHPAD II (Informe de investigación). Centro de Investigación Thomas J. Watson de IBM . RC 12794.
  • Pascale Sénéchaud; Françoise Siebert; Gilles Villard (1987). Scratchpad II: Presentación de un nuevo lenguaje de cálculo formal . TIM (Informe de investigación) (en francés). IMAG , Instituto Tecnológico de Grenoble . 640-M.
  • Robert S. Sutor; Richard D. Jenks (1987). «Las funciones de inferencia de tipos y coerción en el intérprete Scratchpad II». Actas del Simposio sobre Intérpretes y técnicas interpretativas - SIGPLAN '87 . págs. 56–63 . doi : 10.1145/29650.29656 . ISBN  978-0-89791-235-8. S2CID 17700911 . 
  • George E. Andrews (1988). R. Janssen (ed.). Aplicación de SCRATCHPAD a problemas de funciones especiales y combinatoria | Tendencias en álgebra computacional . Notas de clase en ciencias de la computación . Springer. págs. 159–166 . 
  • James H. Davenport; Yvon Siret; Evelyne Tournier (1993) [1988]. Álgebra computacional: sistemas y algoritmos para la computación algebraica . Academic Press . ISBN 978-0122042300.
  • Rüdiger Gebauer; H. Michael Möller (1988). "Sobre una instalación del algoritmo de Buchberger" . Revista de Computación Simbólica . 6 ( 2– 3): 275– 286. doi : 10.1016/s0747-7171(88)80048-8 . ISSN 0747-7171 . 
  • Fritz Schwarz (1988). R. Janssen (ed.). Programación con tipos de datos abstractos: el paquete de simetría (SPDE) en Scratchpad | Tendencias en álgebra computacional . Lecture Notes in Computer Science. Springer. pp. 167–176 . 
  • David Shannon; Moss Sweedler (1988). "Usando bases de Gröbner para determinar la pertenencia al álgebra, los homomorfismos de álgebra sobreyectiva escindida determinan la equivalencia birracional" . Journal of Symbolic Computation . 6 ( 2–3 ): 267–273 . doi : 10.1016/s0747-7171(88)80047-6 .
  • Hans-J. Boehm (1989). "Inferencia de tipos en presencia de abstracción de tipos". ACM SIGPLAN Notices . 24 (7): 192– 206. doi : 10.1145/74818.74835 .
  • Manuel Bronstein (1989). Simplificación de funciones elementales reales | Actas del Simposio Internacional sobre Computación Simbólica y Algebraica (SIGSAM '89) . ACM. págs. 207–211 . 
  • Claire Dicrescenzo; Dominique Duval (1989). P. Gianni (ed.). Extensiones algebraicas y cierre algebraico en Scratchpad II | Computación simbólica y algebraica . Springer. págs. 440–446 . 
  • Timothy Daly "Axioma: Treinta años de ceceo"
  • Conferencia invitada de Timothy Daly sobre "Axioma", Conferencia de Software Libre, Lyon, Francia, mayo de 2002.
  • Conferencia invitada de Timothy Daly sobre "Axiom", Reunión de Software Libre , Metz, Francia, del 9 al 12 de julio de 2003.

Logotipo de Wikimedia CommonsContenido multimedia relacionado con Axiom (software de álgebra computacional) en Wikimedia Commons.

  • Página principal de Axiom
  • Repositorios de código fuente: GNU Savannah
  • Jenks, RD y Sutor, R. "Axiom, el sistema de computación científica"
  • Daly, T. "Axioma Volumen 1: Tutorial"

Bifurcaciones de software:

  • OpenAxiom ( SourceForge )
  • FriCAS ( SourceForge )