Язык Wolfram Language - Wolfram Language
Парадигма | Мультипарадигма : перезапись терминов , функциональная , процедурная , массив |
---|---|
Разработано | Стивен Вольфрам |
Разработчик | Wolfram Research |
Впервые появился | 1988 |
Стабильный выпуск | 12.2 / 16 декабря 2020 г .
|
Печатная дисциплина | Динамичный , сильный |
Операционные системы | Кроссплатформенность |
Лицензия | Проприетарный |
Расширения имени файла | .nb, .m, .wl |
Интернет сайт | www |
Основные реализации | |
Mathematica , Wolfram | One , Mathics , Expreduce , MockMMA , WolframAlpha | |
Под влиянием | |
Под влиянием | |
Вольфрам Язык ( / ш ʊ л ф г əm / WUUL -frəm ) является общим мульти-парадигмы языка программирования , разработанный Wolfram Research . Он подчеркивает символические вычисления , функциональное программирование и программирование на основе правил и может использовать произвольные структуры и данные. Это язык программирования программы математических символьных вычислений Mathematica .
История
Язык Wolfram Language был частью начальной версии Mathematica в 1988 году.
Символические аспекты движка делают его системой компьютерной алгебры. Язык может выполнять интегрирование, дифференцирование, манипуляции с матрицами и решать дифференциальные уравнения с использованием набора правил. Также в 1988 году появилась модель ноутбука и возможность встраивать звук и изображения, согласно патенту Теодора Грея .
Онлайн-интерфейс для языка WolframAlpha был выпущен в 2009 году. Вольфрам реализовал этот веб-сайт, переводя операторы естественного языка в запросы на языке Wolfram, которые ссылаются на его базу данных. Работа, ведущая к Wolfram Alpha, также означает, что реализация языка Wolfram теперь имеет встроенный доступ к базе знаний, а также к функциям обработки естественного языка.
Wolfram также добавил функции для более сложных задач, таких как 3D-моделирование.
Название было окончательно принято для языка в 2013 году, так как Wolfram Research решила сделать версию языкового движка бесплатной для пользователей Raspberry Pi , и им нужно было придумать для нее название. Он был включен в рекомендуемый пакет программного обеспечения, который Raspberry Pi Foundation предоставляет для начинающих, что вызвало некоторые споры из-за проприетарного характера языка Wolfram . Планы по переносу языка Wolfram на Intel Edison были объявлены после представления платы на выставке CES 2014, но так и не были опубликованы. В 2019 году была добавлена ссылка, чтобы сделать библиотеки Wolfram совместимыми с игровым движком Unity , что дало разработчикам игр доступ к функциям высокого уровня языка.
Синтаксис
Синтаксис языка Wolfram Language в целом аналогичен M-выражению LISP 1960-х годов , с поддержкой инфиксных операторов и вызовов функций «функция-нотация».
Основы
Язык Wolfram записывает основные арифметические выражения с помощью инфиксных операторов .
(* 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 *)
Вызов функций обозначается квадратными скобками:
Sin[Pi]
(* = 0 *)
(* This is the function to convert rationals to floating point: *)
N[3 / 2]
(* = 1.5 *)
Списки заключаются в фигурные скобки:
Oddlist={1,3,5}
(* = {1,3,5} *)
Синтаксический сахар
Язык может отклоняться от парадигмы M-выражения, когда доступен альтернативный, более удобный для человека способ показать выражение:
- В этом языке используется ряд правил форматирования, в том числе
TeXForm
для наборных выражений иInputForm
языкового ввода. - Функции также могут применяться с использованием префиксного выражения
@
и постфиксного выражения//
. - Производные можно обозначать апострофом
'
. - Сами инфиксные операторы считаются «сахаром» для системы обозначений функций .
FullForm
Форматировщик desugars вход:
FullForm[1+2]
(* = Plus[1, 2] *)
Функциональное программирование
Каррирование поддерживается.
Сопоставление с образцом
Функции в языке Wolfram Language в основном представляют собой простые шаблоны для замены:
F[x_] := x ^ 0
Это :=
«оператор SetDelayed», поэтому x не ищется сразу. x_
является синтаксическим сахаром для Pattern[x, Blank[]]
, т. е. «пробелом» для любого значения, заменяющего x в остальной части оценки.
Итерация пузырьковой сортировки выражается как:
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]] *)
/;
Оператор «состояние», так что правило применяется только тогда , когда y>z
. Три символа подчеркивания представляют собой синтаксис для BlankNullSequence[]
последовательности, которая может иметь значение NULL.
//.
Оператор ReplaceRepeated может использоваться для многократного применения этого правила до тех пор, пока больше не произойдет никаких изменений:
{ 9, 5, 3, 1, 2, 4 } //. sortRule
(* = ReplaceRepeated[{ 9, 5, 3, 1, 2, 4 }, sortRule] *)
(* = {1, 2, 3, 4, 5, 9} *)
Система сопоставления с образцом также легко дает основание для интеграции и вывода на основе правил. Ниже приведены выдержки из пакета правил 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]
Реализации
Официальная и справочная реализация языка Wolfram Language находится в системе Mathematica и связанных онлайн-сервисах. Это закрытый исходный код. Однако Wolfram Research выпустила синтаксический анализатор языка C ++ под лицензией MIT с открытым исходным кодом . Справочник в открытом доступе .
За более чем трех десятилетий существования языка Wolfram был разработан ряд сторонних реализаций с открытым исходным кодом . MockMMA от Ричарда Фейтмана 1991 года имеет историческое значение, поскольку оно является самой ранней повторной реализацией, а также тем, что Вольфрам отказался от него. Современные из них, которые все еще поддерживаются по состоянию на апрель 2020 года, включают Symja на Java , expreduce на Golang и математику на основе SymPy . Эти реализации сосредоточены на основном языке и системе компьютерной алгебры, которую он подразумевает, а не на функциях онлайновой «базы знаний» Wolfram.
В 2019 году Wolfram Research выпустила бесплатную программу Wolfram Engine, которая будет использоваться в качестве библиотеки программирования в некоммерческом программном обеспечении.
Именование
Официально язык был назван в июне 2013 года, хотя в качестве серверной части вычислительной системы Mathematica он использовался в различных формах более 30 лет с момента первого выпуска Mathematica.
Смотрите также
использованная литература
внешние ссылки
- Документация для языка Wolfram Language
- Элементарное введение в язык Wolfram Language
- Облако программирования Wolfram
- WolframLanguage.org : руководство по ресурсам сообщества о языке Wolfram Language
- Демонстрация "языка математики" , Code Golf StackExchange Community Wiki
- Математика, физика и химия на языке Wolfram Language (World Scientific, 2022 г.)