Wolfram jazyk - Wolfram Language
Paradigma | Multi-paradigma: přepis termínů, funkční, procesní, pole |
---|---|
Navrhl | Stephen Wolfram |
Vývojář | Wolfram Research |
Poprvé se objevil | 1988 |
Stabilní uvolnění | 12.1[1] / 18. března 2020 |
Psací disciplína | Dynamický, silný |
OS | Cross-platform |
Licence | Proprietární (pro některé platformy k dispozici zdarma)[2] |
Přípony názvu souboru | .nb, .m, .wl |
webová stránka | www |
Hlavní, důležitý implementace | |
Mathematica, Wolfram | Jeden, Matematika, Předvídat, MockMMA | |
Ovlivněno | |
Ovlivněno | |
The Wolfram jazyk je generál multi-paradigmatický výpočetní jazyk[7] vyvinutý uživatelem Wolfram Research. Zdůrazňuje to symbolický výpočet, Funkcionální programování, a programování založené na pravidlech[8] a mohou zaměstnávat svévolně struktur a data.[8] Jedná se o programovací jazyk matematického symbolického výpočetního programu Mathematica.[9]
Dějiny
Jazyk Wolfram byl součástí původní verze Mathematica v roce 1988.[10] Soudě podle příkladů MockMMA z roku 1991, M-výraz od té doby tam byla syntaxe, stejně jako symbolické, funkční a porovnávání vzorůpřepis zařízení.[11] Celkově to dělá Wolfram a Turing dokončen jazyk s podporou meta-algoritmů a superfunkce.
Symbolické aspekty motoru z něj dělají systém počítačové algebry. Jazyk může provádět integraci, diferenciaci, matice manipulace a řešení diferenciální rovnice pomocí souboru pravidel. Také tam byl v roce 1988 model notebooku a schopnost vkládat zvuk a obrázky, podle Theodore Gray patent.[12]
Online rozhraní pro jazyk, WolframAlpha, byla vydána v roce 2009. Wolfram implementoval tento web překladem přirozený jazyk příkazy do dotazů v jazyce Wolfram, které odkazují na jeho databázi. Toto rozhraní výrazně rozšířilo publikum jazyka a práce vedoucí k Wolfram Alpha také znamená, že implementace jazyka Wolfram má nyní vestavěný přístup k znalostní bázi i funkcím zpracování přirozeného jazyka. Wolfram také přidal funkce pro složitější úkoly, jako je 3D modelování.[13]
Název jazyka byl nakonec přijat v roce 2013, protože Wolfram Research se rozhodl uvolnit verzi jazykového enginu zdarma Raspberry Pi uživatelé a potřebovali pro to vymyslet název.[14] Byl zahrnut do doporučeného softwarového balíčku, který Raspberry Pi Foundation poskytuje pro začátečníky, což způsobilo určitou polemiku kvůli jazyku Wolfram proprietární Příroda.[15] Plány na portování jazyka Wolfram do Intel Edison byly oznámeny po zavedení představenstva na CES 2014.[16] V roce 2019 byl přidán odkaz, aby byly knihovny Wolfram kompatibilní s Jednota herní engine, který vývojářům her umožňuje přístup k funkcím na vysoké úrovni jazyka.[17][18]
Syntax
Syntaxe jazyka Wolfram je celkově podobná syntaxi M-výraz šedesátých let LISP, s podporou pro operátoři infixu a volání funkce „notace funkce“.
Základy
Jazyk Wolfram píše základní aritmetické výrazy pomocí operátoři infixu.
(* Toto je komentář. *)4+3(* = 7 *)1+2*(3+4)(* = 15 *)(* Upozorňujeme, že násobení lze vynechat: 1 + 2 (3 + 4) *)(* Divize vracejí racionální čísla: *)3/2(* = 3/2 *)
Volání funkcí jsou označena hranatými závorkami:
Hřích[Pi](* = 0 *)(* Toto je funkce pro převod racionálních na plovoucí body: *)N[3/2](* = 1.5 *)
Seznamy jsou uzavřeny v složených závorkách:
Syntaxe cukru
Jazyk se může odchýlit od paradigmatu výrazu M, když je k dispozici alternativní způsob zobrazení výrazu, který je přátelštější k lidem:
- V tomto jazyce se používá řada pravidel formátování, včetně
TeXForm
pro vysázené výrazy aInputForm
pro vstup jazyka. - Funkce lze také použít pomocí výrazu předpony
@
a výraz postfixu//
. - Deriváty lze označit apostrofem
'
. - Samotní operátoři infixu jsou považováni za „cukr“ pro funkční notace Systém.
A FullForm
formátovač desugaruje vstup:[19]
FullForm[1+2](* = Plus [1, 2] *)
Funkcionální programování
Kari je podporován.
Porovnávání vzorů
Funkce v jazyce Wolfram jsou v zásadě případem jednoduchých vzorů pro výměnu:
F[X_]:=X^0
The :=
je „operátor SetDelayed“, takže x není okamžitě hledáno. X_
je syntaxe cukru pro Vzor [x, prázdné []]
, tj. „prázdné“ pro jakoukoli hodnotu, která nahradí x ve zbytku vyhodnocení.
Iterace třídění bublin je vyjádřena jako:
sortRule:={X___,y_,z_,k___}/;y>z->{X,z,y,k}(* Pravidlo [Podmínka [Seznam [PatternSequence [x, BlankNullSequence []], Pattern [y, Blank []], Pattern [z, Blank []], PatternSequence [k, BlankNullSequence []]], Větší [y, z ]], Seznam [x, z, y, k]] *)
The /;
operátor je „podmínka“, takže pravidlo platí pouze tehdy, když y> z
. Tři podtržítka jsou syntaxí pro a BlankNullSequence []
, pro sekvenci, která může mít hodnotu null.
A ReplaceOpakováno //.
operátor lze použít k opakovanému použití tohoto pravidla, dokud nedojde k další změně:
{9,5,3,1,2,4}//.sortRule(* = ReplaceRepeated [{9, 5, 3, 1, 2, 4}, sortRule] *)(* = {1, 2, 3, 4, 5, 9} *)
The porovnávání vzorů systém také snadno vede k integraci a odvození na základě pravidel. Níže jsou výňatky z balíčku pravidel Rubi:[20]
(* Reciproční pravidlo *)Int[1/X_,x_Symbol]:=Log[X];(* Pravidlo napájení *)Int[X_^m_.,x_Symbol]:=X^(m+1)/(m+1)/;FreeQ[m,X]&&NeQ[m,-1]
Implementace
Oficiální a referenční implementace jazyka Wolfram spočívá v Mathematica a souvisejících online službách. Jedná se o uzavřený zdroj.[21] Společnost Wolfram Research však vydala a C ++ analyzátor jazyka pod otevřený zdroj Licence MIT.[22] Řada knihoven a funkcí napsaných v tomto jazyce je otevřeným zdrojem a samotná referenční kniha je otevřený přístup.[23]
Za tři desetiletí trvající existenci jazyka Wolfram řada otevřený zdroj byly také vyvinuty implementace třetích stran. Historická poznámka MockMMA Richarda Fatemana z roku 1991. Moderní jsou stále udržovány od dubna 2020[Aktualizace] zahrnout Symja do Jáva, předvídat Golang a SymPy -na základě Matematika.[24] Tyto implementace se zaměřují na základní jazyk a počítačový algebraický systém že to znamená, ne na online „znalostní databázi“ funkcí Wolframu.
Pojmenování
Jazyk byl oficiálně pojmenován v červnu 2013, ačkoli jako backend výpočetního systému Mathematica, používá se v různých formách více než 30 let od počátečního vydání Mathematica.[9][25] Před rokem 2013 byl interně označován několika jmény, například „M“ a „Wolfram Language“. Další možná jména, která Wolfram Research zvažoval, zahrnují „Lingua“ a „Express“.[8]
Viz také
- Stephen Wolfram
- Wolfram Mathematica
- Rozhraní notebooku
- Wolfram Research
- Wolfram Alpha
- Demonstrační projekt Wolfram
Reference
- ^ „Za méně než rok, tolik nového: Spuštění verze 12.1 Wolfram Language & Mathematica“.
- ^ Stephen Wolfram usiluje o demokratizaci svého softwaru autor Steve Lohr, The New York Times, 14. prosince 2015
- ^ Maeder, Roman E. (1994). Programátor Mathematica®. Academic Press, Inc. str. 6. ISBN 978-1-48321-415-3.
- ^ „Wolfram Language Q&A“. Wolfram Research. Citováno 2016-12-05.
- ^ Bezanson, Jeff; Karpinski, Stefan; Shah, virová; Edelman, Alan (14.02.2012). „Proč jsme stvořili Julii“. Jazyk Julia. Citováno 2016-12-01.
- ^ Hickey, bohatý. „Clojure Bookshelf“. Amazon.com. Archivovány od originál dne 2017-10-03. Citováno 2020-05-06.
- ^ „Poznámky pro odborníky na programovací jazyky o jazyce Wolfram“. Wolfram.com. Citováno 2015-11-05.
- ^ A b C „Co bychom měli nazývat jazykem Mathematica? —Stephen Wolfram Blog“. Blog.stephenwolfram.com. 12. února 2013. Citováno 2015-11-05.
- ^ A b „Oslava prvního čtvrtletí společnosti Mathematica - blog společnosti Wolfram“. Blog.wolfram.com. Citováno 2015-11-05.
- ^ Wolfram (1988). Mathematica, systém pro provádění matematiky pomocí počítače.
- ^ „dubrousky / mockmma: mma.lisp (integrované symboly)“. GitHub.
- ^ Hayes, Brian (01.01.1990). "Myšlenky na Mathematica" (PDF). Pixel.
- ^ „Centrum jazykové a systémové dokumentace Wolfram“. Reference.wolfram.com. Citováno 2015-11-05.
- ^ „Uvedení jazyka Wolfram (a Mathematica) na každé Raspberry Pi - blog Wolfram“. Blog.wolfram.com. Citováno 2015-11-05.
- ^ Sherr, Ian (2013-11-22). „Prémiový software Mathematica zdarma s rozpočtem Raspberry Pi - CNET“. News.cnet.com. Citováno 2015-11-05.
- ^ Daniel AJ Sokolov (2014-11-22). „Intels Edison: Pentium-System im Format einer SD-Karte | heise online“. Heise.de. Citováno 2015-11-05.
- ^ „Jazyk Wolfram bude brzy integrován do Unity“. Gamasutra. 10. 3. 2014. Citováno 2015-11-05.
- ^ „Existuje způsob, jak použít jazyk Wolfram v Unity3D?“. Wolfram. 2017. Citováno 2017-04-11.
- ^ „FullForm“. Jazyková dokumentace Wolfram.
- ^ „Vítejte v Rubi, integrátorovi založeném na pravidlech“. Integrace založená na pravidlech.
- ^ McLoone, J. „Proč Wolfram Tech není otevřený zdroj - tucet důvodů - blog Wolfram“.
- ^ "codeparser: Analyzovat zdrojový kód jazyka Wolfram jako abstraktní syntaxe (AST) nebo konkrétní syntaxe (CST)" ". GitHub. Wolfram Research, Inc. 13. dubna 2020.
- ^ „Otevřené materiály od společnosti Wolfram: otevřený kód, otevřený zdroj, otevřená data, otevřené zdroje“. www.wolfram.com.
- ^ Simone. „Existuje implementace open source jazyka Mathematica?“. Mathematica Stack Exchange.
- ^ „Stephen Wolfram říká, že má algoritmus na všechno - doslova“. Readwrite.com. Citováno 2015-11-05.
externí odkazy
- Dokumentace pro jazyk Wolfram
- Základní úvod do jazyka Wolfram
- Programovací cloud Wolfram
- WolframLanguage.org: průvodce komunitními zdroji o jazyce Wolfram
- Něco velmi velkého přichází: Náš dosud nejdůležitější technologický projekt: první oznámení o jazyce Wolfram v blogu Stephena Wolframa