# Wolfram Language

__: Programming language and environment developed by Wolfram Research__

**Short description**Paradigm | Multi-paradigm: term-rewriting, functional, procedural, array |
---|---|

Designed by | Stephen Wolfram |

Developer | Wolfram Research |

First appeared | 1988 |

Stable release | 14.0.0 ^{[1]}
/ January 9, 2024 |

Typing discipline | Dynamic, strong |

OS | Cross-platform |

License | Proprietary |

Filename extensions | .nb, .m, .wl |

Website | {{{1}}} |

Major implementations | |

Mathematica, Mathics, Expreduce, MockMMA | |

Influenced by | |

Influenced | |

The **Wolfram Language** (/ˈwʊlfrəm/ *WUUL-frəm*) is a proprietary,^{[7]} general high-level multi-paradigm programming language^{[8]} developed by Wolfram Research. It emphasizes symbolic computation, functional programming, and rule-based programming^{[9]} and can employ arbitrary structures and data.^{[9]} It is the programming language of the mathematical symbolic computation program Mathematica.^{[10]}

## History

The Wolfram Language was a part of the initial version of Mathematica in 1988.^{[11]}

Symbolic aspects of the engine make it a computer algebra system. The language can perform integration, differentiation, matrix manipulations, and solve differential equations using a set of rules. Also, the initial version introduced the notebook model and the ability to embed sound and images, according to Theodore Gray's patent.^{[12]}

Wolfram also added features for more complex tasks, such as 3D modeling.^{[13]}

A name was finally adopted for the language in 2013, as Wolfram Research decided to make a version of the language engine free for Raspberry Pi users, and they needed to come up with a name for it.^{[14]} It was included in the recommended software bundle that the Raspberry Pi Foundation provides for beginners, which caused some controversy due to the Wolfram language's proprietary nature.^{[15]} Plans to port the Wolfram language to the Intel Edison were announced after the board's introduction at CES 2014 but was never released.^{[16]} In 2019, a link was added to make Wolfram libraries compatible with the Unity game engine, giving game developers access to the language's high level functions.^{[17]}^{[18]}

## Syntax

The Wolfram Language syntax is overall similar to the M-expression of 1960s LISP, with support for infix operators and "function-notation" function calls.

### Basics

The Wolfram language writes basic arithmetic expressions using infix operators.

(* This is a comment. *) 4 + 3 (* = 7 *) 1 + 2 * (3 + 4) (* = 15 *) (* Note that Multiplication can be omitted: 1 + 2 (3 + 4) *) (* Divisions return rational numbers: *) 6 / 4 (* = 3/2 *)

Function calls are denoted with square brackets:

Sin[Pi] (* = 0 *) (* This is the function to convert rationals to floating point: *) N[3 / 2] (* = 1.5 *)

Lists are enclosed in curly brackets:

Oddlist={1,3,5} (* = {1,3,5} *)

### Syntactic sugar

The language may deviate from the M-expression paradigm when an alternative, more human-friendly way of showing an expression is available:

- A number of formatting rules are used in this language, including
`TeXForm`

for typeset expressions and`InputForm`

for language input. - Functions can also be applied using the prefix expression
`@`

and the postfix expression`//`

. - Derivatives can be denoted with an apostrophe
`'`

. - The infix operators themselves are considered "sugar" for the function notation system.

A `FullForm`

formatter desugars the input:^{[19]}

FullForm[1+2] (* = Plus[1, 2] *)

### Functional programming

Currying is supported.

### Pattern matching

Functions in the Wolfram Language are effectively a case of simple patterns for replacement:

F[x_] := x ^ 0

The `:=`

is a "SetDelayed operator", so that the x is not immediately looked for. `x_`

is syntax sugar for `Pattern[x, Blank[]]`

, i.e. a "blank" for any value to replace x in the rest of the evaluation.

An iteration of bubble sort is expressed as:

sortRule := {x___,y_,z_,k___} /; y>z -> {x,z,y,k} (* Rule[Condition[List[PatternSequence[x, BlankNullSequence[]], Pattern[y, Blank[]], Pattern[z, Blank[]], PatternSequence[k, BlankNullSequence[]]], Greater[y, z]], List[x, z, y, k]] *)

The `/;`

operator is "condition", so that the rule only applies when `y>z`

. The three underscores are a syntax for a `BlankNullSequence[]`

, for a sequence that can be null.

A ReplaceRepeated `//.`

operator can be used to apply this rule repeatedly, until no more change happens:

{ 9, 5, 3, 1, 2, 4 } //. sortRule (* = ReplaceRepeated[{ 9, 5, 3, 1, 2, 4 }, sortRule] *) (* = {1, 2, 3, 4, 5, 9} *)

The pattern matching system also easily gives rise to rule-based integration and derivation. The following are excerpts from the Rubi package of rules:^{[20]}

(* Reciprocal rule *) Int[1/x_,x_Symbol] := Log[x]; (* Power rule *) Int[x_^m_.,x_Symbol] := x^(m+1)/(m+1) /; FreeQ[m,x] && NeQ[m,-1]

## Implementations

The official, and reference, implementation of the Wolfram Language lies in Mathematica and associated online services. These are closed source.^{[21]} Wolfram Research has, however, released a C++ parser of the language under the open source MIT License.^{[22]} The reference book is open access.^{[23]}

In the over three-decade-long existence of the Wolfram language, a number of open source third party implementations have also been developed. Richard Fateman's MockMMA from 1991 is of historical note, both for being the earliest reimplementation and for having received a cease-and-desist from Wolfram. Modern ones still being maintained (As of April 2020) include Symja in Java, expreduce in Golang, and the SymPy-based Mathics.^{[24]} These implementations focus on the core language and the computer algebra system that it implies, not on the online "knowledgebase" features of Wolfram.

In 2019,^{[25]} Wolfram Research released a freeware Wolfram Engine, to be used as a programming library in non-commercial software.^{[26]}

## Naming

The language was officially named in June 2013 and has been used as the backend of Mathematica and other Wolfram technologies for over 30 years.^{[27]}^{[28]}

## See also

## References

- ↑ "The Story Continues: Announcing Version 14 of Wolfram Language and Mathematica" (in en). 2024-01-09. https://writings.stephenwolfram.com/2024/01/the-story-continues-announcing-version-14-of-wolfram-language-and-mathematica/.
- ↑ Wolfram, Stephen. "Tini Veltman (1931–2021): From Assembly Language to a Nobel Prize—Stephen Wolfram Writings" (in en). https://writings.stephenwolfram.com/2021/01/tini-veltman-1931-2021-from-assembly-language-to-a-nobel-prize/.
- ↑ Maeder, Roman E. (1994).
*The Mathematica® Programmer*. Academic Press, Inc.. p. 6. ISBN 978-1-48321-415-3. - ↑ "Wolfram Language Q&A". Wolfram Research. https://www.wolfram.com/language/faq/.
- ↑ Somers, James. "The Scientific Paper Is Obsolete" (in en-US).
*The Atlantic*. https://www.theatlantic.com/science/archive/2018/04/the-scientific-paper-is-obsolete/556676/. - ↑ Hickey, Rich. "Clojure Bookshelf". https://www.amazon.com/gp/richpub/listmania/fullview/R3LG3ZBZS4GCTH.
- ↑ "Wolfram Open Code, Open Source, Open Data, Open Resources" (in en). http://www.wolfram.com/open-materials/.
- ↑ "Notes for Programming Language Experts about Wolfram Language". Wolfram.com. https://www.wolfram.com/language/for-experts/.
- ↑
^{9.0}^{9.1}"What Should We Call the Language of Mathematica?—Stephen Wolfram Blog". Blog.stephenwolfram.com. 2013-02-12. https://blog.stephenwolfram.com/2013/02/what-should-we-call-the-language-of-mathematica/. - ↑ "Celebrating Mathematica's First Quarter Century—Wolfram Blog". Blog.wolfram.com. https://blog.wolfram.com/2013/06/23/celebrating-mathematicas-first-quarter-century/.
- ↑ Wolfram (1988). Mathematica, a System for Doing Mathematics By Computer.
- ↑ Hayes, Brian (1990-01-01). "Thoughts on Mathematica".
*Pixel*. http://bit-player.org/wp-content/extras/bph-publications/Pixel-1990-01-Hayes-Mathematica.pdf. - ↑ "Wolfram Language & System Documentation Center". Reference.wolfram.com. https://reference.wolfram.com/language/.
- ↑ "Putting the Wolfram Language (and Mathematica) on Every Raspberry Pi—Wolfram Blog". Blog.wolfram.com. https://blog.wolfram.com/2013/11/21/putting-the-wolfram-language-and-mathematica-on-every-raspberry-pi/.
- ↑ Sherr, Ian (2013-11-22). "Premium Mathematica software free on budget Raspberry Pi - CNET". News.cnet.com. https://www.cnet.com/news/premium-mathematica-software-free-on-budget-raspberry-pi/.
- ↑ Daniel AJ Sokolov (2014-11-22). "Intels Edison: Pentium-System im Format einer SD-Karte | heise online". Heise.de. https://www.heise.de/newsticker/meldung/Intels-Edison-Pentium-System-im-Format-einer-SD-Karte-2076917.html.
- ↑ "The Wolfram Language will soon be integrated into Unity". Gamasutra. 2014-03-10. https://gamasutra.com/view/news/212709/The_Wolfram_Language_will_soon_be_integrated_into_Unity.
- ↑ "Is there a way to use Wolfram Language in Unity3D?". Wolfram. 2017. https://community.wolfram.com/groups/-/m/t/312155.
- ↑ "FullForm". https://reference.wolfram.com/language/ref/FullForm.html.
- ↑ "Welcome to Rubi, the Rule-based Integrator". https://rulebasedintegration.org/.
- ↑ McLoone, J. "Why Wolfram Tech Isn't Open Source—A Dozen Reasons—Wolfram Blog" (in en). https://blog.wolfram.com/2019/04/02/why-wolfram-tech-isnt-open-source-a-dozen-reasons/.
- ↑ "codeparser: Parse Wolfram Language source code as abstract syntax trees (ASTs) or concrete syntax trees (CSTs)". Wolfram Research, Inc.. 13 April 2020. https://github.com/WolframResearch/codeparser.
- ↑ "Open Materials from Wolfram: Open Code, Open Source, Open Data, Open Resources" (in en). https://www.wolfram.com/open-materials/.
- ↑ "Is there an open source implementation of Mathematica-the-language?". https://mathematica.stackexchange.com/a/4456.
- ↑ Wolfram, Steven. "Launching Today: Free Wolfram Engine for Developers—Stephen Wolfram Writings" (in en). https://writings.stephenwolfram.com/2019/05/launching-today-free-wolfram-engine-for-developers/.
- ↑ "Free Wolfram Engine for Developers" (in en). https://www.wolfram.com/engine/.
- ↑ Kastrenakes, Jacob (2013-11-14). "Wolfram announces 'most important' project: a programming language that models the world" (in en-US). https://www.theverge.com/2013/11/14/5103446/wolfram-language-announced-intelligent-knowledge-based-programming.
- ↑ "Something Very Big Is Coming: Our Most Important Technology Project Yet—Stephen Wolfram Writings" (in en). 2013-11-13. https://writings.stephenwolfram.com/2013/11/something-very-big-is-coming-our-most-important-technology-project-yet/.

## External links

**No URL found. Please specify a URL here or add one to Wikidata.**- Documentation for the Wolfram Language
- An Elementary Introduction to the Wolfram Language

Original source: https://en.wikipedia.org/wiki/Wolfram Language.
Read more |