Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allow
machine learning
Machine learning (ML) is a field of inquiry devoted to understanding and building methods that 'learn', that is, methods that leverage data to improve performance on some set of tasks. It is seen as a part of artificial intelligence.
Machine ...
,
statistics
Statistics (from German: '' Statistik'', "description of a state, a country") is the discipline that concerns the collection, organization, analysis, interpretation, and presentation of data. In applying statistics to a scientific, indust ...
,
symbolic computation
In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions ...
, data manipulation, network analysis, time series analysis,
NLP,
optimization, plotting
functions and various types of data, implementation of
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing ...
s, creation of
user interfaces, and interfacing with programs written in other
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s. It was conceived by
Stephen Wolfram, and is developed by
Wolfram Research of Champaign, Illinois. The
Wolfram Language
The Wolfram Language ( ) is a general multi-paradigm programming language developed by Wolfram Research. It emphasizes symbolic computation, functional programming, and rule-based programming and can employ arbitrary structures and data. It ...
is the programming language used in ''Mathematica''. Mathematica 1.0 was released on June 23, 1988 in
Champaign, Illinois
Champaign ( ) is a city in Champaign County, Illinois, United States. The population was 88,302 at the 2020 census. It is the tenth-most populous municipality in Illinois and the fourth most populous city in Illinois outside the Chicago metrop ...
and
Santa Clara, California
Santa Clara (; Spanish for " Saint Clare") is a city in Santa Clara County, California. The city's population was 127,647 at the 2020 census, making it the eighth-most populous city in the Bay Area. Located in the southern Bay Area, the cit ...
.
__TOC__
Notebook interface
Wolfram Mathematica (called ''Mathematica'' by some of its users) is split into two parts: the kernel and the
front end. The kernel interprets expressions (Wolfram Language code) and returns result expressions, which can then be displayed by the front end.
The original front end, designed by
Theodore Gray
Theodore W. "Theo" Gray is a co-founder of Wolfram Research, science author, and co-founder of app developer Touch Press.
Education
Theodore Gray was educated at the University of Illinois Laboratory High School. He would later graduate w ...
in 1988, consists of a
notebook interface and allows the creation and editing of
notebook documents that can contain code, plaintext, images, and graphics.
Alternatives to the Mathematica front end include Wolfram Workbench—an
Eclipse
An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three c ...
-based
integrated development environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools ...
(IDE) that was introduced in 2006. It provides project-based code development tools for Mathematica, including revision management, debugging, profiling, and testing.
There is also a plugin for
IntelliJ IDEA
IntelliJ IDEA is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is av ...
-based IDEs to work with Wolfram Language code that in addition to
syntax highlighting can analyze and auto-complete local variables and defined functions. The Mathematica Kernel also includes a command line front end.
Other interfaces include JMath, based on
GNU Readline and WolframScript which runs self-contained Mathematica programs (with arguments) from the UNIX command line.
The file extension for Mathematica files is .nb and .m for configuration files.
Mathematica is designed to be fully stable and backwards compatible with previous versions.
High-performance computing
Capabilities for
high-performance computing
High-performance computing (HPC) uses supercomputers and computer clusters to solve advanced computation problems.
Overview
HPC integrates systems administration (including network and security knowledge) and parallel programming into a mult ...
were extended with the introduction of
packed array
Data structure alignment is the way data is arranged and accessed in computer memory. It consists of three separate but related issues: data alignment, data structure padding, and packing.
The CPU in modern computer hardware performs reads and ...
s in version 4 (1999) and
sparse matrices (version 5, 2003), and by adopting the
GNU Multi-Precision Library to evaluate high-precision arithmetic.
Version 5.2 (2005) added automatic
multi-threading when computations are performed on
multi-core
A multi-core processor is a microprocessor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions. The instructions are ordinary CPU instructions (such ...
computers. This release included CPU-specific optimized libraries. In addition Mathematica is supported by third party specialist acceleration hardware such as
ClearSpeed
ClearSpeed Technology Ltd was a semiconductor company, formed in 2002 to develop enhanced SIMD processors for use in high-performance computing and embedded systems. Based in Bristol, UK, the company has been selling its processors since 2005. ...
.
In 2002,
gridMathematica
gridMathematica is a software product sold by Wolfram Research which extends the parallel processing capabilities of its main product Mathematica.
Features
gridMathematica increases the number of parallel processes that Mathematica can run at ...
was introduced to allow user level
parallel programming on heterogeneous clusters and multiprocessor systems and in 2008 parallel computing technology was included in all Mathematica licenses including support for grid technology such as
Windows HPC Server 2008
Windows HPC Server 2008, released by Microsoft on 22 September 2008, is the successor product to Windows Compute Cluster Server 2003. Like WCCS, Windows HPC Server 2008 is designed for high-end applications that require high performance computin ...
,
Microsoft Compute Cluster Server and
Sun Grid.
Support for
CUDA
CUDA (or Compute Unified Device Architecture) is a parallel computing platform and application programming interface (API) that allows software to use certain types of graphics processing units (GPUs) for general purpose processing, an approach ...
and
OpenCL
OpenCL (Open Computing Language) is a software framework, framework for writing programs that execute across heterogeneous computing, heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), d ...
GPU hardware was added in 2010.
Extensions
As of Version 13, there are 6,051 built-in functions and symbols in the Wolfram Language. Stephen Wolfram announced the launch of the Wolfram Function Repository in June 2019 as a way for the public Wolfram community to contribute functionality to the Wolfram Language. At the time of Stephen Wolfram's release announcement for Mathematica 13, there were 2,259 functions contributed as Resource Functions. In addition to the Wolfram Function Repository, there is a Wolfram Data Repository with computable data and the Wolfram Neural Net Repository for machine learning.
Wolfram Mathematica is the basis of the Combinatorica package, which adds discrete mathematics functionality in combinatorics and graph theory to the program.
Connections to other applications, programming languages, and services
Communication with other applications occurs through a protocol called Wolfram Symbolic Transfer Protocol (WSTP). It allows communication between the Wolfram Mathematica kernel and front end—and provides a general interface between the kernel and other applications.
Wolfram Research freely distributes a developer kit for linking applications written in the programming language
C to the Mathematica kernel through WSTP using J/Link.,
[Mathematica 4.2](_blank)
by Charles Seiter, ''Macworld'', November 1, 2002. a
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
program that can ask Mathematica to perform computations. Similar functionality is achieved with .NET /Link, but with
.NET programs instead of Java programs.
Other languages that connect to Mathematica include
Haskell,
AppleScript,
Racket,
Visual Basic Visual Basic is a name for a family of programming languages from Microsoft. It may refer to:
* Visual Basic .NET (now simply referred to as "Visual Basic"), the current version of Visual Basic launched in 2002 which runs on .NET
* Visual Basic ( ...
,
Python, and
Clojure.
Mathematica supports the generation and execution of
Modelica
Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process- ...
models for
systems modeling and connects with
Wolfram System Modeler.
Links are also available to many third-party software packages and APIs.
Mathematica can also capture real-time data from a variety of sources and can read and write to public blockchains (
Bitcoin
Bitcoin (abbreviation: BTC; sign: ₿) is a decentralized digital currency that can be transferred on the peer-to-peer bitcoin network. Bitcoin transactions are verified by network nodes through cryptography and recorded in a public distr ...
,
Ethereum, and ARK).
It supports import and export of over 220 data, image, video, sound,
computer-aided design
Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve co ...
(CAD),
geographic information system
A geographic information system (GIS) is a type of database containing geographic data (that is, descriptions of phenomena for which location is relevant), combined with software tools for managing, analyzing, and visualizing those data. In a ...
s (GIS), document, and biomedical formats.
In 2019, support was added for compiling Wolfram Language code to
LLVM
LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate repre ...
.
Version 12.3 of the Wolfram Language added support for
Arduino.
Computable data
Mathematica is also integrated with
Wolfram Alpha
WolframAlpha ( ) is an answer engine developed by Wolfram Research. It answers factual queries by computing answers from externally sourced data.
WolframAlpha was released on May 18, 2009 and is based on Wolfram's earlier product Wolfram Mat ...
, an online
answer engine
Question answering (QA) is a computer science discipline within the fields of information retrieval and natural language processing (NLP), which is concerned with building systems that automatically answer questions posed by humans in a natural ...
that provides additional data, some of which is kept updated in real time, for users who use Mathematica with an internet connection. Some of the data sets include astronomical, chemical, geopolitical, language, biomedical, airplane, and weather data, in addition to mathematical data (such as knots and polyhedra).
Reception
''
BYTE
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable uni ...
'' in 1989 listed Mathematica as among the "Distinction" winners of the BYTE Awards, stating that it "is another breakthrough Macintosh application ... it could enable you to absorb the algebra and calculus that seemed impossible to comprehend from a textbook".
Mathematica has been criticized for being closed source. Wolfram Research claims keeping Mathematica closed source is central to its business model and the continuity of the software.
See also
*
Comparison of multi-paradigm programming languages
*
Comparison of numerical-analysis software
*
Comparison of programming languages
*
Comparison of regular expression engines
*Computational X
*
Dynamic programming language
*
Fourth-generation programming language
A fourth-generation programming language (4GL) is any computer programming language that belongs to a class of languages envisioned as an advancement upon third-generation programming languages (3GL). Each of the programming language generations a ...
*
Functional programming
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions tha ...
*
List of computer algebra systems
The following tables provide a comparison of computer algebra systems (CAS). A CAS is a package comprising a set of algorithms for performing symbolic manipulations on algebraic objects, a language to implement them, and an environment in which to ...
*
List of computer simulation software
The following is a list of notable computer simulation software.
Free or open-source
* Advanced Simulation Library - open-source hardware accelerated multiphysics simulation software.
* ASCEND - open-source equation-based modelling environmen ...
*
List of information graphics software
This is a list of software to create any kind of information graphics:
* either includes the ability to create one or more infographics from a provided data set
* either it is provided specifically for information visualization
Vector graphics
V ...
*
Literate programming
Literate programming is a programming paradigm introduced in 1984 by Donald Knuth in which a computer program is given as an explanation of its logic in a natural language, such as English, interspersed (embedded) with snippets of macros an ...
*
Mathematical markup language
Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content. It aims at integrating mathematical formulae into World Wide W ...
*
Mathematical software
*
WolframAlpha
WolframAlpha ( ) is an answer engine developed by Wolfram Research. It answers factual queries by computing answers from externally sourced data.
WolframAlpha was released on May 18, 2009 and is based on Wolfram's earlier product Wolfram Mathe ...
, a web answer engine
*
Wolfram Language
The Wolfram Language ( ) is a general multi-paradigm programming language developed by Wolfram Research. It emphasizes symbolic computation, functional programming, and rule-based programming and can employ arbitrary structures and data. It ...
*
Wolfram SystemModeler
Wolfram System Modeler, developed by Wolfram MathCore, is a platform for engineering as well as life-science modeling and simulation based on the Modelica language. It provides an interactive graphical modeling and simulation environment and a cu ...
, a physical modeling and simulation tool which integrates with Mathematica
*
SageMath
References
External links
*
Mathematica Documentation Centerdocumenting the growth of code base and number of functions over time
{{authority control
1988 software
Astronomical databases
Notebook interface
Computer algebra system software for Linux
Computer algebra system software for macOS
Computer algebra system software for Windows
Computer algebra systems
Cross-platform software
Data mining and machine learning software
Earth sciences graphics software
Econometrics software
Formula editors
Interactive geometry software
Mathematical optimization software
Mathematical software
Numerical analysis software for Linux
Numerical analysis software for macOS
Numerical analysis software for Windows
Numerical programming languages
Numerical software
Physics software
Pi-related software
Plotting software
Proprietary commercial software for Linux
Proprietary cross-platform software
Proprietary software that uses Qt
Regression and curve fitting software
Simulation programming languages
Software that uses Qt
Statistical programming languages
Theorem proving software systems
Time series software
Wolfram Research
Graph drawing software