Wolfram Language

редактировать
Wolfram Language
Wolfram Language Logo 2016.svg
Парадигма Мультипарадигма : перезапись терминов, функциональный, процедурный, массив
Разработано Стивеном Вольфрамом
разработчиком Wolfram Research
Впервые появилось1988
Стабильная версия 12.1 / 18 марта 2020 г.; 7 месяцев назад (2020-03-18)
Дисциплина набора текста Динамический, сильный
OS Кросс-платформенный
Лицензия Собственный (предоставляется бесплатно для некоторых платформ)
Расширения имен файлов .nb,.m,.wl
Веб-сайтwww.wolfram.com / language /
Major реализации
Mathematica, Wolfram | One, Mathics, Expreduce, MockMMA
Под влиянием
Influenced

The Wolfram Язык - это общий многопарадигмальный вычислительный язык, разработанный Wolfram Research. Он подчеркивает символьные вычисления, функциональное программирование и программирование на основе правил и может использовать произвольные структуры и данные. Это язык программирования программы математических символьных вычислений Mathematica.

Содержание
  • 1 История
  • 2 Синтаксис
    • 2.1 Основы
    • 2.2 Синтаксический сахар
    • 2.3 Функциональное программирование
    • 2.4 Сопоставление с образцом
  • 3 Реализации
  • 4 Именование
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
История

Язык Wolfram Language был частью начальной версии Mathematica в 1988 году. Судя по примерам MockMMA 1991 года, с тех пор существует синтаксис M-выражения, а также возможности символьного, функционального и сопоставления шаблонов с помощью перезаписи. В целом, это делает Wolfram полным по Тьюрингу языком с поддержкой мета-алгоритмов и суперфункций.

. Символьные аспекты движка делают его системой компьютерной алгебры. Язык может выполнять интегрирование, дифференцирование, матрицу манипуляции и решать дифференциальные уравнения с использованием набора правил. Также в 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, что дало разработчикам игр доступ к функциям высокого уровня языка.

Syntax

The Wolfram Синтаксис языка в целом аналогичен M-выражению 1960-х годов LISP с поддержкой инфиксных операторов и вызовов функций «нотация функций».

Основы

Язык Wolfram записывает базовые арифметические выражения с использованием инфиксных операторов.

(* Это комментарий. *) 4 + 3 (* = 7 *) 1 + 2 * (3 + 4) (* = 15 *) (* Обратите внимание, что умножение можно опустить: 1 + 2 (3 + 4) *) (* Деления возвращают рациональные числа: *) 3/2 (* = 3/2 *)

Вызов функций обозначается квадратными скобками:

Sin [Pi] (* = 0 *) (* Это функция для преобразования рациональных чисел в числа с плавающей запятой: *) N [3/2] (* = 1.5 *)

Списки заключаются в фигурные скобки:

Синтаксический сахар

Язык может отклоняться от парадигмы M-выражения, когда альтернативный, более удобный для человека способ показать выражение доступно:

  • В этом языке используется ряд правил форматирования, включая TeXFormдля выражений набора и InputFormдля языкового ввода.
  • Также могут применяться функции с использованием префиксного выражения @и постфиксного выражения //.
  • Производные можно обозначать апострофом '.
  • Инфиксный сами операторы считаются «сахаром» для системы функции.

A FullFormформаттер обессахаривает входные данные:

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

Поддерживается функциональное программирование

Currying.

Сопоставление с шаблоном

Функции на языке Wolfram Language в основном представляют собой случай простых шаблонов для замены:

F [x_]: = x ^ 0

: =- это "оператор SetDelayed", поэтому x не ищется сразу. x_- синтаксический сахар для Pattern [x, Blank], т.е. «пробел» для любого значения, заменяющего x в остальной части оценки.

Итерация пузырьковой сортировки выражается как:

sortRule: = {x ___, y_, z_, k ___} /; y>z ->{x, z, y, k} (* Правило [Condition [List [PatternSequence [x, BlankNullSequence], Pattern [y, Blank], Pattern [z, Blank], PatternSequence [k, BlankNullSequence]]), Greater [y, z]], List [x, z, y, k]] *)

Оператор /;является «условием», поэтому правило применяется только тогда, когда у>г. Три символа подчеркивания представляют собой синтаксис для 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]; (* Правило мощности *) 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 на основе Mathics. Эти реализации ориентированы на основной язык и систему компьютерной алгебры, которую он подразумевает, а не на возможности онлайн-базы знаний Wolfram.

Именование

Язык был официально назван в июне 2013 года, хотя в качестве серверной части вычислительной системы Mathematica он использовался в различных формах более 30 лет. с момента первого выпуска Mathematica. До 2013 года внутренне он назывался несколькими именами, такими как «M» и «Wolfram Language». Другие возможные названия, рассматриваемые Wolfram Research, включают «Lingua» и «Express».

См. Также
  • icon Портал компьютерного программирования
  • icon Математический портал
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-21 13:31:27
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте