ОБЧИСЛЮВАЛЬНІ СИСТЕМИ
УДК 618.086
В.П. КЛИМЕНКО, А.Л. ЛЯХОВ, Д.Н. ГВОЗДИК
СОВРЕМЕННЫЕ ОСОБЕННОСТИ РАЗВИТИЯ СИСТЕМ КОМПЬЮТЕРНОЙ АЛГЕБРЫ
Анотація. Дано огляд та аналіз тенденцій розвитку систем комп'ютерної алгебри за останнє десятиріччя. Показано, що основними тенденціями на сучасному етапі є подальший розвиток СКА як універсальних систем розв ’язування прикладних задач чисельно-аналітичними методами, а також інтелектуалізація, спрямована на автоматизацію процесу розв ’язування складних задач. Новою тенденцією є інтелектуалізація етапу розробки програмного забезпечення і перетворення СКА в інтегровані середовища розробника для автоматизації процесу розв ’язування складних теоретичних і прикладних задач.
Ключові слова: комп ’ютерна алгебра, АНАЛІТИК, інтелектуальні системи.
Аннотация. Представлены обзор и анализ тенденций развития систем компьютерной алгебры за последнее десятилетие. Показано, что основныыми тенденциями на современном этапе являются дальнейшее развитие СКА как универсальных систем решения прикладных задач численноаналитическими методами, а также интеллектуализация, направленная на автоматизацию процесса решения сложных задач. Новой тенденцией является интеллектуализация этапа разработки программного обеспечения и превращение СКА в интегрированные среды разработчика для автоматизации процесса решения сложных теоретических и прикладных задач.
Ключевые слова: компьютерная алгебра, АНАЛИТИК, интеллектуальные системы.
Abstract. A review and analysis of major trends in the development of computer algebra systems (CAS) for the past decade is given. It is shown that the major trends at present are further development of CAS as a universal system of solving applied problems using numerical-analytical methods as well as intellec-tualization aimed at problem solving automation. A new trend in the computer algebra systems is intellec-tualization of software development phase and transformation of CAS into integrated developer’s environment - to automate the process of solving complex problems.
Keywords: ^mputer algebra, ANALITIC, intellectual systems.
1. Введение
В [1-4] дан обзор предыдущих этапов развития систем компьютерной алгебры (СКА) и выделены тенденции, получившие качественное развитие к 2GGG году и ставшие основой для дальнейшего повышения уровня современного математического обеспечения численно-аналитических методов.
В то время разработка языков СКА осуществлялась, в основном, двумя путями. Экстенсивное развитие: универсализация и расширение возможностей, предоставляемых этими системами, за счет увеличения количества стандартных функций в библиотеках систем и реализации новых алгоритмов (MAPLE, MATHEMATICA, REDUCE, AXIOM, MACSYMA).
Интеллектуализация: появление и совершенствование средств для создания программ с элементами интеллектуального поведения (MAPLE, MATHEMATICA, AXIOM, MAPLE, АНАЛИТИК).
Стремительное развитие компьютерной техники и СКА в последнее десятилетие требует нового осмысления связи между достигнутым уровнем сложности области применимости компьютерной алгебры и направлениями дальнейшей эволюции СКА. Требуют
внимания и новые тенденции в развитии входных языков СКА, тенденции в развитии графических интерфейсов СКА, которые определяются изменившимися представлениями о профиле целевого пользователя.
Данная работа посвящена анализу состояния современных СКА, выявлению новых тенденций в их развитии. Для анализа используются популярные и систематически обновляющиеся системы компьютерной алгебры AXIOM [5], MAXIMA 5.17 [б], REDUCE-i686 [7], MAPLE 14 [S], XCAS G.9.G [9], MATLAB R2G1Gb [1G] и MATHEMATICA 7-8 [11], а также новейшая версия СКА семейства АНАЛИТИК [12, 13].
2. Анализ тенденций в развитии СКА, сложившихся к 2GGG году
В [4] дан анализ развития СКА вплоть до 2GGG года и выявлены основные направления дальнейшего развития компьютерной алгебры. Правильность сделанных выводов в целом подтвердилась. Далее приведен список тенденций из обзора [4] и их анализ на современном этапе развития СКА:
1. Продуктивность интерактивного решения задач с ростом сложности и объема данных быстро падает. Проблема частично решается экстенсивным развитием библиотек стандартных функций СКА.
За прошедшие десять лет системы AXIOM, MAXIMA, REDUCE, MAPLE, XCAS, MATLAB и MATHEMATICA по-прежнему развивались экстенсивно, улучшая алгоритмы реализации уже существующих и добавляя большое количество все новых и новых функций. На данный момент такие системы, как MATLAB, MATHEMATICA, MAPLE, содержат огромнейшее число разнообразных функций из самых различных областей знаний. К примеру, в последнюю версию MATHEMATICA 8, по сравнению с предыдущей седьмой версией, добавлено более пятисот функций [11]. Последние релизы этих коммерческих систем занимают не одну сотню мегабайт и весьма не дешевые (академическая лицензия MAPLE 14 стоит 1245$ [S]). Но, как правило, конечный пользователь интересуется лишь небольшим подмножеством из функций универсальной системы и вынужден оплачивать многое, чем, скорее всего, никогда не будет пользоваться.
2. Альтернативным путем является повышение уровня искусственного интеллекта СКА, что выражается в развитии обобщенных типов данных, процедур распознавания и преобразования структурных и функциональных свойств объектов.
Интеллектуализация является одним из перспективных путей повышения продуктивности решения сложных прикладных задач [14, 15]. Анализ показал, что лишь отдельные СКА развивались в этом направлении.
Такие системы, как MAXIMA, REDUCE, XCAS и др., по-прежнему ориентируются на интерактивный режим работы, продуктивность которого низка при решении сложных задач [14], и за прошедшие десять лет не сделали заметных шагов в направлении интеллектуализации.
Можно утверждать, что эти системы и им подобные [1-4] на данном этапе развития компьютерной алгебры могут использоваться лишь для решения несложных задач и при обучении компьютерной алгебре и их можно отнести к программному обеспечению численно-аналитических методов начального уровня.
СКА AXIOM по-прежнему является лидером в реализации конструктивного подхода к интеллектуализации [14, 1б], и это несмотря на то, что в последние десятилетия система по ряду объективных причин не развивается. Остается лишь сожалеть и надеяться, что появившаяся адаптация полновесной Linux-версии под Windows [5] привлечет внимание широких масс пользователей СКА и инвесторов к этому уникальному программному продукту.
Развитие СКА АНАЛИТИК продолжается альтернативным путем - путем повышения уровня искусственного интеллекта СКА на основе аналитического подхода [14-1б],
что выражается в развитии обобщенных типов данных, процедур распознавания и преобразования структурных и функциональных свойств объектов, а также автоматизации аппарата управления преобразованиями.
MATHEMATICA, MAPLE также получили некоторое развитие в этом ключе в последние десять лет. В ядре СКА MAPLE появилась функция распознавания непрерывности функции на отрезке - iscont, которая на данный момент отсутствует в других системах. Но в остальном эти системы по уровню интеллекта входных языков остались практически на том же уровне, что и в 2GGG году.
В предыдущие десятилетия значительный интерес представляла собой небольшая, но тщательно реализованная СКА MuPAD, обладавшая средствами интеллектуализации, уровень развития которых даже превосходил уровень MAPLE (благодаря наличию аппарата анализа иерархических структур). В настоящее время по целому ряду причин как организационного, так и финансового порядка, MuPAD прекратила свое существование как самостоятельная система. Вместе с тем ее ядро продолжает существовать как компонента MATLAB, которую теперь на полном основании можно считать системой компьютерной математики, в том числе и алгебры [http://www.mathworks.com/discovery/mupad.html].
Таким образом, системы MATLAB, MATHEMATICA, MAPLE и новейшую версию АНАЛИТИК-2G1G можно отнести к системам продвинутого уровня, так как они позволяют решать задачи более высокого уровня сложности.
3. Основным объектом СКА должно быть множество выражений, сцепленное некоторым отношением зависимости на множестве имен объектов решаемой задачи. Процедуры хорошо развитого входного языка СКА должны быть определены над объектами такой общности.
В этом направлении в системах AXIOM, MAXIMA, REDUCE, MAPLE, XCAS, MATLAB и MATHEMATICA за прошедшие десять лет ничего не изменилось: основным объектом языка по-прежнему является отделенное выражение, и все процедуры языка каждой системы определены над такими объектами. Это можно объяснить тем, что одним из основных факторов развития данных коммерческих систем является конъюнктура рынка. Многочисленные прикладные пакеты расширения универсальных СКА, разработанные на основе прежних представлений об объекте языка, в настоящее время удовлетворяют спрос.
Вместе с тем анализ трудностей в применении систем компьютерной алгебры приводит к пониманию, что такие представления не соответствуют действительной структуре данных, представляющих собой целостный объект.
Таким образом, в развитии СКА в настоящее время, кроме стремительного роста функционального наполнения и ухудшения квалификационных признаков, что и наблюдается от релиза к релизу, причиной падения продуктивности применения СКА являются представления об объекте, лежащие в основе реализации многих современных языков систем компьютерной алгебры.
Осознание этой проблемы разработчиками коммерческих систем продвинутого уровня проявляется в том, что в этих системах в настоящее время стали появляться некоторые средства для работы со связными выражениями, однако разработка этих средств ведется исходя из конъюнктуры приложений, не системно, а путем адаптации существующего инструментария. Эта тенденция рассматривается ниже.
СКА АНАЛИТИК развивается на основе представлений об объекте языка как о комплексе - множестве выражений, сцепленном некоторым отношением зависимости на совокупности имен объектов решаемой задачи [1б]. Все процедуры входного языка определены над таким комплексом.
4. При анализе современных СКА следует выделять наборы средств:
• средства именования и описания свойств объектов;
• процедуры распознавания свойств;
• преобразующие процедуры;
• процедуры управления преобразованиями.
Во всех СКА за прошедшие десять лет эти группы средств получили значительное развитие. В системах AXIOM, MAXIMA, REDUCE, XCAS, MATLAB и MATHEMATICA развивались в основном преобразующие процедуры, в СКА MAPLE-преобразующие процедуры и процедуры распознавания свойств. Процедуры управления преобразованиями и средства именования и описания свойств объектов во всех этих системах практически не изменились. Аппарат преобразований состоит из процедур, автоматически выполняющих лишь некоторый канонический набор, и из процедур, предполагающих интерактивное управление процессом решения, в котором роль распознавателя поручена человеку. Объектом управления преобразованиями может быть лишь участок программы или отделенное выражение.
Представление об объекте языка как об отделенном выражении приводит к тому, что важнейший аппарат управления подстановками в сложных аналитических преобразованиях практически отсутствует. По умолчанию выполняются все возможные подстановки. Управление сводится к локальной или глобальной отмене всех возможных подстановок.
Доминантой развития СКА семейства АНАЛИТИК остаются совершенствование и развитие средств именования и описания свойств, процедур распознавания свойств и управления преобразованиями на основе представлений об объекте языка, описанных выше. Получили дальнейшее развитие аппарат именования на основе пространственных представлений об объекте языка (функция КООРДИНАТЫ), а также аппарат преобразований, на основе так называемой пары «распознаватель-преобразователь» [15, 1б]. Объектом управления преобразованиями, начиная с АНАЛИТИК-2GGG, может быть связное множество выражений, отделенное выражение или его любая структурная часть, а также программа или ее структурная часть (функции ВП, КООРДИНАТЫ [17-19]).
5. Увеличится роль автоматических методов, что потребует дальнейшего повышения уровня искусственного интеллекта СКА за счет усиления аппарата распознавания и управления, использования комплекса в качестве основного объекта при описании моделей научных и прикладных задач.
В последние десять лет быстродействие и память компьютеров возросли в десятки раз, что стимулирует пользователей переходить к решению задач с немыслимыми ранее объемами и сложностью данных.
Это и в значительной мере конъюнктура рынка вызвали появление в системах MATLAB, MATHEMATICA, MAPLE средств для работы с базами данных, интеграции со специализированным программным обеспечением для обработки больших объемов данных.
В СКА от версии к версии совершенствуется аппарат распознавания. В СКА MAPLE, например, за этот период появились и усовершенствовались такие универсальные и специализированные средства распознавания, как уникальные распознаватели определения непрерывности функций (iscont, discount и подобные), и развились уже существующие средства распознавания по шаблону (match, patmatch и подобные). Однако эти средства по-прежнему не рассматриваются разработчиками как отдельный аппарат языка, а их разработка по-прежнему ведется исходя из конъюнктуры приложений.
По этим же причинам в этих системах нет средств автоматического управления преобразованиями на основе результатов распознавания. Таким образом, ведущие современные СКА и в настоящее время ориентированы на решение сложных задач в интерактивном режиме, что требует участия человека для анализа, распознавания свойств данных
и выбора путей преобразований, что ведет к значительным потерям продуктивности процесса решения [14, 16].
Языки семейства АНАЛИТИК всегда рассматривались школой академика В.М. Глушкова [20] как одно из направлений искусственного интеллекта и изначально предназначались для создания автоматических программ. Как установлено [14-16, 20], способ представления данных, аппарат распознавания и управления преобразованиями СКА АНАЛИТИК обладает достаточной полнотой для создания автоматических программ.
В качестве объекта СКА АНАЛИТИК выступает комплекс, что позволяет создавать принципиально новые технологии автоматического решения задач («вычислять не подставляя» и др. [16]).
3. Тенденции в развитии СКА на современном этапе
Системы компьютерной алгебры являются средствами автоматизации численноаналитического решения прикладных задач.
Стимулом для развития СКА как средств автоматизации является сложность прикладных задач компьютерной алгебры [4, 14]. При этом понятие сложности задачи отражает несоответствие уровня развития СКА внешним и внутренним условиям их применения.
3.1. GRID-вычисления
Одним из современных воплощений сложности прикладных задач по-прежнему являются огромные, даже по отношению к объемам памяти современных компьютеров, объемы данных. Продуктивное решение таких задач за приемлемое время трудно реализовать с помощью вычислительных возможностей одного процессора или одного многопроцессорного компьютера [21, 22].
Современная тенденция в компьютерной математике, сформировавшаяся в последнее десятилетие и сейчас активно развивающаяся, - распределенные вычислительные системы (например, GRID-системы). Распределение вычислений в настоящее время реализуется на основе представлений о структуре данных, как о совокупности отделенных выражений, что позволяет эффективно использовать доступные вычислительные ресурсы.
GRID-система, как известно, включает в себя сеть данных (data GRID) и вычислительную сеть (computational GRID), распараллеливающую процессы обработки данных.
Инструментарий для организации параллельных вычислений появляется в СКА, начиная с 2006 года. В настоящее время такие СКА, как MAPLE и MATHEMATICA, оснащены целым рядом возможностей для организации GRID-вычислений [21, 22]. В остальных рассматриваемых СКА эта тенденция не имеет программной реализации.
В СКА MATHEMATICA для применения параллельных вычислений необходимо использовать специальные функции, являющиеся аналогами уже существующих, но реализованные на основе параллельных алгоритмов, что, по сути, является продолжением экстенсивного развития.
Инструментарий для GRID-вычислений в MAPLE и MATHEMATICA реализован на основе представления о данных как о совокупности отделенных выражений.
Такие представления о структуре данных являются одной из причин падения продуктивности при решении сложных задач современными СКА [4, 14]. Более того, применение известных алгоритмов распараллеливания в аналитических преобразованиях может оказаться непродуктивным при решении сложных задач, поскольку структура символьных данных, как правило, не является древовидной. Представляется, что распараллеливание символьных вычислений можно выполнять исходя из, например, отношения зависимости на множестве данных [16].
АНАЛИТИК, начиная с версии АНАЛИТИК-93 [17], реализуется на основе представлений о структуре данных как о целостном объекте - многоуровневой иерархической структуре и ее обобщении, комплексе. Это позволяет естественным образом реализовать возможность параллельных символьных вычислений на качественно новом уровне, так как основной объект языка АНАЛИТИК, по сути, является обобщением сети данных. Теоретическим исследованиям возможностей, способов организации и эффективности вычислений на основе таких представлений посвящены работы [16, 23, 24]. Реализация параллельных вычислений будет новым этапом естественного развития СКА этого семейства.
В связи с GRID-вычислениями очень интересной является тенденция последних лет - облачные вычисления (cloud computing) [25] - технология распределённой обработки данных, в которой компьютерные ресурсы и мощности предоставляются пользователю как интернет-сервис. Основное отличие этой технологии от GRID-систем состоит в том, что GRID-система обычно обеспечивает постоянное использование всех имеющихся ресурсов, а облачные вычисления характеризуются неравномерностью запроса ресурсов со стороны клиента.
Облачные технологии могут представлять определенный интерес для сложных численно-аналитических вычислений, поскольку позволяют организовать сети для распределенных вычислений с гораздо меньшими финансовыми затратами, чем необходимые для построения GRID-кластера [25].
Вопросы применимости и целесообразности облачных вычислений для сложных распределенных вычислений в компьютерной алгебре в настоящее время совершенно не исследованы. Вместе с тем, учитывая пристальное внимание со стороны Microsoft, Google и других гигантов рынка программного обеспечения к этим технологиям и объемы финансирования, можно предположить, что, скорее всего, в последующие пять-десять лет они окажут влияние и на область компьютерной алгебры, и сложных вычислений.
3.2. Развитие Интернет и СКА
За последние десять лет Интернет в своем развитии прошел очень большой путь и стал одной из продуктивных сил прогресса. За эти годы на порядок возросла скорость доступа пользователей к сети, значительно развились технологии создания интерактивных динамических web-порталов и web-сервисов. Количество пользователей интернета сейчас составляет почти 2 000 000 000 [26].
Такое стремительное развитие сети неизбежно влияет на развитие компьютерной алгебры. Ведущие СКА обзавелись web-интерфейсами. У одних это просто возможность ознакомиться с системой, не покупая ее. У других - учебная версия системы для решения простых задач. Наиболее серьезным направлением представляется создание целых баз знаний и вычислительных алгоритмов, что является очередным шагом в развитии искусственного интеллекта СКА.
В качестве наиболее значительных Интернет-проектов в области компьютерной алгебры можно назвать проект Wolframalfa (http://www.wolframalpha.com/), который использует СКА MATHEMATICA, и проект по созданию системы компьютерной алгебры с открытым исходным кодом Sage (http://www.sagemath.org/).
Проект Wolframalfa был запущен 15 мая 2009 года и сейчас его аудитория, согласно данным статистики, насчитывает около 17 миллионов пользователей. О масштабах проекта может говорить то, что перед запуском проекта он уже насчитывал 6 миллионов строк исходного кода на языке СКА MATHEMATICA и после запуска он работал на 10 000 процессорах. При этом для работы была использована технология для параллельных вычислений, основанная на GRID-MATHEMATICA (технология для организации GRID-вычислений в СКА MATHEMATICA) [27].
Что касается проекта Sage, то задачей его является создание СКА с открытым исходным кодом, которая смогла бы составить конкуренцию современным коммерческим системам. В настоящее время имеется большое количество специализированного программного обеспечения численно-аналитических методов с открытым исходным кодом для решения задач из различных областей знаний. Основная идея проекта состоит в объединении всего этого специализированного математического ПО в единую систему с общим интерфейсом. Созданная таким путем система, с нашей точки зрения, сможет развиваться только экстенсивным путем наращивания объема функций из разных областей знаний.
Возможности этой системы в плане написания автоматических программ с интеллектуальным поведением также будут незначительными. Такой подход приведет еще и к тому, что, помимо всех лучших качеств используемого специализированного математического ПО, система приобретет и все худшие.
Идея создания СКА с открытым исходным кодом берет начало с системы REDUCE, до 90-х годов наиболее известной среди пользователей СКА (первая версия - начало 70-х годов). Особенностью этой системы, несмотря на небольшое быстродействие ЭВМ того времени, являлась открытость ядра, что, безусловно, способствовало ее популярности. Она распространялась вместе с исходными текстами, и это позволяло пользователям с высокой квалификацией не только использовать стандартные библиотеки процедур, но и изменять и дописывать отдельные фрагменты и программы.
Такая идея «открытости», поддержанная существованием версий для многих типов компьютеров и удачным маркетингом (первая версия системы распространялась автором бесплатно) вместе с налаженными взаимодействием и обменом информацией между пользователями и авторами разработки, обусловила быструю эволюцию системы и создание большого количества проблемно-ориентированных версий системы и пакетов расширения. Сейчас СКА Maxima также является системой с открытым исходным кодом, и как раз ее составляющие были использованы при создании Sage как часть системы для символьных преобразований.
Реализация прежних версий СКА АНАЛИТИК [17-19] не позволяет создавать инструментарий для разработки web-приложений на их основе. Новая архитектура и реинжиниринг ядра, создание принципиально новых компонент [12, 13, 28, 29] являются основой для развития СКА АНАЛИТИК в этом направлении.
В частности, на базе новейшей реализации в настоящее время создается онлайн-версия СКА АНАЛИТИК-2010. Создание такой версии позволит оперативно решать целый круг задач. Предполагается использовать ее для оперативного выявления и устранения найденных ошибок и неточностей в процессе комплексного тестирования ядра СКА, а также начать работу по популяризации и ознакомлению с системой потенциальных пользователей системы и определению области применимости.
3.3. Интерфейс пользователя СКА и интеграция с другими системами
Расширение области применения компьютерной алгебры и повсеместное ее использование является причиной дальнейшей универсализации СКА, что тесно связано с развитием пользовательских интерфейсов СКА.
Пользовательские интерфейсы всех рассматриваемых СКА, за исключением АНАЛИТИК, ориентированы на интерактивное решение задач широкими массами пользователей: инженеров, научных работников, студентов и т.п., не являющихся профессиональными программистами. Системы AXIOM, MAXIMA, MAGMA [30], MuPAD (которая сейчас является частью MATLAB) [31], MAPLE и MATHEMATICA имеют развитый графический интерфейс, позволяющий работать со многими документами.
Универсализация СКА обуславливает тенденцию в упрощении графических интерфейсов для нужд пользователя, квалификация которого как программиста не превышает базового общеобразовательного курса по программированию.
Анализ современных СКА, с такой точки зрения, сводится к следующему.
СКА MAPLE [32] поставляет свою систему с такими версиями интерфейса:
1. MapleDos (версия интерфейса, представляющая собой командную строку в стиле MS-DOS и практически не обеспечивающая никаких удобств для пользователя, но является наиболее быстро работающей версией интерфейса).
2. Maple Classic Worksheet (классический рабочий лист СКА MAPLE, который долгое время был основным интерфейсом СКА вплоть до 10 версии. Предоставляет возможности для оформления документа, работы с графикой, ориентирован на интерактивный режим работы (результат работы введенной команды отображается непосредственно под блоком вычислений, в который она введена)).
3. Maple Smart Document Environment (появился, начиная с 10 версии, ориентирован на интерактивный режим, предоставляет широкие возможности для оформления рабочих листов, работы с графикой, формулами. Появилась возможность автозавершения кода после нажатия Ctrl+Space, что присуще средам разработки. Этой версии интерфейса характерно наличие очень большого количества инструментов, ориентированных на пользователя с базовым уровнем подготовки).
Средства отладки во всех перечисленных версиях интерфейса состоят исключительно из набора специальных команд, позволяющих запускать программу в режиме отладки. Визуальные средства отладки отсутствуют. Стоит отметить, что СКА MAPLE используется технология собственной разработки для отображения формульных математических выражений. В последних версиях также появилась панель для распознавания символов, введенных от руки, для быстрого поиска нужной команды или символа.
Интерфейс СКА MATHEMATICA [33] строится из нескольких базовых понятий: Тетрадь (Notebooks), Ячейка (Cell) и Палитра (Palletes). Тетрадью называется файл, с которым работает пользователь. В нем создаются и вычисляются формулы, строятся графики и таблицы. При желании, в тетради можно даже проиграть звуковой файл или фильм. Тетрадь состоит из ячеек. Г рубо ячейку можно сравнить с параграфом в текстовом редакторе. Вся информация, которая есть в тетради, хранится в ее ячейках. Если в пустом новом файле набрать хотя бы один символ, MATHEMATICA создаст для него ячейку. Ячейка также является минимальной единицей, которую можно вычислить. То есть, если в ячейке есть две формулы, вычислить их раздельно не получится. Все ячейки можно разделить на три типа:
• ячейки ввода - в них задаются команды (формулы), которые будут вычислены;
• ячейки результата - в них MATHEMATICA выводит результат вычислений;
• другие ячейки - ячейки с текстом, заголовки и все остальное, что вводит пользователь и вычислять не надо (можно было бы назвать их невычисляемые ячейки).
Любые ячейки можно объединять и разбивать с помощью команд меню Cell: Divide Cell (разбить ячейку) и Merge Cells (объединить ячейки). Для быстрого доступа к функциям, разработчики MATHEMATICA ввели специальные типы окон, которые называются палитрами. Палитры содержат окна с кнопками, которые выполняют действия. Действия могут быть совершенно различными: от добавления греческой буквы, до раскрытия скобок в алгебраическом выражении. Различные палитры доступны через меню File-Palletes. Ввод данных осуществляется в ячейки.
СКА поддерживает кириллицу и греческие буквы наравне с английским алфавитом. Можно смело называть переменные русскими буквами, так же, как и греческими. В то же время идентификаторы различаются по регистру, т.е. переменная A не то же, что переменная. Полный список всех символов, которые знает MATHEMATICA, можно найти на па-
литре Complete Characters. Чтобы ввести символ, нужно нажать на кнопку с его изображением. Wolfram MATHEMATICA имеет развитые средства форматирования текста. С помощью их можно разбивать тетрадь на главы и разделы, вводить поясняющий текст и т. д. Обычно стиль задается всей ячейке целиком. Также есть возможность использовать такое форматирование как курсив и полужирное начертание внутри ячейки. Помимо ячеек, стили можно задать всей тетради. Интерфейс MATHEMATICA также имеет развитые средства для работы с графикой, ориентирован на интерактивное решение задач.
Интерфейсы других рассматриваемых систем во многом схожи с интерфейсами MAPLE и MATHEMATICA, но предоставляют пользователю значительно меньше возможностей.
В целом, можно сделать вывод, что интерфейсы этих СКА последнее время развиваются также исходя из конъюнктуры рынка, основные изменения были призваны уменьшить необходимый уровень пользователя для начала работы с системой. Такой подход к развитию интерфейса пользователя уходит своими корнями в тенденцию к универсализации СКА. В ее рамках основной задачей было привлечь наибольшее количество пользователей к работе с системой.
К настоящему времени эта цель была достигнута. Системы компьютерной алгебры используются в очень многих областях, включая как область инженерных и теоретических расчетов, математического моделирования, так и такие области, как анализ звука и изображений.
Еще одной тенденцией в развитии СКА последнего десятилетия является развитие в направлении интеграции с другими системами компьютерной алгебры и другими приложениями. Это позволяет совместно использовать мощнейшие инструменты для численных, символьных вычислений и визуализации полученных результатов. Такой подход не только расширяет класс решаемых каждой системой задач, но и позволяет подобрать для них самые лучшие и наиболее подходящие инструментальные средства.
Интеграция СКА является одной из тенденций их развития на протяжении последних десятилетий [15, 20], однако современный этап развития имеет отличия.
Существенной представляется возможность решения сложных математических задач с использованием сразу нескольких СКА, что позволяет значительно уменьшить вероятность ошибки.
Системы MAPLE, MATHEMATICA и MATLAB могут быть интегрированы друг с другом. Инструменты для интеграции MAPLE и MATLAB описаны в [34, 35]. Аналогичные средства существуют и для объединения возможностей MAPLE и MATHEMATICA, MATHEMATICA и MATLAB.
Кроме интеграции математических систем друг с другом, существуют возможности для их интеграции с современными офисными средствами (текстовыми и табличными процессорами, средствами для создания презентаций), системами моделирования и CAD-системами. Так, средство MATLAB - Notebook [36] позволяет подготовить документы в текстовом процессоре Microsoft Word со вставками в виде документов MATLAB и результатов вычислений, представленных в численном, табличном или графическом виде. Таким образом, становится возможной подготовка «живых» электронных книг, в которых демонстрируемые примеры могут быть оперативно изменены. Это позволяет менять условия задач и тут же наблюдать изменение результатов их решения. В версии MATLAB 6 предусмотрены также средства для экспорта графики в слайды презентационной программы Microsoft PowerPoint.
СКА MAPLE может быть интегрирована в популярный мощный табличный процессор Microsoft Excel [37].
В MATLAB задачи расширения системы решаются с помощью специализированных пакетов расширения - наборов инструментов (ToolBox). Многие из них содержат спе-
циальные средства для интеграции с другими программными средствами (аудио-, видео-, мультимедиасистемами и т.п.), для поддержки объектно-ориентированного и визуального программирования.
Новые свойства системе MATLAB придала ее интеграция с программной системой SIMULINK, созданной для моделирования динамических систем и устройств, заданных в виде системы блоков. Базируясь на принципах визуально-ориентированного программирования, SIMULINK позволяет выполнять моделирование сложных устройств с высокой степенью достоверности и с прекрасными средствами представления результатов. Помимо естественной интеграции с пакетами расширения SYMBOLIC MATH и SIMULINK, MATLAB интегрируется еще с десятками мощных пакетов расширения.
За последние годы СКА MAPLE очень сильно продвинулась в направлении взаимодействия с CAD-системами, например, с SolidWorks [38], что обусловлено конъюнктурой рынка. Это позволяет визуализировать сложнейшие объекты, создавать чертежи на основании полученных результатов вычислений и многое другое.
Тенденция интеграции СКА с другими программными продуктами и друг с другом, несомненно, является большим шагом вперед для развития области применимости компьютерной алгебры и численно-аналитических методов. Так как ни одна СКА не является совершенной, то подход, который позволяет объединить возможности разных СКА и использовать сильнейшие стороны каждой из них при решении задач, является очень правильным, так как позволяет перейти к решению задач более высокой сложности.
В целом интерфейс современных СКА является очень удобным для решения задач, которые не требуют значительной работы по программированию, но при увеличении объема программы начинают возникать трудности, замедляющие процесс решения.
3.4. Интеграция СКА с базами данных
На протяжении всей истории компьютерной алгебры достижимый уровень сложности актуальных прикладных задач во многом определяется уровнем развития компьютерной техники [1-4, 14, 15, 20].
На рис. 1 в логарифмической шкале (по отношению к 1975 году) показана динамика изменения основных характеристик производительности компьютеров с этапа становления СКА как отдельного типа программного обеспечения и до наших дней.
В предыдущие годы и в последние десять лет, как показано выше, основными тенденциями в развитии СКА являются универсализация и взаимная интеграция.
Вместе с тем конъюнктура рынка и технические возможности современных компьютеров (рис. 1) привели к появлению новой тенденции - к внедрению в СКА средств для работы с базами данных.
Работу с базами данных поддерживают такие системы, как MAPLE, MATHEMATICA, MAGMA, MATLAB. В MAPLE и MATHEMATICA эти средства позволяют работать с любой системой управления базами данных, для которой существует JDBC-драйвер [39, 40].
Однако реализация взаимодействия с базами данных в указанных системах на сегодняшний день - всего лишь возможность выполнять запросы на языке SQL средствами СКА. Вопросы состава и полноты сигнатуры, которая разрабатывается и будет разрабатываться в языках этих систем, исследованы недостаточно. Таблицы, представления, связи баз данных, таким образом, пока не являются полноценными объектами языков этих СКА.
юоооо
Рис. 1. Рост основных характеристик производительности компьютеров
В последней версии СКА АНАЛИТИК [12, 13] также создается инструментарий для работы с базами данных на уровне входного языка, однако принципы разработки качественно иные. Базы данных по своей структуре вполне соответствуют определению комплекса [15], основного объекта языка АНАЛИТИК. Базисные средства именования, преобразований, управления преобразованиями и распознавания свойств языка АНАЛИТИК определены на объекте такой связности, и, следовательно, разработка средств для создания и работы с базами данных является естественным развитием языка, а не внедрением в язык некоторых средств для работы с системами управления баз данных, как в указанных выше системах.
Базы данных являются совокупностью связанных данных. Представляется, что эту тенденцию можно рассматривать как первое проявление более глубокой объективной необходимости переходить к новым представлениям об основном объекте СКА: от множества отделенных выражений к комплексу.
Такой шаг в развитии компьютерной алгебры, безусловно, является необходимым, поскольку позволяет решать гораздо более сложные прикладные задачи и проникать в те области применения, где ранее использование СКА было невозможным.
3.5. Развитие СКА как среды разработчика программного обеспечения ЧАМ
На каждом этапе развития компьютерной алгебры воплощением сложности прикладных задач является падение продуктивности их решения из-за несоответствия уровня развития СКА изменившимся внешним и внутренним условиям их применения и необходимость дальнейшей автоматизации процесса решения [15, 20].
Одним из основных внутренних условий применения является производительность компьютеров. Внешние условия применения определяются свойствами сложных актуальных задач.
Продуктивное решение сложных задач компьютерной алгебры возможно только при условии интеллектуализации процесса решения [15]. Интеллектуализация предполагает разработку программного обеспечения, существенной частью которого являются модули, выполняющие интеллектуальные функции.
Уровень развития компьютерной техники (рис. 1) на современном этапе позволяет переходить к решению задач с новым уровнем сложности. Однако внешние условия применения изменились таким образом, что, наряду с ростом объемов и сложности структуры данных, неизбежно стремительно растут объем и сложность кода программ, причем в значительной мере вследствие интеллектуализации.
Уже сейчас повсеместное применение компьютерной алгебры превращает разработку программного обеспечения символьных методов в индустрию с вытекающими из этого требованиями технологичности и рентабельности разработок.
Таким образом, изменившиеся условия применения предъявляют новые требования не только к СКА, но и к уровню подготовки их пользователей. Для работы в таких условиях необходимы профессиональные программисты.
Очень показательным в этом плане является то, что на рынке труда, наряду с вакансиями программистов-профессионалов С#, Java и др., сейчас уже нередко можно встретить вакансии программистов на MAPLE, MATHEMATICA, MATLAB.
Более того, с дальнейшим ростом сложности задач компьютерной алгебры в процессе развития науки и инженерии необходимость привлечения квалифицированных программистов в область компьютерной алгебры будет только увеличиваться.
Еще в 90-е годы прошедшего века, в период становления программирования как индустрии, стали появляться и к настоящему времени достигли высокого уровня развития интегрированные среды разработки ПО. Одной из основных компонент этой среды, обеспечивающей продуктивную работу программиста, является интерфейс пользователя.
Интерфейс СКА, как универсальных систем, ориентирован на интерактивное решение задач широкими массами научных работников, инженеров и студентов самых различных специальностей. Продуктивность работы программистов-профессионалов в среде, ориентированной на обычного пользователя, невысока.
В последние годы в графических интерфейсах пользователя некоторых ведущих СКА (например, MAPLE) стали появляться отдельные функции, присущие профессиональным интегрированным средам разработки (IDE).
СКА MATHEMATICA интегрирована с универсальной средой разработки Eclipse IDE [41], предоставляющей определенные возможности для продуктивного труда программиста.
Эти первые шаги в направлении превращения СКА в среду разработки ПО диктуются логикой развития компьютерной алгебры. Вместе с тем, если в настоящее время в основном решены вопросы стандартизации IDE, то совершенно не исследован вопрос о системе требований к среде разработки в области компьютерной алгебры.
3.6. Интеллектуализация процесса разработки программного обеспечения ЧАМ
Как показали исследования, проведенные инженерными психологами [42, 43], скорость интерпретации данных человеком в определенных пределах мало зависит от их объема и сложности кода представления данных (например, длины алфавита [42]). Однако при дальнейшем увеличении объема и усложнении данных скорость очень быстро уменьшается.
Эксперименты и практика решения сложных задач подтверждают справедливость этих результатов и для компьютерной алгебры. На рис. 2 в логарифмическом масштабе показана сигнальная функция временной сложности процесса численноаналитического решения задач в рамках итерационной теории сопротивления композитных материалов [44].
Задачи решались программой, автоматически выполняющей все функции преобразования данных и интеллектуальные функции решателя, а также интерактивной программой с автоматическим выполнением преобразований данных и с выполнением интеллектуальных функций человеком в диалоге (СКА MAPLE). Ось абсцисс - порядок сложности модели композитных материалов. Ось ординат - время решения задачи по отношению ко времени, потраченному только на автоматические преобразования (кривая 1 - выполнение интеллектуальных функций человеком, 2 - автоматической программой).
Кривые на рис. 2 иллюстрируют и другую закономерность: время решения при усложнении задачи растет в основном за счет затрат на выполнение интеллектуальных функций, однако время выполнения этих функций, по отношению к программе, растет экспоненциально быстрее.
В процессе разработки кода программного обеспечения сложных задач программистом выполняется ряд функций, в том числе и интеллектуальных. Есть все основания полагать, что приведенные выше закономерности имеют место и в этом процессе - время на разработку программного кода численно-аналитического решения при усложнении задач будет расти в основном за счет времени, потраченного на выполнение интеллектуальных функций.
Рис. 2. Пример сигнальной функции времени интерактивного и автоматического решения сложной задачи численно-аналитическим методом (ЧАМ)
Продуктивность процесса разработки обычно оценивается стоимостью затраченного времени [45-47].
В 1970-2000 годах СКА развивались в основном, как библиотеки стандартных математических процедур, что обеспечивало, с одной стороны, их универсальность, а с другой, позволяло высококвалифицированным работникам, постановщикам задач передавать процесс решения работнику с невысокой квалификацией. На рис. 3 стоимость часа труда техника-оператора (1) взята за единицу, младшего научного сотрудника (2) оценивалась как 1,5 ед., а старшего научного сотрудника (3) - как 3 ед. При этом стоимость одного машинного часа средней ЭВМ (4) -20-40 ед., а большой ЭВМ - до 120 ед. и больше. Таким образом, продуктивность решения в те годы достигалась благодаря относительной дешевизне труда человека по отношению к стоимости машинного времени.
По уровню развития компьютерной техники, программного обеспечения и теории программирования к 2000 году затраты характеризуются иными соотношениями. При примерно таком же соотношении стоимости труда человека (1 : 1,5 : 3 ед./ч) стоимость часа работы компьютера (5) тех лет упала до ~ 2,6 ед./ч (Репйиш III, данные на 2001 год, понятие малая, средняя и большая ЭВМ утратило смысл). То есть стоимость машинного времени становилась меньше стоимости высококвалифицированного труда. В работах [4, 14, 45] показано, что этот фактор в комплексе с характеристиками производительности компьютеров определил возможность в 1990-2010 годах преодолевать трудности, связанные со сложностью задач компьютерной алгебры, путем интеллектуализации процесса решения.
К 2010 году соотношение между стоимостью труда оператора (1), младшего (2) и старшего (3) научных сотрудников мало изменилось, стоимость машинного времени при возросшей производительности компьютеров (5) стала существенно меньше. Вместе с тем необходимость привлечения к решению сложных задач профессиональных программистов (4) с высокой оплатой труда (примерно восемь единиц) приводит к увеличению стоимости решения в целом. На рис. 3 эти данные на 2010 год сопоставлены с данными для прошлых лет.
Если учесть, что уже сейчас относительная стоимость машинного времени - малая величина (рис. 3), что производительность компьютеров растет практически по закону Мура (рис. 1), и то, что в процессе решения сложных задач время в основном тратится на выполнение интеллектуальных функций, есть основания для утверждения о возможности качественного увеличения продуктивности путем интеллектуализации процесса разработки программного кода численно-аналитических методов.
Таким образом, появление элементов ГОЕ в СКА можно рассматривать как формирование новой тенденции в развитии компьютерной алгебры, отражающей необходимость, наряду с универсальными СКА, предназначенными для широкого круга пользователей, переходить к созданию интерактивной среды разработки для профессиональных программистов в области компьютерной алгебры.
Рис. 3. Соотношение стоимости труда человека и компьютера
4. Выводы
В результате проведенного анализа можно сделать следующие выводы о состоянии и тенденциях развития систем компьютерной алгебры в 2000-2010 годах:
1. За этот период основными тенденциями в развитии систем компьютерной алгебры (СКА) были дальнейшая универсализация, интеллектуализация и интеграция. В настоящее время ведущие СКА представляют собой мощные, интегрированные между собой комплексы для численно-аналитического решения задач самой разнообразной тематики путем локальных или распределенных вычислений.
2. Повсеместное внедрение систем и методов компьютерной алгебры в научные и инженерные расчеты позволяет говорить о качественно новом уровне их развития: разработка программного обеспечения численно-аналитических и символьных методов становится индустрией с вытекающими отсюда требованиями технологичности и стандартизации.
3. Изменившиеся таким образом условия применения компьютерной алгебры предъявляют новые требования не только к СКА, но и к уровню подготовки их пользователей. Широкий круг актуальных сложных задач требует привлечения в область компьютерной алгебры профессионально подготовленных программистов. Более того, с дальнейшим ростом сложности задач компьютерной алгебры в процессе развития науки и инженерии необходимость привлечения квалифицированных программистов в область компьютерной алгебры будет только усиливаться.
4. Высокая стоимость подготовки и труда программистов в процессе разработки программного обеспечения приводит к падению продуктивности применения СКА. Новой тенденцией являются работы, направленные на создание профессиональных сред разработки программного обеспечения численно-аналитических методов.
5. В настоящее время отсутствуют представления о системе требований к таким средам. Усилия разработчиков СКА направлены, в основном, на создание некоторых новых элементов интерфейса пользователя универсальных СКА или на интегрирование СКА в универсальные среды разработки. Однако численно-аналитическое решение сложных задач обладает такой спецификой [16], что представляется необходимым создание среды разработчика, изначально ориентированной на компьютерную алгебру.
6. Одним из первых этапов может быть создание интерфейса пользователя СКА, автоматизирующего выполнение рутинных интеллектуальных функций в процессе разработки программного обеспечения. Есть основания считать, что такой интерфейс позволит повысить продуктивность решения сложных задач.
7. Новой тенденцией в развитии систем компьютерной алгебры является появление и развитие средств для работы с базами данных. На данный момент их появление обусловлено конъюнктурой приложений и носит, в основном, характер внедрения во входной язык средств для формирования, выполнения БОЬ-запросов и обработки результатов этих запросов. Такой аппарат существенно расширяет область применения СКА.
8. Вместе с этим, поскольку базы данных являются совокупностью связанных данных, данную тенденцию можно рассматривать как первое проявление более глубокой объективной необходимости переходить к развитию языков СКА на основе новых представлений об объекте языка: от множества отделенных выражений к комплексу.
9. Представления об объекте языка, как о комплексе, составляют основу развития СКА АНАЛИТИК. Это позволяет, в частности, создавать аппарат для работы с базами данных как естественное развитие языка, а не внедрение средств для работы с языками запросов баз данных. Таким образом, представления об объекте языка СКА, как о комплексе, из области теоретических и прикладных исследований переходят в практическую плоскость и приобретают более четкие черты дальнейшей перспективы развития теоретических и прикладных основ компьютерной алгебры.
СПИСОК ЛИТЕРАТУРЫ
1. Васильев Н.Н. Компьютерная алгебра в физических и математических приложениях / Н.Н. Васильев, В.Ф. Еднерал // Программирование. - 1994. - № 1. - С. 70 - 82.
2. Абрамов С.А. Компьютерная алгебра / С.А. Абрамов, Е.В. Зима, В.А. Ростовцев // Программирование. - 1992. - № 5. - С. 4 - 25.
3. Компьютерная алгебра в научных и инженерных приложениях / Н.Н. Васильев, В.П. Гердт, В.Ф. Еднерал [и др.] // Программирование. - 1996. - № 6. - С. 34 - 47.
4. Клименко В.П. Основные тенденции развития языков систем компьютерной алгебры / В.П. Клименко, А.Л. Ляхов, Ю.С. Фишман // Математичні машини і системи. - 2002. - № 2. - С. 29 - 64.
5. Axiom Computer Algebra System [Електронний ресурс]. - Режим доступу: http://axiom-developer.org.
6. Maxima, a Computer Algebra System [Електронний ресурс]. - Режим доступу:
www.maxima.sourceforge.net.
7. REDUCE Computer Algebra System [Електронний ресурс]. - Режим доступу: http://www.reduce-algebra.com.
8. Math Software for Engineers, Educators Students j Maplesoft [Електронний ресурс]. - Режим доступу: www.maplesoft.com.
9. Giac/Xcas, a free computer algebra system [Електронний ресурс]. - Режим доступу: http://www-fourier.ujf-grenoble.fr/~parisse/giac.html.
10. MathWorks - MATLAB and Simulink for Technical Computing [Електронний ресурс]. - Режим доступу: www. mathworks .com.
11. Wolfram Mathematica: Technical Computing Software - Taking You from Idea to Solution [Електронний ресурс]. - Режим доступу: http://www.wolfram.com/mathematica.
12. Клименко В.П. Реинжиниринг системы компьютерной алгебры АНАЛИТИК / В.П. Клименко,
A.Л. Ляхов, Д.Н. Гвоздик // Математичні машини і системи. - 2010. - № 4. - С. 18 - 23.
13. О реализации новой версии СКА семейства АНАЛИТИК / В.П. Клименко, А.Л. Ляхов, Д.Н. Гвоздик [и др.] // Матеріали четвертої міжнар. наук.-техн. конф. «Комп’ютерна математика в інженерії, науці та освіті»(CMSEE-2010), (Полтава, 1-31 жовтня 2010 р.). - Київ: Вид-во НАН України, 2010. - С. 5 - 6.
14. Ляхов О.Л. Деякі сучасні проблеми застосування чисельно-аналітичних методів / О.Л. Ляхов // Математичні машини і системи. - 2003. - № 3. - С. 54 - 65.
15. Клименко В.П. Інтелектуалізація розв’язування складних прикладних задач методами комп’ютерної алгебри / В.П. Клименко, О.Л. Ляхов. - К.: Логос, 2009. - 293 с.
16. Клименко В.П. Прикладная математическая задача как объект компьютерной алгебры /
B.П. Клименко, А.Л. Ляхов // Математичні машини і системи. - 2003. - № 3-4. - С. 103 - 123.
17. АНАЛИТИК-93 / А.А. Морозов, В.П. Клименко, Ю.С. Фишман [и др.] // Кибернетика и системный анализ. - 1995. - № 5. - С. 127 - 157.
18. АНАЛИТИК-2000 / Морозов А.А., В.П. Клименко, А.Л. Ляхов [и др.] // Математичні машини і системи. - 2001. - № 1-2. - С. 66 - 99.
19. АНАЛИТИК-2007 / А.А. Морозов, В.П. Клименко, Ю.С. Фишман [и др.] // Математичні машини і системи. - 2007. - № 3, 4. - С. 8 - 52.
20. Системы компьютерной алгебры семейства АНАЛИТИК. Теория, реализация, применение: сб. научн. тр. / Под ред. А.А. Морозова, В.П. Клименко, А.Л. Ляхова. - К.: НІ III Интерсервис, 2010. -764 с.
21. Grid Computing Toolbox - Maplesoft [Електронний ресурс]. - Режим доступу: http://www.maplesoft.com/products /toolboxes/gridcomputing/index.aspx#.
22. Wolfram gridMathematica: Multiplying the Power of Mathematica Over the Grid [Електронний ресурс] . - Режим доступу: http://www.wolfram.com/products/gridmathematica.
23. Клименко В.П. АНАЛИТИК-ПАРАЛЛЕЛЬНЫЙ / В.П. Клименко, Ю.С. Фишман // Параллельное программирование и высокопроизводительные структуры: тезисы докладов VII Всесоюз. семинар. - Киев: ИК АН УССР, 1988. - С. 173 - 174.
24. Фишман Ю.С. Основные особенности создания и применения средств реализации численноаналитических методов / Ю.С. Фишман // Математические машины и системы. - 1998. - № 2. -
C. 9 - 18.
25. Marks E. Executive’s Guide to Cloud Computing / Е. Marks, В. Lozano. - Toronto: Wiley, 2010. -304 p.
26. World Internet Usage Statistics News and World Population Stats [Електронний ресурс]. - Режим доступу: http://www.internetworldstats. com/stats .htm.
27. WolframjAlpha Blog: WolframjAlpha Is Launching: Made Possible by Mathematica [Електронний ресурс]. - Режим доступу: http://blog.wolframalpha.com/2009/05/15/wolframalpha-is-launching-made-possible-by-mathe ma tica.
28. Клименко В.П. Проект АНАЛИТИК: новый этап разработки и перспектива развития /
В.П. Клименко, А.Л. Ляхов, Д.Н. Гвоздик // П’ята наук.-практ. конф. з міжнар. участю «Математичне та імітаційне моделювання систем. МОДС 2010»: тези доповідей, (Київ, 21-25 червня 2010 р.). - Київ, 2010. - С. 214 - 215.
29. Клименко В.П. Развитие и реализация идей ЭВМ МИР / В.П. Клименко // Третья международная научн.-техн. конф. «Компьютерная математика в науке, инженерии и образовании» (CMSEE-2009), (Полтава, 1-31 октября 2009 г.). - Киев: Изд-во НАН Украины, 2009. - С. 5 - 11.
30. Magma Computational Algebra System [Електронний ресурс]. - Режим доступу: http://magma. maths.usyd .edu. au/magma.
31. Symbolic Math Toolbox [Електронний ресурс]. - Режим доступу: http://www.mathworks.com/ access/helpdesk/ help/toolbox/symbolic/brs6uks.html.
32. Maple 14 Advanced Programming Guide / M.B. Monagan, K.O. Geddes, K.M. Heal [et al.]. - Maple-soft, a division of Waterloo Maple Inc. 1996-2010. - Р. 398.
33. Введение в Wolfram Mathematica [Електронний ресурс]. - Режим доступу: http://exponenta.ru/ educat/ news/vygovskiy/ vygovskiy.asp.
34. Maple Toolbox for MATLAB - Maplesoft [Електронний ресурс]. - Режим доступу: http: //www .maplesoft.com/ products/maplematlab.
35. Overview of the Matlab Package. - Режим доступу: http://www.maplesoft.com/support/help/Maple/ view.aspx?path=Matlab.
36. Creating a MATLAB Notebook to Publish to Microsoft Word. - Режим доступу: http://www.mathworks.com/help/techdoc/matlab env/brgbdb8.html.
37. Excel Integration with Maple - Application Center [Електронний ресурс]. - Режим доступу:http://www.maplesoft. com/applications/view.aspx?SID=5113&view=html.
38. CAD Connectivity - Maple Features - Maplesoft [Електронний ресурс]. - Режим доступу: http://www.maplesoft.com/ products/maple/features/feature detail.aspx?fid=5918.
39. Database - Maple Help [Електронний ресурс]. - Режим доступу: http://www.maplesoft.com/ support /help/Maple/view.aspx?path=Database.
40. Database Connectivity - Wolfram Mathematica 7 Documentation [Електронний ресурс]. - Режим доступу: http://reference.wolfram.com/mathematica/guide/DatabaseConnectivity.html.
41. Wolfram Workbench Development Environment: Easily Edit and Navigate Code [Електронний ресурс]. - Режим доступу: http://www.wolfram.com/products/workbench/features/edit.html.
42. Зинченко Т.П. Инженерно-психологические требования к построению кодовых алфавитов// Хрестоматия по инженерной психологии / Зинченко Т.П.; под ред. проф. Б.А. Душкова. - М.: Высшая школа, 1991. - С. 219 - 230.
43. Линдсей П. Переработка информации у человека / П. Линдсей, Д. Норман. - М.: Мир, 1974. -539 с.
44. High order model of the stress-strain state of composite bars and its implementation by computer algebra / V.G. Piskunov, A.V. Goryk, A.L. Lyakhov [et al.] // Composite Structure. - 2000. - N 48. - P. 169 -176.
45. Клименко В.П. Принципы построения и реализация систем программного обеспечения ЭВМ с аппаратной поддержкой языков высокого уровня: автореф. дис. на здобуття наук. ступеня доктора ф.-м. наук. - Киев, 1990. - 50 с.
46. Криницкий Н.А. Программирование и алгоритмические языки / Н.А. Криницкий, Г.А. Миронов, Г. Д. Фролов; под ред. акад. А.А. Дородницына. - М.: Наука, 1979. - 512 с.
47. Грубов В.И. Справочник по ЭВМ / В.И. Грубов, В.С. Кирдан, С.Ф. Козубовский. - К.: Наукова думка, 1989. - 544 с.
Стаття надійшла до редакції 10.03.2011