Современные СКМ, включая Maple, позволяют готовить и распечатывать документы высочайшего полиграфического качества, затрачивая на это куда меньше времени, чем популярные у математиков редакторы класса ТеХ или LaTeX. Впрочем, системы Maple и Mathematica прекрасно сожительствуют с этими редакторами и позволяют представлять данные в характерном для них формате.
Центральное место в структуре Maple занимает ядро системы, которое состоит из множества заранее откомпилированных функций и процедур, представленных в машинных кодах и обеспечивающих достаточно представительный набор встроенных функций и операторов системы. Спецификой СКА является наличие в ядре множества правил преобразований математических выражений и функций и их определений в символьном виде.
Ядро СКМ тщательно оптимизируется, поскольку от этого зависит скорость вычислений, обеспечиваемых той или иной системой компьютерной математики. Этому способствует и компиляция ядра. Доступ в ядро пользователя для его модификации, как правило, исключен. Объем ядра достигает нескольких мегабайт. Пишется ядро на языке реализации системы — в Maple это язык С.
Поставка ядра в исходных кодах (на языке реализации) не практикуется. Нередко улучшенные алгоритмы вычислений ядра являются ноу-хау разработчиков и относятся к разряду секретных данных. Пожалуй, это один из главных недостатков СКМ.
Интерфейс это совокупность аппаратных и программных средства для работы ПК с внешним оборудованием и пользователем. Интерфейс пользователя СКА в настоящее время почти исключительно является графическим и сокращенно именуется GUI (Graphics User Interface). Она наследует принципы построения интерфейса в операционных системах класса Windows.
Функции и процедуры (в понятии языков программирования), включенные в откомпилированное ядро, выполняются предельно быстро. С этой точки зрения в ядро было бы выгодно включать как можно больше вычислительных средств. Однако это невольно приводит к замедлению поиска нужных средств из-за возрастания их числа, увеличению времен загрузки ядра и поиска нужных его средств и к другим нежелательным последствиям. Поэтому объем ядра ограничивают, но к нему добавляют библиотеки более редких процедур и функций, к которым обращается пользователь, если в ядре не обнаружена нужная процедура или функция.
Кардинальное расширение возможностей систем и их адаптация к решаемым конкретными пользователями задачам достигается за счет пакетов расширения систем (packages). Эти пакеты, как правило, пишутся на собственном языке программирования той или иной системы, что делает возможным их подготовку как разработчиками СКМ, так и обычными пользователями.
Справочная система (или просто справка) обеспечивает получение оперативных справок по любым вопросам работы с системами компьютерной математики с примерами такой работы. Она содержит и многочисленный справочный материал — математические и физические константы и таблицы, формулы для нахождения производных и интегралов, алгебраические преобразования и т.д. Доступ к информации в справке гипертекстовый.
Ядро, библиотеки, пакеты расширения и справка в Maple аккумулируют знания в области математики, накопленные за тысячелетия ее развития. К сожалению, справка, самоучители и словарь семантических терминов в Maple 9.5/10 написаны на английском языке, что затрудняет их использование нашими пользователями.
1.1.3. Язык программирования систем класса Maple
Система Maple, интегрирует в себе три языка:
• входной или язык общения с системой;
• реализации;
• программирования.
Входной язык является интерпретирующим языком сверхвысокого уровня, ориентированным на решение математических задач практически любой сложности в интерактивном (диалоговом) режиме. Он служит для задания системе вопросов или, говоря иначе, задания входных данных для последующей их обработки. Язык имеет большое число заранее определенных математических и графических функций, а также обширную библиотеку дополнительных функций, подключаемую по мере необходимости.
В состав СКА входит также язык программирования. Так, Maple имеет свой язык процедурного программирования — Maple-язык [51, 52]. Этот язык содержит вполне традиционные средства структурирования программ. Он описан в Главе 10 и включает в себя все команды и функции входного языка в том числе графические.