Язык Wolfram Language - Wolfram Language

Язык Wolfram Language
Логотип Wolfram Language 2016.svg
ПарадигмаМультипарадигма: переписывание терминов, функциональный, процедурный, множество
РазработаноСтивен Вольфрам
РазработчикWolfram Research
Впервые появился1988
Стабильный выпуск
12.1[1] / 18 марта 2020 г.; 8 месяцев назад (2020-03-18)
Печатная дисциплинаДинамический, сильный
Операционные системыКроссплатформенность
ЛицензияПроприетарный (доступно бесплатно для некоторых платформ)[2]
Расширения имени файла.nb, .m, .wl
Интернет сайтwww.wolfram.com/язык/
Главный реализации
Mathematica, Вольфрам | Один, Математика, Expreduce, MockMMA
Под влиянием
Под влиянием

В Язык Wolfram Language генерал многопарадигмальный вычислительный язык[7] разработан Wolfram Research. Это подчеркивает символьное вычисление, функциональное программирование, и программирование на основе правил[8] и может использовать произвольные структуры и данные.[8] Это язык программирования математической программы символьных вычислений. Mathematica.[9]

История

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

Символические аспекты двигателя делают его системой компьютерной алгебры. Язык может выполнять интеграцию, дифференциацию, матрица манипуляции и решить дифференциальные уравнения используя набор правил. Также в 1988 году была модель ноутбука и возможность вставлять звук и изображения, по словам Теодор Грей патент.[12]

Онлайн-интерфейс для языка, Вольфрам Альфа, был выпущен в 2009 году. Вольфрам реализовал этот веб-сайт, переведя естественный язык операторы в запросы на языке Wolfram, которые ссылаются на его базу данных. Этот интерфейс значительно расширил аудиторию языка, и работа, ведущая к Wolfram Alpha, также означает, что реализация языка Wolfram теперь имеет встроенный доступ к базе знаний, а также к функциям обработки естественного языка. Wolfram также добавил функции для более сложных задач, таких как 3D-моделирование.[13]

Имя было окончательно принято для языка в 2013 году, когда Wolfram Research решила сделать версию языкового движка бесплатной для Raspberry Pi пользователей, и им нужно было придумать для этого название.[14] Он был включен в рекомендуемый программный пакет, который Фонд Raspberry Pi предназначен для начинающих, что вызвало некоторые споры из-за того, что язык Wolfram проприетарный природа.[15] Планы по переносу языка Wolfram на Intel Эдисон были объявлены после представления совета на Выставка CES 2014.[16] В 2019 году была добавлена ​​ссылка, чтобы сделать библиотеки Wolfram совместимыми с Единство игровой движок, предоставляющий разработчикам игр доступ к функциям высокого уровня языка.[17][18]

Синтаксис

Синтаксис языка Wolfram Language в целом аналогичен синтаксису М-выражение 1960-х LISP, с поддержкой инфиксные операторы и вызовы функций "обозначения функций".

Основы

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

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

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

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

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

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

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

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

А Полная форма форматтер обессахаривает ввод:[19]

Полная форма[1+2](* = Плюс [1, 2] *)

Функциональное программирование

Каррирование поддерживается.

Сопоставление с образцом

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

F[Икс_]:=Икс^0

В := является «оператором SetDelayed», поэтому x не ищется сразу. Икс_ синтаксический сахар для Шаблон [x, Пустой []], т.е. «пробел» для любого значения, заменяющего x в остальной части оценки.

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

sortRule:={Икс___,y_,z_,k___}/;у>z->{Икс,z,у,k}(* Правило [Условие [Список [PatternSequence [x, BlankNullSequence []], Pattern [y, Blank []], Pattern [z, Blank []], PatternSequence [k, BlankNullSequence []]], Больше [y, z] ]], Список [x, z, y, k]] *)

В /; оператор "условие", так что правило применяется только тогда, когда у> г. Три символа подчеркивания - это синтаксис для BlankNullSequence [], для последовательности, которая может быть нулевой.

ReplaceRepeated //. можно использовать оператор для многократного применения этого правила, пока больше не произойдет никаких изменений:

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

В сопоставление с образцом Система также легко приводит к интеграции и выводам на основе правил. Ниже приведены выдержки из пакета правил Rubi:[20]

(* Взаимное правило *)Int[1/Икс_,x_Symbol]:=Журнал[Икс];(* Правило власти *)Int[Икс_^м_.,x_Symbol]:=Икс^(м+1)/(м+1)/;FreeQ[м,Икс]&&NeQ[м,-1]

Реализации

Официальная и справочная реализация языка Wolfram Language находится в системе Mathematica и связанных онлайн-сервисах. Это закрытый исходный код.[21] Однако Wolfram Research выпустила C ++ парсер языка под Открытый исходный код Лицензия MIT.[22] Ряд библиотек и функций, написанных на этом языке, имеют открытый исходный код, а сам справочник открытый доступ.[23]

За три десятилетия существования языка Wolfram ряд Открытый исходный код Также были разработаны сторонние реализации. MockMMA от Ричарда Фейтмана 1991 года имеет историческое значение. Современные по состоянию на апрель 2020 года. включить Симджу в Ява, истечь в Голанг и SymPy -основан Математика.[24] Эти реализации ориентированы на основной язык и система компьютерной алгебры что это подразумевает, а не в онлайн-функциях "базы знаний" Wolfram.

Именование

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

Смотрите также

Рекомендации

  1. ^ «Менее чем за год так много нового: запуск версии 12.1 Wolfram Language & Mathematica».
  2. ^ Стивен Вольфрам стремится демократизировать свое программное обеспечение Автор: Стив Лор, The New York Times, 14 декабря 2015 г.
  3. ^ Мэдер, Роман Э. (1994). Программист Mathematica®. Academic Press, Inc. стр. 6. ISBN  978-1-48321-415-3.
  4. ^ «Вопросы и ответы по Wolfram Language». Wolfram Research. Получено 2016-12-05.
  5. ^ Безансон, Джефф; Карпинский, Стефан; Шах, Вирал; Эдельман, Алан (14 февраля 2012 г.). «Почему мы создали Юлию». Джулия Язык. Получено 2016-12-01.
  6. ^ Хикки, Рич. "Книжная полка Clojure". Amazon.com. Архивировано из оригинал на 2017-10-03. Получено 2020-05-06.
  7. ^ «Заметки для экспертов по языку программирования о языке Wolfram Language». Wolfram.com. Получено 2015-11-05.
  8. ^ а б c «Как мы должны называть язык математики? - Блог Стивена Вольфрама». Blog.stephenwolfram.com. 2013-02-12. Получено 2015-11-05.
  9. ^ а б «Празднование первой четверти века Mathematica - блог Wolfram». Blog.wolfram.com. Получено 2015-11-05.
  10. ^ Вольфрам (1988). Mathematica, система для выполнения математических задач на компьютере.
  11. ^ "dubrousky / mockmma: mma.lisp (встроенные символы)". GitHub.
  12. ^ Хейс, Брайан (01.01.1990). «Мысли о Mathematica» (PDF). Пиксель.
  13. ^ "Центр документации по языку и системе Wolfram". Reference.wolfram.com. Получено 2015-11-05.
  14. ^ «Использование языка Wolfram Language (и Mathematica) на каждом Raspberry Pi - блог Wolfram». Blog.wolfram.com. Получено 2015-11-05.
  15. ^ Шерр, Ян (22 ноября 2013 г.). «Программа Premium Mathematica, бесплатная по бюджету Raspberry Pi - CNET». News.cnet.com. Получено 2015-11-05.
  16. ^ Даниил А.Ю. Соколов (22.11.2014). "Intels Edison: Pentium-System im Format einer SD-Karte | heise online". Heise.de. Получено 2015-11-05.
  17. ^ «Язык Wolfram Language скоро будет интегрирован в Unity». Гамасутра. 2014-03-10. Получено 2015-11-05.
  18. ^ «Есть ли способ использовать язык Wolfram Language в Unity3D?». Вольфрам. 2017 г.. Получено 2017-04-11.
  19. ^ "Полная форма". Документация по языку Wolfram Language.
  20. ^ «Добро пожаловать в Rubi, интегратор на основе правил». Интеграция на основе правил.
  21. ^ Маклоун, Дж. «Почему Wolfram Tech не является открытым исходным кодом - дюжина причин - блог Wolfram».
  22. ^ "codeparser: анализировать исходный код языка Wolfram Language как абстрактные синтаксические деревья (AST) или конкретные синтаксические деревья (CST)". GitHub. Wolfram Research, Inc. 13 апреля 2020 г.
  23. ^ «Открытые материалы от Wolfram: открытый код, открытый исходный код, открытые данные, открытые ресурсы». www.wolfram.com.
  24. ^ Саймон. «Есть ли реализация языка Mathematica-the-language с открытым исходным кодом?». Обмен стеков Mathematica.
  25. ^ «Стивен Вольфрам говорит, что у него есть алгоритм для всего - буквально». Readwrite.com. Получено 2015-11-05.

внешняя ссылка