Идеология систем Mathematica
Идеология систем Mathematica базируется на двух, казалось бы, взаимно исключающих друг друга положениях:
-
решение большинства математических задач в системе может производиться в диалоговом режиме без традиционного программирования;
-
входной язык общения системы является одним из самых мощных языков функционального программирования, ориентированных на решение различных задач (в том числе математических).
Противоречивость этих положений кажущаяся. На самом деле Mathematica — типичная система программирования с проблемно-ориентированным языком программирования сверхвысокого уровня
.
Его можно отнести к классу интерпретаторов.
Как известно, языки такого типа последовательно анализируют (интерпретируют) каждое выражение и тут же исполняют его. Таким образом, работа с системой происходит явно в диалоговом режиме
—
пользователь задает системе задание, а она тут же выполняет его. Разумеется, Mathematica содержит достаточный набор управляющих структур для создания условных выражений, ветвления в программах, циклов и т. д.
На первый взгляд может показаться, что система ведет диалог на куда более примитивном уровне, чем хорошо известный язык программирования Бейсик (тоже относящийся к интерпретирующему типу). И в самом деле, работа с системой Mathematica напоминает работу с Бейсиком в режиме непосредственного исполнения команд — в ответ на каждый вопрос тут же следует результат вычислений. Более того, сохранился такой архаизм (впрочем, при необходимости отключаемый), как нумерация строк (ячеек).
Однако первое впечатление часто бывает обманчивым. Помимо того что Mathematica даже в ходе такого элементарного диалога предоставляет пользователю средства сверхвысокого уровня (например, аналитическое вычисление производных или интегралов, что Бейсику абсолютно недоступно), система имеет все возможности для создания практически любых управляющих
структур
,
организации ввода/вывода, работы с системными функциями, обслуживания любых периферийных устройств и т. д. Другое дело, что рядовому пользователю эти средства программирования могут и не понадобиться — его вполне удовлетворят встроенные математические функции системы, поражающие своим обилием и многообразием даже опытных математиков.
Можно сказать, что для решения математических задач система содержит готовые рецепты почти на любой «вкус и цвет». Однако с помощью пакетов расширения (Add-ons) имеется возможность постоянно готовить новые «блюда», подстраивая «кухню» (то есть возможности) системы под запросы любого ее пользователя.
К идеологии систем Mathematica надо отнести и комплексную визуализацию всех этапов вычислений, начиная с легко понятного и естественного ввода текстов и формул и кончая наглядным выводом результатов в разнообразных формах представления. Особое место при этом играет полная визуализация результатов вычислений, включающая в себя построение огромного числа графиков самого различного вида, в том числе средства анимации изображений и синтеза звуков.
Содержание раздела