Programa de software computacional
Wolfram Mathematica es un sistema de software con bibliotecas integradas para varias áreas de la informática técnica que permiten el aprendizaje automático , la estadística , el cálculo simbólico , la manipulación de datos, el análisis de redes, el análisis de series temporales, el procesamiento del lenguaje natural (NLP) , la optimización , el trazado de funciones y varios tipos de datos, la implementación de algoritmos , la creación de interfaces de usuario y la interacción con programas escritos en otros lenguajes de programación . Fue concebido por Stephen Wolfram , y es desarrollado por Wolfram Research de Champaign, Illinois. [8] [9] El lenguaje Wolfram es el lenguaje de programación utilizado en Mathematica . [10] Mathematica 1.0 fue lanzado el 23 de junio de 1988 en Champaign, Illinois y Santa Clara, California . [11] [12] [13]
Interfaz de notebook
Mathematica se divide en dos partes: el núcleo y el front-end . El núcleo interpreta expresiones (código de lenguaje Wolfram) y devuelve expresiones de resultados, que luego pueden visualizarse en el front-end.
El frontend original, diseñado por Theodore Gray [14] en 1988, consta de una interfaz de cuaderno y permite la creación y edición de documentos de cuaderno que pueden contener código, texto sin formato, imágenes y gráficos. [15]
Las alternativas al frontend de Mathematica incluyen Wolfram Workbench, un entorno de desarrollo integrado (IDE) basado en Eclipse que se introdujo en 2006. Proporciona herramientas de desarrollo de código basadas en proyectos para Mathematica, incluyendo gestión de revisiones, depuración, creación de perfiles y pruebas. [16]
También existe un complemento para IDE basados en IntelliJ IDEA para trabajar con código de lenguaje Wolfram que, además de resaltar la sintaxis, puede analizar y completar automáticamente variables locales y funciones definidas. [17] El núcleo de Mathematica también incluye una interfaz de línea de comandos. [18]
Otras interfaces incluyen JMath, [19] basado en GNU Readline y WolframScript [20] que ejecuta programas Mathematica autónomos (con argumentos) desde la línea de comandos de UNIX.
La extensión de archivo para los archivos de Mathematica es .nb y .m para los archivos de configuración.
Mathematica está diseñado para ser totalmente estable y compatible con versiones anteriores.
Computación de alto rendimiento
Las capacidades para la computación de alto rendimiento se ampliaron con la introducción de matrices empaquetadas en la versión 4 (1999) [21] y matrices dispersas (versión 5, 2003), [22] y con la adopción de la Biblioteca Aritmética de Precisión Múltiple GNU para evaluar la aritmética de alta precisión.
La versión 5.2 (2005) agregó subprocesamiento múltiple automático cuando los cálculos se realizan en computadoras de múltiples núcleos . [23] Esta versión incluyó bibliotecas optimizadas específicas de la CPU. [24] Además, Mathematica es compatible con hardware de aceleración especializado de terceros, como ClearSpeed . [25]
En 2002, se introdujo gridMathematica para permitir la programación paralela a nivel de usuario en clústeres heterogéneos y sistemas multiprocesador [26] y en 2008 la tecnología de computación paralela se incluyó en todas las licencias de Mathematica, incluido el soporte para tecnología de cuadrícula como Windows HPC Server 2008 , Microsoft Compute Cluster Server y Sun Grid .
En 2010 se agregó soporte para hardware de GPU CUDA y OpenCL. [27]
Extensiones
A partir de la versión 14, hay 6602 funciones y símbolos integrados en Wolfram Language. [28] Stephen Wolfram anunció el lanzamiento del Repositorio de funciones de Wolfram en junio de 2019 como una forma para que la comunidad pública de Wolfram contribuya con funcionalidades a Wolfram Language. [29] En el momento del anuncio del lanzamiento de Stephen Wolfram para Mathematica 13, había 2259 funciones contribuidas como funciones de recursos. [30] Además del Repositorio de funciones de Wolfram, hay un Repositorio de datos de Wolfram con datos computables y el Repositorio de redes neuronales de Wolfram para aprendizaje automático. [31]
Wolfram Mathematica es la base del paquete Combinatorica, que agrega funcionalidad de matemáticas discretas en combinatoria y teoría de grafos al programa. [32]
Conexiones a otras aplicaciones, lenguajes de programación y servicios
La comunicación con otras aplicaciones se puede realizar mediante un protocolo llamado Wolfram Symbolic Transfer Protocol (WSTP). Permite la comunicación entre el núcleo de Wolfram Mathematica y el front-end y proporciona una interfaz general entre el núcleo y otras aplicaciones. [33]
Wolfram Research distribuye gratuitamente un kit de desarrollo para vincular aplicaciones escritas en el lenguaje de programación C al núcleo de Mathematica a través de WSTP utilizando J/Link, [34] un programa Java que puede pedirle a Mathematica que realice cálculos. Se logra una funcionalidad similar con .NET /Link, [35] pero con programas .NET en lugar de programas Java.
Otros lenguajes que se conectan a Mathematica incluyen Haskell , [36] AppleScript , [37] Racket , [38] Visual Basic , [39] Python , [40] [41] y Clojure . [42]
Mathematica admite la generación y ejecución de modelos Modelica para el modelado de sistemas y se conecta con Wolfram System Modeler .
También hay enlaces disponibles a muchos paquetes de software y API de terceros. [43]
Mathematica también puede capturar datos en tiempo real de una variedad de fuentes [44] y puede leer y escribir en cadenas de bloques públicas ( Bitcoin , Ethereum y ARK). [45]
Admite la importación y exportación de más de 220 formatos de datos, imágenes, vídeos, sonidos, diseño asistido por computadora (CAD), sistemas de información geográfica (GIS), [46] documentos y biomédicos.
En 2019, se agregó soporte para compilar código de Wolfram Language en LLVM . [47]
La versión 12.3 del lenguaje Wolfram agregó soporte para Arduino . [48]
Datos computables
Mathematica también está integrada con Wolfram Alpha , un motor de respuestas en línea que proporciona datos adicionales, algunos de los cuales se mantienen actualizados en tiempo real, para los usuarios que usan Mathematica con una conexión a Internet. Algunos de los conjuntos de datos incluyen datos astronómicos, químicos, geopolíticos, lingüísticos, biomédicos, de aviación y meteorológicos, además de datos matemáticos (como nudos y poliedros). [49]
Recepción
En 1989, BYTE incluyó a Mathematica entre los ganadores de la distinción "Distinction" de los premios BYTE, afirmando que "es otra aplicación revolucionaria para Macintosh... podría permitirle absorber el álgebra y el cálculo que parecían imposibles de comprender en un libro de texto". [50] Mathematica ha sido criticada por ser de código cerrado. [51] Wolfram Research afirma que mantener Mathematica de código cerrado es fundamental para su modelo de negocios y la continuidad del software. [52] [53]
Véase también
Referencias
- ^ Wolfram, Stephen (23 de junio de 2008), Mathematica cumple 20 años hoy, Wolfram , consultado el 16 de mayo de 2012
- ^ "Más ideas y funciones nuevas: lanzamiento de la versión 14.1 de Wolfram Language & Mathematica" . Consultado el 31 de julio de 2024 .
- ^ "Celebrando el primer cuarto de siglo de Mathematica". 23 de junio de 2013. Consultado el 11 de agosto de 2015 .
- ^ La ingeniería de software de Mathematica: documentación de Wolfram Mathematica 9 Archivado el 29 de julio de 2017 en Wayback Machine . Reference.wolfram.com. Recuperado el 23 de marzo de 2015.
- ^ "Requisitos del sistema y disponibilidad de la plataforma de Mathematica 12" . Consultado el 16 de diciembre de 2020 .
- ^ Raspberry Pi incluye Mathematica gratis Archivado el 9 de mayo de 2014 en Wayback Machine The Verge
- ^ "Wolfram Mathematica" . Consultado el 11 de agosto de 2015 .
- ^ "Stephen Wolfram: Soluciones simples; el software Mathematica del físico iconoclasta resuelve problemas complejos" . BusinessWeek . 3 de octubre de 2005 . Consultado el 4 de agosto de 2021 .
- ^ "Contacto con Wolfram Research" . Consultado el 11 de agosto de 2015 .
- ^ "El nuevo lenguaje de programación de Stephen Wolfram: ¿puede hacer que el mundo sea computable?". Slate Magazine . 6 de marzo de 2014. Consultado el 11 de agosto de 2015 .
- ^ "Mathematica: tres décadas de contribuciones, invención, descubrimiento y educación". www.wolfram.com . Consultado el 16 de mayo de 2022 .
- ^ "Celebrando un tercio de siglo de Mathematica y mirando hacia el futuro: escritos de Stephen Wolfram". writings.stephenwolfram.com . 22 de octubre de 2021 . Consultado el 16 de mayo de 2022 .
- ^ "Hubo un tiempo antes de Mathematica…—Escritos de Stephen Wolfram". writings.stephenwolfram.com . 6 de junio de 2013 . Consultado el 16 de mayo de 2022 .
- ^ Patente US8407580 Búsqueda de patentes de Google
- ^ Hayes, Brian (1990-01-01). "Reflexiones sobre Mathematica" (PDF) . Pixel . Archivado (PDF) del original el 2014-07-15.
- ^ "Wolfram presenta Workbench IDE para Mathematica". Macworld . 21 de junio de 2006. Archivado desde el original el 2 de julio de 2006 . Consultado el 11 de agosto de 2015 .
- ^ "Complemento de Mathematica para IntelliJ IDEA".
- ^ Uso de una interfaz basada en texto Archivado el 29 de octubre de 2013 en la documentación de Wayback Machine en wolfram.com
- ^ "JMath: una interfaz basada en GNU Readline para Mathematica" . Consultado el 11 de agosto de 2015 .
- ^ "Listado de directorios" . Consultado el 18 de abril de 2019 .
- ^ El software matemático incorpora nuevas capacidades; nuevos programas automatizan procesos tan tediosos como la resolución de ecuaciones diferenciales no lineales y la conversión de unidades por Agnes Shanley, Chemical Engineering , 1 de marzo de 2002.
- ^ Mathematica 5.1: características adicionales hacen que el software sea adecuado para profesionales de investigación de operaciones Archivado el 25 de septiembre de 2008 en Wayback Machine por ManMohan S. Sodhi, OR/MS Today , 1 de diciembre de 2004.
- ^ 21.ª edición anual de los premios Editors' Choice Awards Archivado el 12 de enero de 2009 en Wayback Machine , Macworld , 1 de febrero de 2006.
- ^ "Mathematica está optimizada para aprovechar las funciones de la CPU cuando están disponibles" . Consultado el 13 de abril de 2020 .
- ^ "Las placas aceleradoras ClearSpeed Advance reciben la certificación de Wolfram Research; los coprocesadores matemáticos permiten a los usuarios de Mathematica cuadriplicar el rendimiento". Archivado desde el original el 25 de enero de 2016 . Consultado el 11 de agosto de 2015 .
- ^ gridMathematica ofrece una solución de computación paralela Archivado el 2 de diciembre de 2005 en Wayback Machine por Dennis Sellers, MacWorld , 20 de noviembre de 2002.
- ^ "Compatibilidad con CUDA y OpenCL añadida en Mathematica 8" . Consultado el 13 de abril de 2020 .
- ^ "La historia continúa: anunciamos la versión 14 de Wolfram Language y Mathematica". writings.stephenwolfram.com . 9 de enero de 2024 . Consultado el 25 de junio de 2024 .
- ^ "El repositorio de funciones Wolfram: lanzamiento de una plataforma abierta para extender el lenguaje Wolfram: escritos de Stephen Wolfram". writings.stephenwolfram.com . 11 de junio de 2019 . Consultado el 16 de mayo de 2022 .
- ^ "Lanzamiento de la versión 13.0 de Wolfram Language + Mathematica: escritos de Stephen Wolfram". writings.stephenwolfram.com . 13 de diciembre de 2021 . Consultado el 16 de mayo de 2022 .
- ^ "Lanzamiento del repositorio de datos Wolfram: publicación de datos que realmente funciona: escritos de Stephen Wolfram". writings.stephenwolfram.com . 20 de abril de 2017 . Consultado el 16 de mayo de 2022 .
- ^ Skiena, Steven (2003). Matemáticas discretas computacionales: combinatoria y teoría de grafos con Mathematica . Cambridge University Press.
- ^ "Protocolo de transferencia simbólica Wolfram (WSTP)".
- ^ Mathematica 4.2 Archivado el 21 de noviembre de 2007 en Wayback Machine por Charles Seiter, Macworld , 1 de noviembre de 2002.
- ^ .NET/Link Archivado el 9 de septiembre de 2010 en Wayback Machine : .NET/Link es un kit de herramientas que integra Mathematica y Microsoft .NET Framework.
- ^ "mathlink: Escribir paquetes de Mathematica en Haskell - Hackage" . Consultado el 11 de agosto de 2015 .
- ^ S. Kratky. «MathLink para AppleScript». Archivado desde el original el 17 de julio de 2011. Consultado el 11 de agosto de 2015 .
- ^ "MrMathematica: Llamar a Mathematica desde Scheme" . Consultado el 11 de agosto de 2015 .
- ^ "Mathematica para ActiveX - del archivo de Wolfram Library" . Consultado el 11 de agosto de 2015 .
- ^ "erocarrera/pythonika". GitHub . Consultado el 11 de agosto de 2015 .
- ^ "PYML (interfaz de Python Mathematica) - de Wolfram Library Archive" . Consultado el 11 de agosto de 2015 .
- ^ "Clojuratica - Inicio". Clojuratica.weebly.com . Consultado el 16 de agosto de 2013 .
- ^ "Documentación de Wolfram: ServiceConnect" . Consultado el 4 de agosto de 2021 .
- ^ "Vernier y Mathematica".
- ^ "Trabajar con cadenas de bloques" . Consultado el 15 de abril de 2020 .
- ^ Reseña de los laboratorios de Mathematica 6 Archivado el 25 de marzo de 2022 en Wayback Machine Cadalyst 1 de febrero de 2008
- ^ "Crear código LLVM" . Consultado el 13 de abril de 2020 .
- ^ "Lanzamiento de la versión 12.3 de Wolfram Language & Mathematica: escritos de Stephen Wolfram". writings.stephenwolfram.com . 20 de mayo de 2021 . Consultado el 29 de enero de 2022 .
- ^ "Datos científicos y técnicos", Guía matemática , Wolfram Research, archivado desde el original el 10 de mayo de 2012 , consultado el 16 de mayo de 2012
- ^ "Los premios BYTE". BYTE . Enero de 1989. pág. 327.
- ^ "Paul Romer". paulromer.net . Consultado el 5 de agosto de 2021 .
- ^ "Por qué Wolfram Tech no es de código abierto: una docena de razones - Blog de Wolfram". blog.wolfram.com . 2 de abril de 2019 . Consultado el 5 de agosto de 2021 .
- ^ "Seis razones por las que Wolfram Language es (como) código abierto—Wolfram Blog". blog.wolfram.com . 30 de noviembre de 2021 . Consultado el 16 de mayo de 2022 .
Enlaces externos
- Sitio web oficial
- Centro de documentación de Mathematica
- Un poco de la historia de Mathematica que documenta el crecimiento de la base de código y la cantidad de funciones a lo largo del tiempo