Axiom es un sistema de álgebra computacional de uso general gratuito . Consiste en un entorno de intérprete, un compilador y una biblioteca, que define una jerarquía fuertemente tipada.
Desarrollador (es) | Grupo independiente de personas |
---|---|
Lanzamiento estable | Continuo usando Docker |
Repositorio | |
Escrito en | Posdata |
Sistema operativo | Multiplataforma |
Tipo | Sistema de álgebra informática |
Licencia | Licencia BSD modificada |
Sitio web | www |
Historia
IBM desarrolló dos sistemas de álgebra computacional llamados Scratchpad . El primero fue iniciado en 1965 por James Griesmer [1] a pedido de Ralph Gomory , y escrito en Fortran . [1] El desarrollo de este software se detuvo antes de cualquier lanzamiento público. El segundo Scratchpad, originalmente llamado Scratchpad II , fue desarrollado a partir de 1977, en el Centro de Investigación Thomas J. Watson , bajo la dirección de Richard Dimick Jenks. [2]
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 (Southern Methodist University) 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 (Yale University), Michael Rothstein (Kent State University), Manuel Bronstein (IBM Research), Michael Monagan (Simon Fraser University), Jonathon Steinbach (IBM Research ), William Burge (IBM Research), Jim Wen (IBM Research), William Sit (City College de Nueva York) y Clifton Williamson (IBM Research) [3]
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, 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, dando origen a dos proyectos de código abierto diferentes : OpenAxiom [4] y FriCAS , [5] tras "un grave desacuerdo sobre los objetivos del proyecto". [6] Tim Daly siguió desarrollando el proyecto Axiom.
La dirección actual de la investigación es "Proving Axiom Sane" , es decir, lógica, racional, juiciosa y sólida.
Documentación
Axiom es un programa alfabetizado . [7] El código fuente está disponible en una serie de volúmenes que están disponibles en el axiom-developer.org
sitio web. Estos volúmenes contienen el código fuente real del sistema.
Los documentos disponibles actualmente son:
- Tabla de contenido combinada
- Volumen 0: Axiom 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 del uso del dominio (incompleto)
- Volumen 3: Guía de programadores 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 para intérprete Axiom (incompleto)
- Volumen 6: Axiom Command : código fuente para 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 Hyperdoc de Axiom : código fuente para las páginas de Hyperdoc
- Volumen 8: Axiom Graphics : código fuente para el subsistema de gráficos X11
- Volumen 8.1 Axiom Gallery: una galería de imágenes Axiom
- Volumen 9: Compilador Axiom : código fuente para el compilador Spad (incompleto)
- Volumen 10: Implementación de Axiom Algebra —Ensayos sobre problemas de implementación (incompleto)
- Volumen 10.1: Teoría del álgebra de axiomas : ensayos que contienen teoría básica
- Volumen 10.2: Categorías de Axiom Algebra —Código fuente para las categorías de Axiom
- Volumen 10.3: Dominios de Axiom Algebra : código fuente para dominios de Axiom
- Volumen 10.4: Paquetes Axiom Algebra —Código fuente para paquetes Axiom
- Volumen 10.5: Axiom Algebra Numerics —Código fuente para Axiom numéricos
- Volumen 11: Axiom Browser : páginas de origen para la interfaz del navegador Axiom Firefox
- Volumen 12: Axiom Crystal : código fuente de la interfaz de Axiom Crystal (incompleto)
- Volumen 13: Demostrar que el axioma es correcto: probar el álgebra del axioma (incompleto)
- Volumen 15: El compilador Axiom SANE
- Bibliografía: Axiom Bibliography —Referencias bibliográficas
- Lista de errores: Axioma Bug Lista Lista -Bug
- Tarjeta de referencia: Tarjeta de referencia de Axiom : resumen de funciones útiles
Videos
El proyecto Axiom se centra principalmente en proporcionar documentación. Recientemente, el proyecto anunció el primero de una serie de videos instructivos, que también están disponibles en el sitio web axiom-developer.org
[8] . El primer video [9] proporciona detalles sobre las fuentes de información de Axiom. [9]
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 para 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 usar tecnología de prueba para probar la exactitud 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 usando Docker y los comandos:
estibador tirar daly / axiomaDocker ejecutar -i -t daly / axioma axioma
Diseño
En Axiom, cada objeto tiene un tipo. Ejemplos de tipos son estructuras matemáticas (como anillos , campos , polinomios ) así como 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, Fraction
es una función que toma un IntegralDomain
argumento como y devuelve el campo de fracciones de su argumento. Como otro ejemplo, el anillo delas matrices con entradas racionales se construirían como SquareMatrix(4, Fraction Integer)
. Por supuesto, cuando se trabaja en este dominio, 1
se interpreta como la matriz identidad y A^-1
darí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 (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 idioma. El intérprete acepta aproximadamente el mismo idioma.
Características
Dentro del entorno del intérprete, Axiom utiliza la inferencia de tipo y un algoritmo heurístico para hacer que las anotaciones de tipo explícitas sean en su mayoría innecesarias.
Cuenta con 'HyperDoc', un sistema de ayuda interactivo similar a un navegador, y puede mostrar gráficos bidimensionales y tridimensionales, proporcionando también funciones interactivas como rotación e iluminación. También tiene un modo de interacción especializado para Emacs , así como un complemento para el editor TeXmacs .
HyperDoc que muestra las operaciones disponibles para un dominio
Axioma que muestra una superficie
Interfaz del navegador Axiom Firefox
Axioma simplificando una ecuación de calor
Manipulación de la matriz de axiomas
Computación axioma de una integral de Risch
Axiom tiene una implementación del algoritmo de Risch para la integración elemental, que fue realizada por Manuel Bronstein y Barry Trager.
Ver también
- Un # lenguaje de programación
- Lenguaje de programación Aldor
- Lista de sistemas de álgebra informática
Referencias
- ^ Página de inicio de Axiom
- ^ Richard Dimick Jenks - Información biográfica
- ^ https://www.springer.com/gp/book/9783540159841
- ^ open-axiom.org
- ^ Página de inicio de FriCAS
- ^ Historia de FriCAS
- ^ ¿Por qué la programación alfabetizada? en el sitio web axiom-developer.org
- ^ Axiom-developer.org
- ^ a b "Fuentes de información del sistema de álgebra informática Axiom" . YouTube . 30 de noviembre de 2008.
Otras lecturas
- James H. Griesmer; Richard D. Jenks (1971). "SCRATCHPAD / 1: Una facilidad interactiva para las matemáticas simbólicas": 42–58. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - Richard D. Jenks (1971). META / PLUS: el recurso de extensión de sintaxis para SCRATCHPAD (informe de investigación). Centro de investigación IBM Thomas J. Watson . RC 3259.
- James H. Griesmer; Richard D. Jenks (1972). "Experiencia con un sistema matemático simbólico en línea". 1 . Universidad de Brunel : 457–476. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - 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 idioma SCRATCHPAD". Boletín ACM SIGSAM . 8 (2): 20–30. doi : 10.1145 / 1086830.1086834 .
- Arthur C. Norman (1975). "Computación con formal Power Series". Transacciones ACM en software matemático . 1 (4): 346–356. doi : 10.1145 / 355656.355660 . ISSN 0098-3500 .
- Richard D. Jenks (1976). "Un compilador de patrones": 60–65. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - 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". Schenectady: General Electric : 383–408. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - James H. Davenport; P. Gianni; Richard D. Jenks; V. Miller; Scott Morrison; M. Rothstein; C. Sundaresan; Robert S. Sutor; Barry Trager (1984). "Bloc de notas". Departamento de Ciencias Matemáticas, IBM Thomas J. Watson Research Center . Cite journal requiere
|journal=
( ayuda ) - Richard D. Jenks (1984). "El nuevo lenguaje y sistema SCRATCHPAD para álgebra informática". Actas de la Conferencia de usuarios de MACSYMA de 1984 : 409–416.
- Richard D. Jenks (1984). "Una cartilla: 11 claves para el nuevo Scratchpad". Springer: 123-147. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - Robert S. Sutor (1985). "El lenguaje y sistema de álgebra computacional Scratchpad II". Springer: 32–33. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - Rüdiger Gebauer; H. Michael Möller (1986). Algoritmo de Buchberger y bases lineales escalonadas . ACM. págs. 218-221. ISBN 978-0-89791-199-3. Parámetro desconocido
|book-title=
ignorado ( ayuda ) - Richard D. Jenks; Robert S. Sutor; Stephen M. Watt (1986). Scratchpad II: un sistema de tipos de datos abstractos para el cálculo matemático (Informe de investigación). Centro de investigación IBM Thomas J. Watson . RC 12327.
- Michael Lucks; Bruce W. Char (1986). Una rápida implementación de la factorización polinomial . ACM. págs. 228-232. ISBN 978-0-89791-199-3. Parámetro desconocido
|book-title=
ignorado ( ayuda ) - J. Purtilo (1986). Aplicaciones de un sistema de interconexión de software en entornos de resolución de problemas matemáticos . ACM. págs. 16–23. ISBN 978-0-89791-199-3. Parámetro desconocido
|book-title=
ignorado ( ayuda ) - William H. Burge; Stephen M. Watt (1987). Estructura infinita en SCRATCHPAD II (Informe de investigación). Centro de investigación IBM Thomas J. Watson . RC 12794.
- Pascale Sénéchaud; Françoise Siebert; Gilles Villard (1987). Scratchpad II: Présentation d'un nouveau langage de calcul formel . TIM (Informe de investigación) (en francés). IMAG , Instituto de Tecnología de Grenoble . 640-M.
- Robert S. Sutor; Richard D. Jenks (1987). "Las facilidades de inferencia y coerción de tipos en el intérprete scratchpad II". Artículos 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.
- George E. Andrews (1988). R. Janssen (ed.). "Aplicación de SCRATCHPAD a problemas en funciones especiales y combinatoria". Apuntes de clase en Ciencias de la Computación (296). Springer: 159-166. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - James H. Davenport; Yvon Siret; Evelyne Tournier (1993) [1988]. Álgebra informática: sistemas y algoritmos para la computación algebraica . Prensa académica . 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". Apuntes de conferencias en Ciencias de la Computación. Springer: 167-176. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - David Shannon; Moss Sweedler (1988). "Utilizando las bases de Gröbner para determinar la pertenencia al álgebra, los homomorfismos divididos del álgebra sobreyectiva determinan la equivalencia bracional" . Revista de Computación Simbólica . 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". Avisos ACM SIGPLAN . 24 (7): 192–206. doi : 10.1145 / 74818.74835 .
- Manuel Bronstein (1989). "Simplificación de funciones elementales reales". ACM: 207–211. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - Claire Dicrescenzo; Dominique Duval (1989). P. Gianni (ed.). "Extensiones algebraicas y cierre algebraico en Scratchpad II". Springer: 440–446. Parámetro desconocido
|book-title=
ignorado ( ayuda );Cite journal requiere|journal=
( ayuda ) - Timothy Daly "Axiom - Treinta años de Lisp"
- Charla invitada de Timothy Daly "Axiom", Conferencia sobre software libre, Lyon, Francia, mayo de 2002
- Charla invitada de Timothy Daly "Axiom", reunión de software libre , Metz, Francia, 9 al 12 de julio de 2003
enlaces externos
- Página de inicio de Axiom
- Sandbox en línea para probar Axiom
- Repositorios de código fuente: Github , SourceForge , GNU Savannah
- Jenks, RD y Sutor, R. "Axiom, el sistema de cálculo científico"
- Daly, T. "Axiom Volume 1: Tutorial"
Horquillas de software:
- OpenAxiom ( SourceForge )
- FriCAS ( SourceForge )