Вольфрам Язык
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | Мультипарадигма : переписывание терминов , функциональное , процедурное , массив. |
---|---|
Разработано | Стивен Вольфрам |
Разработчик | Вольфрам Исследования |
Впервые появился | 1988 год |
Стабильная версия | 14.1.0 [1]
/ 31 июля 2024 г |
Дисциплина набора текста | Динамичный , сильный |
ТЫ | Кросс-платформенный |
Лицензия | Собственный |
Расширения имен файлов | .nb, .m, .wl |
Веб-сайт | www |
Основные реализации | |
Mathematica , Mathics , Expreduce , MockMMA | |
Под влиянием | |
Под влиянием | |
Язык Wolfram ( / ˈ w ʊ l f r əm / WUUL -frəm ) является собственностью, [7] общий очень высокого уровня многопарадигмальный язык программирования [8] разработан компанией Wolfram Research . Он делает упор на символьные вычисления , функциональное программирование и программирование на основе правил. [9] и может использовать произвольные структуры и данные. [9] Это язык программирования математической программы символьных вычислений Mathematica . [10]
История
[ редактировать ]Язык Wolfram Language был частью первоначальной версии Mathematica в 1988 году. [11]
Символические аспекты движка делают его системой компьютерной алгебры. Язык может выполнять интегрирование, дифференцирование, манипуляции с матрицами и решать дифференциальные уравнения , используя набор правил. Кроме того, в первоначальной версии была представлена модель ноутбука и возможность встраивания звука и изображения согласно Теодора Грея . патенту [12]
Wolfram также добавил функции для более сложных задач, таких как 3D-моделирование. [13]
Название для языка было окончательно принято в 2013 году, когда компания Wolfram Research решила сделать версию языкового движка бесплатной для пользователей Raspberry Pi , и им нужно было придумать для нее имя. [14] Он был включен в рекомендуемый пакет программного обеспечения, который Raspberry Pi Foundation характера языка Wolfram предоставляет новичкам, что вызвало некоторые разногласия из-за проприетарного . [15] Планы по портированию языка Wolfram на Intel Edison были объявлены после презентации платы на выставке CES 2014, но так и не были выпущены. [16] В 2019 году была добавлена ссылка на совместимость библиотек Wolfram с игровым движком Unity , предоставляющая разработчикам игр доступ к функциям языка высокого уровня. [17] [18]
Синтаксис
[ редактировать ]Синтаксис языка Wolfram Language в целом похож на M-выражение 1960-х годов LISP с поддержкой инфиксных операторов и вызовов функций с «нотацией функции».
Основы
[ редактировать ]Язык 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: *)
6 / 4
(* = 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} *)
Синтаксический сахар
[ редактировать ]Язык может отклоняться от парадигмы М-выражений, когда доступен альтернативный, более удобный для человека способ отображения выражения:
- В этом языке используется ряд правил форматирования, в том числе
TeXForm
для наборных выражений иInputForm
для языкового ввода. - Функции также можно применять с помощью префиксного выражения
@
и постфиксное выражение//
. - Производные можно обозначать апострофом.
'
. - Сами инфиксные операторы считаются « сахаром » для системы обозначения функций .
А FullForm
форматтер очищает входные данные: [19]
FullForm[1+2]
(* = Plus[1, 2] *)
Функциональное программирование
[ редактировать ]каррирование Поддерживается .
Сопоставление с образцом
[ редактировать ]Функции в языке Wolfram Language фактически представляют собой случай простых шаблонов замены:
F[x_] := x ^ 0
The :=
является «оператором 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]] *)
The /;
оператором является «условие», так что правило применяется только тогда, когда y>z
. Три подчеркивания — это синтаксис для BlankNullSequence[]
, для последовательности, которая может быть нулевой.
ЗаменаПовторенная //.
Оператор можно использовать для многократного применения этого правила, пока не прекратятся изменения:
{ 9, 5, 3, 1, 2, 4 } //. sortRule
(* = ReplaceRepeated[{ 9, 5, 3, 1, 2, 4 }, sortRule] *)
(* = {1, 2, 3, 4, 5, 9} *)
Система сопоставления шаблонов также легко обеспечивает интеграцию и вывод на основе правил. Ниже приведены выдержки из пакета правил Rubi: [20]
(* 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 и связанных с ней онлайн-сервисах. Это закрытый исходный код. [21] Однако компания Wolfram Research выпустила анализатор языка под с открытым исходным кодом лицензией MIT . [22] Парсер изначально был разработан на C++ , но в 2023 году был переписан на Rust . Справочник находится в открытом доступе . [23]
За более чем три десятилетия существования языка Wolfram с открытым исходным кодом также был разработан ряд сторонних реализаций . MockMMA Ричарда Фейтмана 1991 года имеет историческое значение как потому, что является самой ранней повторной реализацией, так и потому, что получил разрешение от Wolfram о прекращении противоправных действий. Современные по состоянию на апрель 2020 года все еще поддерживаются. [update] включают Symja в Java , expreduce в Golang и SymPy на основе Mathics . [24] Эти реализации сосредоточены на базовом языке и системе компьютерной алгебры , которую он подразумевает, а не на функциях онлайн-базы знаний Wolfram.
В 2019 году [25] Компания Wolfram Research выпустила бесплатное программное обеспечение Wolfram Engine, которое будет использоваться в качестве библиотеки программирования в некоммерческом программном обеспечении. [26]
Мы
[ редактировать ]Язык был официально назван в июне 2013 года и использовался в качестве серверной части Mathematica и других технологий Wolfram более 30 лет. [27] [28]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «История продолжается: анонс версии 14 языков Wolfram Language и Mathematica» . Сочинения Стивена Вольфрама . 31 июля 2024 г. Проверено 31 июля 2024 г.
- ^ Вольфрам, Стивен. «Тини Вельтман (1931–2021): от языка ассемблера к Нобелевской премии — сочинения Стивена Вольфрама» . Stephenwolfram.comwritings . Проверено 22 января 2021 г.
- ^ Медер, Роман Э. (1994). Программист Mathematica® . Academic Press, Inc. с. 6. ISBN 978-1-48321-415-3 .
- ^ «Вопросы и ответы по языку Wolfram» . Вольфрам Исследования . Проверено 5 декабря 2016 г.
- ^ Сомерс, Джеймс. «Научная статья устарела» . Атлантика . Проверено 10 апреля 2018 г.
- ^ Хикки, Рич. «Книжная полка Clojure» . Amazon.com . Архивировано из оригинала 3 октября 2017 г. Проверено 6 мая 2020 г.
- ^ «Открытый код Wolfram, открытый исходный код, открытые данные, открытые ресурсы» . www.wolfram.com . Проверено 3 февраля 2023 г.
- ^ «Заметки для экспертов по языкам программирования о языке Wolfram Language» . Вольфрам.com . Проверено 5 ноября 2015 г.
- ^ Перейти обратно: а б «Как нам следует называть язык Mathematica? — Блог Стивена Вольфрама» . Блог.stephenwolfram.com. 12 февраля 2013 г. Проверено 5 ноября 2015 г.
- ^ «Празднование первой четверти века Mathematica — блог Wolfram» . Блог.wolfram.com. 23 июня 2013 года . Проверено 5 ноября 2015 г.
- ^ Вольфрам (1988). Mathematica, система для выполнения математических вычислений на компьютере.
- ^ Хейс, Брайан (1 января 1990 г.). «Мысли о математике» (PDF) . Пиксель .
- ^ «Центр языковой и системной документации Wolfram» . Ссылка.wolfram.com . Проверено 5 ноября 2015 г.
- ^ «Размещение языка Wolfram (и Mathematica) на каждом Raspberry Pi — блог Wolfram» . Блог.wolfram.com. 21 ноября 2013 года . Проверено 5 ноября 2015 г.
- ^ Шерр, Ян (22 ноября 2013 г.). «Премиум-программное обеспечение Mathematica, бесплатное и бюджетное для Raspberry Pi — CNET» . News.cnet.com . Проверено 5 ноября 2015 г.
- ^ Дэниел А.Дж. Соколов (22 ноября 2014 г.). «Intel's Edison: система Pentium в формате SD-карты | heise online» . Heise.de . Проверено 5 ноября 2015 г.
- ^ «Язык Wolfram Language скоро будет интегрирован в Unity» . Гамасутра. 10 марта 2014 г. Проверено 5 ноября 2015 г.
- ^ «Есть ли способ использовать язык Wolfram Language в Unity3D?» . Вольфрам. 2017. Архивировано из оригинала 19 июля 2017 года . Проверено 11 апреля 2017 г.
- ^ «Полная форма» . Документация по языку Wolfram .
- ^ «Добро пожаловать в Rubi, интегратора на основе правил» . Интеграция на основе правил .
- ^ МакЛун, Дж. (2 апреля 2019 г.). «Почему технология Wolfram Tech не имеет открытого исходного кода — дюжина причин — блог Wolfram» .
- ^ «codeparser: анализировать исходный код языка Wolfram Language как абстрактные синтаксические деревья (AST) или конкретные синтаксические деревья (CST)» . Гитхаб . Вольфрам Рисерч, Инк.
- ^ «Открытые материалы от Wolfram: открытый код, открытый исходный код, открытые данные, открытые ресурсы» . www.wolfram.com .
- ^ Саймон. «Существует ли реализация языка Mathematica с открытым исходным кодом?» . Обмен стеками Mathematica .
- ^ Вольфрам, Стивен (21 мая 2019 г.). «Запуск сегодня: бесплатный движок Wolfram Engine для разработчиков — статьи Стивена Вольфрама» .
- ^ «Бесплатный движок Wolfram Engine для разработчиков» . www.wolfram.com . Проверено 19 января 2021 г.
- ^ Кастренакес, Джейкоб (14 ноября 2013 г.). «Wolfram объявляет о «самом важном» проекте: языке программирования, моделирующем мир» . Грань . Проверено 21 сентября 2023 г.
- ^ «Приближается что-то очень большое: наш самый важный технологический проект — сочинения Стивена Вольфрама» . сочинения.stephenwolfram.com . 13 ноября 2013 г. Проверено 21 сентября 2023 г.
Внешние ссылки
[ редактировать ]- Языки программирования массивов
- Интерфейс ноутбука
- Системы компьютерной алгебры
- Кроссплатформенное программное обеспечение
- Динамически типизированные языки программирования
- Программное обеспечение конечных элементов
- Функциональные языки
- Языки программирования высокого уровня
- Мультипарадигмальные языки программирования
- Языки программирования, созданные в 1988 году.
- Языки программирования с переписыванием терминов
- Вольфрам Исследования