Wolfram-Sprache - Wolfram Language
Paradigma | Multiparadigma : Begriffsumschreibung , funktional , prozedural , array |
---|---|
Entworfen von | Stephen Wolfram |
Entwickler | Wolfram-Forschung |
Erstmals erschienen | 1988 |
Stabile Version | 12.2 / 16. Dezember 2020
|
Schreibdisziplin | Dynamisch , stark |
Betriebssystem | Plattformübergreifend |
Lizenz | Proprietär |
Dateinamenerweiterungen | .nb, .m, .wl |
Webseite | www |
Wichtige Implementierungen | |
Mathematica , Wolfram|One , Mathematik , Expreduce , MockMMA , WolframAlpha | |
Beeinflusst von | |
Beeinflusst | |
Die Wolfram Sprache ( / w ʊ l f r əm / Wuul -frəm ) ist ein allgemeines Mehr Paradigma Programmiersprache entwickelte Wolfram Research . Es betont symbolische Berechnung , funktionale Programmierung und regelbasierte Programmierung und kann beliebige Strukturen und Daten verwenden. Es ist die Programmiersprache des mathematischen symbolischen Berechnungsprogramms Mathematica .
Geschichte
Die Wolfram Language war 1988 Teil der ersten Version von Mathematica.
Symbolische Aspekte des Motors machen ihn zu einem Computeralgebrasystem. Die Sprache kann Integration, Differentiation, Matrixmanipulationen durchführen und Differentialgleichungen mithilfe eines Regelwerks lösen . Ebenfalls 1988 wurde das Notebook-Modell und die Möglichkeit, Ton und Bild einzubetten, laut Theodore Grays Patent.
Ein Online-Frontend für die Sprache, WolframAlpha , wurde 2009 veröffentlicht. Wolfram implementierte diese Website, indem es natürlichsprachliche Aussagen in Wolfram-Sprachabfragen übersetzte, die auf seine Datenbank verweisen. Die Arbeit, die zu Wolfram Alpha führte, bedeutet auch, dass Wolframs Implementierung der Sprache nun einen integrierten Zugriff auf eine Wissensdatenbank sowie auf Funktionen zur Verarbeitung natürlicher Sprache hat.
Wolfram fügte auch Funktionen für komplexere Aufgaben hinzu, wie zum Beispiel die 3D-Modellierung.
Ein Name für die Sprache wurde schließlich im Jahr 2013 angenommen, als Wolfram Research beschloss, eine Version der Sprach-Engine für Raspberry Pi- Benutzer kostenlos zur Verfügung zu stellen, und sie mussten einen Namen dafür finden. Es war im empfohlenen Softwarepaket enthalten, das die Raspberry Pi Foundation für Anfänger bereitstellt, was aufgrund der proprietären Natur der Wolfram-Sprache zu einigen Kontroversen führte . Pläne, die Wolfram-Sprache auf Intel Edison zu portieren, wurden nach der Einführung des Boards auf der CES 2014 angekündigt, aber nie veröffentlicht. Im Jahr 2019 wurde ein Link hinzugefügt, um Wolfram-Bibliotheken mit der Unity- Spiele-Engine kompatibel zu machen , wodurch Spieleentwickler Zugriff auf die High-Level-Funktionen der Sprache erhalten.
Syntax
Die Syntax der Wolfram-Sprache ist insgesamt ähnlich dem M-Ausdruck von 1960er LISP , mit Unterstützung für Infix-Operatoren und "Funktionsnotation"-Funktionsaufrufe.
Grundlagen
Die Sprache Wolfram schreibt grundlegende arithmetische Ausdrücke mit Infixoperatoren .
(* 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: *)
3 / 2
(* = 3/2 *)
Funktionsaufrufe werden mit eckigen Klammern gekennzeichnet:
Sin[Pi]
(* = 0 *)
(* This is the function to convert rationals to floating point: *)
N[3 / 2]
(* = 1.5 *)
Listen sind in geschweifte Klammern eingeschlossen:
Oddlist={1,3,5}
(* = {1,3,5} *)
Syntax Zucker
Die Sprache kann vom M-Ausdrucksparadigma abweichen, wenn eine alternative, menschenfreundlichere Art der Ausdrucksweise verfügbar ist:
- In dieser Sprache werden eine Reihe von Formatierungsregeln verwendet, unter anderem
TeXForm
für Satzausdrücke undInputForm
für die Spracheingabe. - Funktionen können auch mit dem Präfix-Ausdruck
@
und dem Postfix-Ausdruck angewendet werden//
. - Derivate können mit einem Apostroph gekennzeichnet werden
'
. - Die Infixoperatoren selbst werden für das Funktionsnotationssystem als "Zucker" betrachtet.
Ein FullForm
Formatierer entsäuert die Eingabe:
FullForm[1+2]
(* = Plus[1, 2] *)
Funktionale Programmierung
Curry wird unterstützt.
Musterabgleich
Funktionen in der Wolfram Language sind im Grunde einfache Muster zum Ersetzen:
F[x_] := x ^ 0
Das :=
ist ein "SetDelayed-Operator", damit das x nicht sofort gesucht wird. x_
ist Syntax Zucker für Pattern[x, Blank[]]
, dh ein "Leerzeichen" für einen beliebigen Wert, um x im Rest der Auswertung zu ersetzen.
Eine Iteration der Blasensortierung wird wie folgt ausgedrückt:
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]] *)
Der /;
Operator ist "condition", so dass die Regel nur gilt, wenn y>z
. Die drei Unterstriche sind eine Syntax für a BlankNullSequence[]
, für eine Sequenz, die null sein kann.
Ein ReplaceRepeated- //.
Operator kann verwendet werden, um diese Regel wiederholt anzuwenden, bis keine Änderung mehr erfolgt:
{ 9, 5, 3, 1, 2, 4 } //. sortRule
(* = ReplaceRepeated[{ 9, 5, 3, 1, 2, 4 }, sortRule] *)
(* = {1, 2, 3, 4, 5, 9} *)
Das Mustervergleichssystem führt auch leicht zu einer regelbasierten Integration und Ableitung. Nachfolgend Auszüge aus dem Rubi-Regelpaket:
(* 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]
Implementierungen
Die offizielle und Referenzimplementierung der Wolfram-Sprache liegt in Mathematica und den zugehörigen Online-Diensten. Diese sind Closed-Source. Wolfram Research hat jedoch einen C++- Parser der Sprache unter der Open-Source- MIT-Lizenz veröffentlicht . Das Nachschlagewerk ist Open Access .
In der über drei Jahrzehnte langen Existenz der Wolfram-Sprache wurden auch eine Reihe von Open-Source- Implementierungen von Drittanbietern entwickelt. Richard Fatemans MockMMA von 1991 ist von historischer Bedeutung, sowohl als früheste Neuimplementierung als auch als Unterlassungserklärung von Wolfram. Zu den modernen, die ab April 2020 noch gepflegt werden, gehören Symja in Java , expreduce in Golang und die SymPy- basierte Mathematik . Diese Implementierungen konzentrieren sich auf die Kernsprache und das Computeralgebra-System , das sie impliziert, nicht auf die Online-"Wissensdatenbank"-Funktionen von Wolfram.
Im Jahr 2019 veröffentlichte Wolfram Research eine Freeware Wolfram Engine, die als Programmierbibliothek in nicht-kommerzieller Software verwendet werden soll.
Benennung
Die Sprache wurde im Juni 2013 offiziell benannt, obwohl sie als Backend des Computersystems Mathematica seit über 30 Jahren seit der ersten Veröffentlichung von Mathematica in verschiedenen Formen verwendet wird.
Siehe auch
Verweise
Externe Links
- Dokumentation für die Wolfram Language
- Eine elementare Einführung in die Wolfram-Sprache
- Die Wolfram Programmier-Cloud
- WolframLanguage.org : ein Leitfaden für Community-Ressourcen über Wolfram Language
- Schaufenster der "Mathematica-Sprache" , Code Golf StackExchange Community Wiki
- Mathematik, Physik und Chemie mit der Wolfram-Sprache (World Scientific, 2022)