Język Wolfram - Wolfram Language

Język Wolfram
Logo języka Wolfram 2016.svg
Paradygmat Wieloparadygmat : przepisywanie terminów , funkcjonalne , proceduralne , tablice
Zaprojektowany przez Stephen Wolfram
Deweloper Badania Wolframa
Po raz pierwszy pojawiły się 1988 ; 33 lata temu ( 1988 )
Wersja stabilna
12.2 / 16 grudnia 2020 ; 7 miesięcy temu ( 2020-12-16 )
Dyscyplina pisania Dynamiczny , mocny
OS Wieloplatformowy
Licencja Prawnie zastrzeżony
Rozszerzenia nazw plików .nb, .m, .wl
Stronie internetowej www .wolfram .com /język /
Główne wdrożenia
Matematyka , Wolfram|One , Matematyka , Expreduce , MockMMA , WolframAlpha
Wpływem
Pod wpływem

Wolfram język ( / w ʊ l f r əm / WUUL -frəm ) jest ogólnym języku programowania wielu paradygmat opracowany przez Wolfram Research . Kładzie nacisk na obliczenia symboliczne , programowanie funkcjonalne i programowanie oparte na regułach i może wykorzystywać dowolne struktury i dane. Jest to język programowania programu matematyczno-symbolicznego Mathematica .

Historia

Język Wolfram był częścią początkowej wersji Mathematica w 1988 roku.

Symboliczne aspekty silnika czynią z niego system algebry komputerowej. Język może wykonywać całkowanie, różniczkowanie, manipulacje macierzami i rozwiązywanie równań różniczkowych przy użyciu zestawu reguł. Również w 1988 roku pojawił się model notebooka oraz możliwość osadzania dźwięku i obrazu, zgodnie z patentem Theodore'a Graya .

Internetowa nakładka dla tego języka, WolframAlpha , została wydana w 2009 roku. Wolfram zaimplementował tę stronę internetową, tłumacząc wyrażenia w języku naturalnym na zapytania w języku Wolfram, które prowadzą do jego bazy danych. Prace prowadzące do Wolfram Alpha oznaczają również, że implementacja języka Wolfram ma teraz wbudowany dostęp do bazy wiedzy, a także funkcje przetwarzania języka naturalnego.

Wolfram dodał również funkcje do bardziej złożonych zadań, takich jak modelowanie 3D.

Nazwa została ostatecznie przyjęta dla języka w 2013 roku, ponieważ Wolfram Research zdecydował się udostępnić wersję silnika językowego za darmo dla użytkowników Raspberry Pi i musieli wymyślić dla niego nazwę. Został dołączony do zalecanego pakietu oprogramowania, który Fundacja Raspberry Pi zapewnia początkującym, co wywołało pewne kontrowersje ze względu na zastrzeżoną naturę języka Wolfram . Plany przeniesienia języka Wolfram do Intel Edison zostały ogłoszone po wprowadzeniu płyty głównej na targach CES 2014, ale nigdy nie zostały wydane. W 2019 r. dodano link, aby biblioteki Wolfram były kompatybilne z silnikiem gry Unity , dając twórcom gier dostęp do funkcji wysokiego poziomu języka.

Składnia

Składnia języka Wolfram jest ogólnie podobna do wyrażenia M z LISP -a z lat sześćdziesiątych , z obsługą operatorów infiksowych i wywołań funkcji „notacji funkcji”.

Podstawy

Język Wolfram zapisuje podstawowe wyrażenia arytmetyczne przy użyciu operatorów wrostkowych .

(* 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 *)

Wywołania funkcji są oznaczone nawiasami kwadratowymi:

Sin[Pi]
(* = 0 *)

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

Listy są ujęte w nawiasy klamrowe:

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

Składnia cukru

Język może odbiegać od paradygmatu M-wyrażenia, gdy dostępny jest alternatywny, bardziej przyjazny dla człowieka sposób pokazania wyrażenia:

  • W tym języku stosuje się szereg reguł formatowania, w tym TeXFormdla wyrażeń składu i InputFormwprowadzania języka.
  • Funkcje można również stosować za pomocą wyrażenia przedrostkowego @i wyrażenia przyrostkowego //.
  • Pochodne mogą być oznaczone apostrofem '.
  • Same operatory wrostkowe są uważane za „cukier” dla systemu notacji funkcji .

Program FullFormformatujący odcukruje dane wejściowe:

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

Programowanie funkcjonalne

Obsługiwane jest curry .

Dopasowanie wzorca

Funkcje w języku Wolfram są w zasadzie przypadkiem prostych wzorców do zastąpienia:

F[x_] := x ^ 0

:=Jest „SetDelayed podmiot”, tak, że x nie jest natychmiast szukał. x_jest cukrem składni dla Pattern[x, Blank[]], tj. "pustą" dla dowolnej wartości, aby zastąpić x w pozostałej części oceny.

Iteracja sortowania bąbelkowego jest wyrażona jako:

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]] *)

/;Operator jest „warunek”, tak, że zasada ta ma zastosowanie tylko wtedy, gdy y>z. Trzy znaki podkreślenia to składnia dla a BlankNullSequence[], dla sekwencji, która może mieć wartość null.

//.Operator ReplaceRepeated może służyć do wielokrotnego stosowania tej reguły, dopóki nie nastąpi żadna zmiana:

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

System dopasowywania wzorców również łatwo daje początek integracji i wyprowadzaniu opartej na regułach. Poniżej znajdują się fragmenty z pakietu zasad Rubi:

(* 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]

Realizacje

Oficjalna i referencyjna implementacja języka Wolfram leży w Mathematica i powiązanych usługach online. Są to zamknięte źródła. Wolfram Research wydał jednak parser języka C++ na licencji MIT Open Source . Książka informacyjna jest ogólnodostępna .

W ciągu ponad trzech dekad istnienia języka Wolfram opracowano również szereg implementacji open source innych firm. MockMMA Richarda Fatemana z 1991 r. ma wartość historyczną, zarówno ze względu na to, że jest najwcześniejszą reimplementacją, jak i ze względu na to, że Wolfram poddał jej decyzję o zaprzestaniu działalności. Nowoczesne nich nadal utrzymuje się od kwietnia 2020 obejmują Symja w Javie , expreduce w Golang i SymPy -na Mathics . Te implementacje skupiają się na podstawowym języku i systemie algebry komputerowej, który implikuje, a nie na funkcjach "bazy wiedzy" online Wolframa.

W 2019 roku Wolfram Research wypuścił darmowy Wolfram Engine, który ma być używany jako biblioteka programistyczna w niekomercyjnym oprogramowaniu.

Nazewnictwo

Język został oficjalnie nazwany w czerwcu 2013 roku, chociaż jako zaplecze systemu obliczeniowego Mathematica był używany w różnych formach od ponad 30 lat od pierwszego wydania Mathematica.

Zobacz też

Bibliografia

Linki zewnętrzne