Mathematica
Wolfram Mathematica est un système logiciel avec des bibliothèques intégrées permettant l'apprentissage automatique, les statistiques, le calcul symbolique, la manipulation de données, l'analyse de réseaux, l'analyse de séries temporelles, le traitement automatique du langage naturel (TALN), l'optimisation, le traçage de fonctions et de divers types de données, la mise en œuvre d'algorithmes, la création d'interfaces utilisateur et l'interface avec des programmes écrits dans d'autres langages de programmation. Il a été conçu par Stephen Wolfram et est développé par Wolfram Research à Champaign, Illinois[2],[3].
Le langage Wolfram est le langage de programmation utilisé dans Mathematica[4]. Mathematica 1.0 a été lancé le 23 juin 1988 à Champaign (Illinois) et à Santa Clara (Californie)[5],[6],[7].
Interface de notebook
Mathematica est divisé en deux parties : le noyau et l'interface. Le noyau interprète les expressions (code Wolfram Language) et renvoie des expressions de résultat, qui peuvent ensuite être affichées par l'interface utilisateur.
Le front-end original, conçu par Theodore Gray[8] en 1988, consiste en une interface de notebook et permet la création et l'édition de documents de notebook qui peuvent contenir du code, du texte brut, des images et des graphiques[9].
Les alternatives à l'interface Mathematica comprennent Wolfram Workbench, un environnement de développement intégré (IDE) basé sur Eclipse qui a été introduit en 2006. Il fournit des outils de développement de code basés sur des projets pour Mathematica, y compris la gestion des révisions, le débogage, le profilage et les tests[10].
Il existe également un plugin pour les IDE basés sur IntelliJ IDEA pour travailler avec le code Wolfram Language qui, en plus de la coloration syntaxique, peut analyser et compléter automatiquement les variables locales et les fonctions définies[11].Le noyau Mathematica comprend également une ligne de commande pour le front-end[12].
Les autres interfaces comprennent JMath[13], basé sur GNU Readline et WolframScript[14] qui exécute des programmes Mathematica autonomes (avec des arguments) à partir de la ligne de commande UNIX.
L'extension des fichiers Mathematica est .nb et .m pour les fichiers de configuration.
Mathematica est conçu pour être totalement stable et rétrocompatible avec les versions précédentes.
Calcul intensif
Les capacités de calcul intensif ont été élargies avec l'introduction des tableaux compacts dans la version 4 (1999)[15] et des matrices creuses (version 5, 2003)[16], ainsi qu'avec l'adoption de la bibliothèque GNU pour l'évaluation de l'arithmétique à haute précision.
La version 5.2 (2005) a ajouté le multi-threading automatique lorsque les calculs sont effectués sur des ordinateurs multi-cœurs[17]. Cette version comprenait des bibliothèques optimisées spécifiques au processeur[18]. En outre, Mathematica est pris en charge par du matériel d'accélération spécialisé tiers tel que ClearSpeed[19].
En 2002, gridMathematica a été introduit pour permettre le parallélisme au niveau de l'utilisateur sur des clusters hétérogènes et des systèmes multiprocesseurs et en 2008[20], la technologie de calcul parallèle a été incluse dans toutes les licences Mathematica, y compris la prise en charge de la technologie de grille telle que Windows HPC Server 2008, Windows Server 2003 et Sun Grid.
La prise en charge du processeur graphique CUDA et OpenCL a été ajoutée en 2010[21].
Extensions
Depuis la version 13, le langage Wolfram compte 6 051 fonctions et symboles intégrés[22].Stephen Wolfram a annoncé le lancement du Wolfram Function Repository en juin 2019 pour permettre à la communauté Wolfram de contribuer au langage Wolfram[23]. Au moment où Stephen Wolfram a annoncé la sortie de Mathematica 13, il y avait 2 259 fonctions contribuées en tant que fonctions de ressources[22].
Outre le référentiel de fonctions Wolfram, il existe un référentiel de données Wolfram contenant des données calculables et un référentiel de réseaux neuronaux Wolfram pour l'apprentissage automatique[24].
Wolfram Mathematica est à la base du progiciel Combinatorica, qui ajoute au programme des fonctionnalités de mathématiques discrètes dans les domaines de la combinatoire et de la théorie des graphes[25].
Connexions avec d'autres applications, langages de programmation et services
La communication avec d'autres applications peut se faire à l'aide d'un protocole appelé Wolfram Symbolic Transfer Protocol (WSTP). Il permet la communication entre le noyau de Mathematica et le front-end et fournit une interface générale entre le noyau et d'autres applications[26].
Wolfram Research distribue gratuitement un kit de développement permettant de lier des applications écrites en langage de programmation C au noyau Mathematica par le biais du WSTP en utilisant J/Link[27], un programme Java qui peut demander à Mathematica d'effectuer des calculs. Une fonctionnalité similaire est obtenue avec .NET /Link[28], mais avec des programmes .NET au lieu de programmes Java.
Les autres langages qui se connectent à Mathematica sont Haskell[29],AppleScript[30],Racket[31], Visual Basic[32], Python[33],[34] et Clojure[35].
Mathematica prend en charge la génération et l'exécution de modèles Modelica pour la modélisation de systèmes et se connecte à Wolfram System Modeler.Des liens sont également disponibles vers de nombreux logiciels et API tiers[36].
Mathematica peut également capturer des données en temps réel à partir d'une variété de sources[37]et peut lire et écrire sur des chaînes de blocs publiques (Bitcoin, Ethereum et ARK)[38].
Il prend en charge l'importation et l'exportation de plus de 220 formats de données, d'images, de vidéos, de sons, de conception assistée par ordinateur (CAO), de systèmes d'information géographique (SIG)[39], de documents et de formats biomédicaux.
En 2019, la prise en charge de la compilation du code Wolfram Language vers LLVM a été ajoutée[40].
La version 12.3 du langage Wolfram a ajouté la prise en charge d'Arduino[41].
Données calculables
Mathematica est également intégré à Wolfram Alpha, un système de questions-réponses en ligne qui fournit des données supplémentaires, dont certaines sont mises à jour en temps réel, aux utilisateurs de Mathematica avec une connexion internet. Les ensembles de données comprennent des données astronomiques, chimiques, géopolitiques, linguistiques, biomédicales, aériennes et météorologiques, ainsi que des données mathématiques (telles que les nœuds et les polyèdres)[42],[43].
Réception
En 1989, Byte a classé Mathematica parmi les lauréats de la catégorie «Distinction» des BYTE Awards, en déclarant que «c’est une autre application Macintosh révolutionnaire... vous permettant d'assimiler l'algèbre et le calcul qui semblaient impossibles à comprendre à partir d'un manuel»[44]. Mathematica a été critiqué pour son code source fermé. Wolfram Research affirme que le maintien de Mathematica en code source fermé est essentiel à son modèle d'entreprise et à la continuité du logiciel[45].
Notes et références
- "Yet More New Ideas and New Functions: Launching Version 14.1 of Wolfram Language & Mathematica"
- "Stephen Wolfram: Simple Solutions; The iconoclastic physicist's Mathematica software nails complex puzzles". BusinessWeek. October 3, 2005. Retrieved August 4, 2021.
- "Contact Wolfram Research". Retrieved 11 August 2015.
- "Stephen Wolfram's new programming language: Can he make the world computable?". Slate Magazine. 6 March 2014. Retrieved 11 August2015.
- "Mathematica—Three Decades of Contributions, Invention, Discovery, and Education". www.wolfram.com. Retrieved 2022-05-16.
- "Celebrating a Third of a Century of Mathematica, and Looking Forward—Stephen Wolfram Writings". writings.stephenwolfram.com. Retrieved 2022-05-16.
- "There Was a Time before Mathematica…—Stephen Wolfram Writings". writings.stephenwolfram.com. Retrieved 2022-05-16.
- Patent US8407580 Archived 2016-11-20 at the Wayback Machine Google Patent Search
- Hayes, Brian (1990-01-01). "Thoughts on Mathematica" (PDF). Pixel. Archived (PDF) from the original on 2014-07-15.
- "Wolfram intros Workbench IDE for Mathematica". Macworld. 21 June 2006. Archived from the original on 2 July 2006. Retrieved 11 August2015.
- "Mathematica plugin for IntelliJ IDEA".
- Using a Text-Based Interface Archived 2013-10-29 at the Wayback Machine documentation at wolfram.com
- "JMath: A GNU Readline based frontend for Mathematica". Retrieved 11 August 2015.
- "Directory listing". Retrieved 18 April 2019.
- Math software packs new power; new programs automate such tedious processes as solving nonlinear differential equations and converting units by Agnes Shanley, Chemical Engineering, March 1, 2002.
- Mathematica 5.1: additional features make software well-suited for operations research professionals Archived 2008-09-25 at the Wayback Machine by ManMohan S. Sodhi, OR/MS Today, December 1, 2004.
- The 21st annual Editors' Choice Awards Archived 2009-01-12 at the Wayback Machine, Macworld, February 1, 2006.
- "Mathematica is tuned to take advantage of CPU features when available". Retrieved 13 April 2020.
- "ClearSpeed Advance Accelerator Boards Certified by Wolfram Research; Math Coprocessors Enable Mathematica Users to Quadruple Performance". Archived from the original on 25 January 2016. Retrieved 11 August 2015.
- gridMathematica offers parallel computing solution Archived 2005-12-02 at the Wayback Machine by Dennis Sellers, MacWorld, November 20, 2002.
- "CUDA and OpenCL support added in Mathematica 8". Retrieved 13 April 2020.
- "Launching Version 13.0 of Wolfram Language + Mathematica—Stephen Wolfram Writings". writings.stephenwolfram.com. Retrieved 2022-05-16.
- "The Wolfram Function Repository: Launching an Open Platform for Extending the Wolfram Language—Stephen Wolfram Writings". writings.stephenwolfram.com. Retrieved 2022-05-16.
- "Launching the Wolfram Data Repository: Data Publishing that Really Works—Stephen Wolfram Writings". writings.stephenwolfram.com. Retrieved 2022-05-16.
- Skiena, Steven (2003). Computational Discrete Mathematics: Combinatorics and Graph Theory with Mathematica. Cambridge University Press.
- "Wolfram Symbolic Transfer Protocol (WSTP)".
- Mathematica 4.2 Archived 2007-11-21 at the Wayback Machine by Charles Seiter, Macworld, November 1, 2002.
- .NET/Link Archived 2010-09-09 at the Wayback Machine: .NET/Link is a toolkit that integrates Mathematica and the Microsoft .NET Framework.
- "mathlink: Write Mathematica packages in Haskell - Hackage". Retrieved 11 August 2015.
- S.Kratky. "MathLink for AppleScript". Archived from the original on 17 July 2011. Retrieved 11 August 2015.
- "MrMathematica: Calling Mathematica from Scheme". Retrieved 11 August 2015.
- "Mathematica for ActiveX - from Wolfram Library Archive". Retrieved 11 August 2015.
- "erocarrera/pythonika". GitHub. Retrieved 11 August 2015.
- "PYML (Python Mathematica interface) - from Wolfram Library Archive". Retrieved 11 August 2015.
- "Clojuratica - Home". Clojuratica.weebly.com. Retrieved 2013-08-16.
- "Wolfram Documentation: ServiceConnect". Retrieved 4 August 2021.
- "Vernier and Mathematica".
- "Working with blockchains". Retrieved 15 April 2020.
- Mathematica 6 Labs Review Archived 2022-03-25 at the Wayback Machine Cadalyst Feb 1, 2008
- "Create LLVM code". Retrieved 13 April 2020.
- "Launching Version 12.3 of Wolfram Language & Mathematica—Stephen Wolfram Writings". writings.stephenwolfram.com. Retrieved 2022-01-29.
- "Scientific and Technical Data", Mathematic Guide, Wolfram Research, archived from the original on 10 May 2012, retrieved 16 May 2012
- "Six Reasons Why the Wolfram Language Is (Like) Open Source—Wolfram Blog". blog.wolfram.com. Retrieved 2022-05-16.
- "The BYTE Awards". BYTE. January 1989. p. 327.
- "Why Wolfram Tech Isn't Open Source—A Dozen Reasons—Wolfram Blog". blog.wolfram.com. Retrieved 2021-08-05.
Annexes
Articles connexes
- Maple, un logiciel propriétaire concurrent
- Maxima, un logiciel libre concurrent
- SageMath, autre logiciel libre de calcul formel
Liens externes
- (en) Site officiel
- Notice dans un dictionnaire ou une encyclopédie généraliste :
- Leonid Shifrin, Mathematica programming [PDF]
- (en) IMTEK Mathematica Supplement (IMS) Open Source Add-On