Компьютерра, 2006 № 16 (636) | страница 49
Математика — наука точная. Все свойства и взаимосвязи математических объектов четко определены или доказываются при помощи строгих логических рассуждений. Axiom является единственной САВ, которая последовательно реализует данный подход на уровне компьютерной программы. Для этого язык Axiom сделан строго типизированным. Концепция строгой типизации в языках программирования хорошо известна, но в Axiom это выливается в нечто необычное — типы языка представляют собой типы математических объектов (числа, полиномы, ряды и т. д.). Axiom «знает» около тысячи иерархически организованных математических категорий и типов. Строгая математическая типизация Axiom уникальна, ничего подобного нет ни в одной другой системе аналитических вычислений.
С документацией у Axiom тоже все обстоит отлично. Имеется интерактивная гипертекстовая справка и книга, детально описывающая все аспекты работы с Axiom. Эта книга была даже издана, а новая, существенно расширенная версия свободно доступна на сайте проекта в формате PDF. К сожалению, вся документация только на английском языке.
Есть еще один элемент свободы — свобода выбора платформы. Особенно в этом отношении хороша Maxima. Она успешно работает на всех современных операционных системах: Windows (готовые сборки доступны на сайте проекта), Linux и UNIX, Mac OS и даже на КПК под управлением Windows CE/Mobile. Переносимость Axiom чуть хуже: система работает под Linux, UNIX, а под Windows пока не работает построение графиков.
Главную роль в переносимости Maxima и Axiom играет язык Lisp, на котором они написаны. Исторически Lisp имеет очень большое количество несовместимых друг с другом диалектов, но сейчас эпоха разнообразия закончилась, поскольку появился официальный стандарт ANSI Common Lisp. Maxima была модифицирована в соответствии с этим стандартом, и в результате она может работать под управлением разных реализаций Common Lisp, как свободных, так и проприетарных. Axiom пока работает только с GCL (GNU Common Lisp), но принципиальных сложностей с переносом на другие Common Lisp системы не существует.
До сих пор мы говорили о математических возможностях Axiom и Maxima.Но есть еще один важный аспект — взаимодействие с программой. Традиционно все системы аналитических вычислений, включая Axiom, Maxima, а также Maple и Mathematica, имеют простой текстовый интерфейс. И это создает определенные проблемы — как отобразить в удобочитаемом виде математические выражения со всеми их радикалами, скобками и знаками интегралов? Приходится прибегать к своеобразному ASCII Art. Пример того, что получается, представлен на рис. 5, где изображен результат вычисления интеграла и произведения в системе Axiom. Довольно неплохо, но вряд ли вполне соответствует современным потребностям. Поэтому все системы аналитических вычислений имеют графические пользовательские оболочки, способные представить данные красиво и облегчающие взаимодействие с пользователем.