Введение
Компьютерная программа
язык программирования, используемый в этой программе
Wolfram Mathematica – это программная система со встроенными библиотеками для различных областей технических вычислений, обеспечивающая возможности машинного обучения, статистики, символьных вычислений, манипулирования данными, сетевого анализа, анализа временных рядов, обработки естественного языка, оптимизации, построения графиков функций и работы с различными типами данных, реализации алгоритмов, создания пользовательских интерфейсов и взаимодействия с программами, написанными на других языках программирования. Она была разработана Стивеном Вольфрамом и поддерживается компанией Wolfram Research из Шампейна, штат Иллинойс. Wolfram Language – это язык программирования, используемый в Mathematica. Mathematica 1.0 была выпущена 23 июня 1988 года в Шампейне, штат Иллинойс, и Санта-Кларе, штат Калифорния. Содержание
Интерфейс ноутбука
Mathematica разделена на две части: ядро и интерфейс. Ядро интерпретирует выражения (код Wolfram Language) и возвращает результаты, которые затем могут быть отображены интерфейсом. Оригинальный интерфейс, разработанный Теодором Грей в 1988 году, представляет собой интерфейс блокнота и позволяет создавать и редактировать документы, которые могут содержать код, обычный текст, изображения и графику. Альтернативой интерфейсу Mathematica является Wolfram Workbench — интегрированная среда разработки (IDE) на основе Eclipse, представленная в 2006 году. Она предоставляет инструменты разработки кода для Mathematica, включая управление версиями, отладку, профилирование и тестирование. Также существует плагин для IDE на основе IntelliJ IDEA для работы с кодом Wolfram Language, который, помимо подсветки синтаксиса, может анализировать и автоматически дополнять локальные переменные и определенные функции. Ядро Mathematica также включает в себя интерфейс командной строки. Другие интерфейсы включают JMath, основанный на GNU Readline, и WolframScript, который запускает автономные программы Mathematica (с аргументами) из командной строки UNIX. Расширения файлов Mathematica — nb для файлов блокнотов и m для файлов конфигурации. Mathematica разработана с обеспечением полной стабильности и обратной совместимости с предыдущими версиями.
Высокопроизводительные вычисления
Возможности высокопроизводительных вычислений были расширены с введением упакованных массивов в версии 4 (1999) и разреженных матриц (версия 5, 2003), а также за счет использования библиотеки GNU Multiple Precision Arithmetic Library для вычислений с высокой точностью. В версии 5.2 (2005) была добавлена автоматическая многопоточность при выполнении вычислений на многоядерных компьютерах. Этот релиз включал оптимизированные библиотеки, специфичные для конкретных процессоров. Кроме того, Mathematica поддерживается сторонним специализированным аппаратным обеспечением для ускорения, таким как ClearSpeed. В 2002 году была представлена gridMathematica, обеспечивающая параллельное программирование на уровне пользователя на гетерогенных кластерах и многопроцессорных системах, а в 2008 году технология параллельных вычислений была включена во все лицензии Mathematica, включая поддержку технологий для вычислительных сетей, таких как Windows HPC Server 2008, Microsoft Compute Cluster Server и Sun Grid. Поддержка аппаратного обеспечения CUDA и OpenCL GPU была добавлена в 2010 году.
Расширения
По состоянию на версию 13, в Wolfram Language насчитывается 6 051 встроенная функция и символ. Стивен Вольфрам объявил о запуске Wolfram Function Repository в июне 2019 года, предоставив возможность сообществу пользователей Wolfram Language расширять функциональность языка. К моменту анонса выпуска Mathematica 13 Стивеном Вольфрамом, в качестве Resource Functions было добавлено 2259 функций, предоставленных пользователями. Помимо Wolfram Function Repository, существует Wolfram Data Repository с вычислимыми данными и Wolfram Neural Net Repository для машинного обучения. Wolfram Mathematica служит основой для пакета Combinatorica, который добавляет в программу функциональность дискретной математики в области комбинаторики и теории графов.
Подключения к другим приложениям, языкам программирования и сервисам
Связь с другими приложениями может быть осуществлена с использованием протокола Wolfram Symbolic Transfer Protocol (WSTP). Он обеспечивает связь между ядром Wolfram Mathematica и интерфейсом пользователя, а также предоставляет общий интерфейс для взаимодействия ядра с другими приложениями. Wolfram Research бесплатно распространяет комплект разработчика для подключения приложений, написанных на языке C, к ядру Mathematica через WSTP с помощью J/Link – Java-программы, которая позволяет Mathematica выполнять вычисления по запросу. Аналогичная функциональность достигается с помощью .NET/Link, но с использованием программ на .NET вместо Java. Mathematica поддерживает подключение на языках Haskell, AppleScript, Racket, Visual Basic, Python и Clojure. Mathematica поддерживает генерацию и выполнение моделей Modelica для системного моделирования и взаимодействует с Wolfram System Modeler. Доступны также подключения к различным сторонним программным пакетам и API. Mathematica может собирать данные в реальном времени из различных источников, а также читать и записывать данные в публичные блокчейны (Bitcoin, Ethereum и ARK). Поддерживается импорт и экспорт более 220 форматов данных, изображений, видео, звука, систем автоматизированного проектирования (CAD), географических информационных систем (GIS), документов и биомедицинских данных. В 2019 году была добавлена поддержка компиляции кода Wolfram Language в LLVM. В версии 12.3 языка Wolfram добавлена поддержка Arduino.
Вычислимые данные
Mathematica также интегрирована с Wolfram Alpha, онлайн-сервисом, предоставляющим дополнительные данные, часть которых обновляется в режиме реального времени для пользователей, работающих в Mathematica при подключении к Интернету. Эти наборы данных включают астрономические, химические, геополитические, лингвистические, биомедицинские, авиационные и метеорологические данные, а также математические данные (например, узлы и многогранники).
Прием
В 1989 году журнал BYTE включил Mathematica в число лауреатов премии BYTE Awards, отметив, что это "еще одно революционное приложение для Macintosh, которое может помочь вам освоить алгебру и математический анализ, которые казались непостижимыми по учебнику". Mathematica критиковали за закрытый исходный код. Компания Wolfram Research утверждает, что сохранение Mathematica с закрытым исходным кодом необходимо для её бизнес-модели и обеспечения дальнейшего развития программного обеспечения.