Разработка графического интерфейса к системе компьютерной математики Maxima в среде Python
Authors: Шоколюк Світлана Вікторівна , Моісеєнко Наталя Володимирiвна , Семеріков Сергій Олексійович , Теплицький Ілля Олександрович 
Published: March 2022

Создание графических интерфейсов – задача, актуальность которой не нуждается в обосновании, однако, на наш взгляд, стоит конкретизировать, каково место нового интерфейса к известному математическому пакету. Как правило, для локализации интерфейса пользователя необходимо перерабатывать исходные тексты программ, выполнять их компиляцию, создавать инсталляционный пакет – и все это повторять для каждой операционной системы.При разработке нового интерфейса мы учитывали, что:интерфейс должен одинаково работать на разных операционных системах, то есть быть кроссплатформенным;интерфейс должен быть стандартным, то есть удовлетворять всем эргономическим требованиям к такого рода программам;интерфейс должен быть легким не только в использовании, но и в разработке, то есть требовать минимум дополнительного программного обеспечения;интерфейс должен работать без установки, то есть для работы достаточно простой операции копирования.Для избавления зависимости от операционной системы необходимо выполнение двух условий:совместимости между операционными системами на уровне программных интерфейсов;выполнения программ на разных системах без перекомпиляции.Первое условие сегодня выполняется на всех операционных системах, соответствующих стандарту POSIX (Windows NT/2000/XP, Mac OS 10, все UNIX-подобные системы и ряд других). Выполнение второго условия предполагает использование интерпретируемого кроссплатформенного языка программирования.Стандартизация пользовательского интерфейса потребовала использования библиотеки визуальных компонентов (виджетов). Исходя из требования работы под разными операционными системами, мы воспользовались библиотекой Qt.В процессе выполнения работы был создан новый графический интерфейс к Maxima на основе Python и библиотеки Qt – PyQtMaxima.Особенностью выбранных средств реализации поставленных задач является их открытость, низкая стоимость (зачастую – бесплатность) и переносимость. Язык Python позволяет писать очень компактные и легко читаемые программы. Они, как правило, намного короче, чем эквивалентные программы, написанные на С:– высокоуровневые типы данных позволяют записывать сложные операции в виде простых выражений;– операторы группируются путем сдвига вправо от основного текста программы (применение абзацного отступа), вместо операторных скобок;– нет необходимости в описании переменных и аргументов функций.Мы использовали Python для того, чтобы выполнить своеобразную склейку системы Maxima и библиотеки Qt. Для этого нами был использован специальный библиотечный модуль – PyQt. В результате выполненной работы был создан пользовательский интерфейс к системе компьютерной математики Maxima, который позволяет производить различные математические вычисления и преобразования. Вся работа по преобразованию команд Maxima, которые пользователь вводит в командной строке, в графический формат происходит с помощью модуля PyQt и скрыта от пользователя.Название нашего интерфейса – PyQtMaxima – отражает единство использованных нами средств – язык + библиотека + программа = интерфейс.Интерфейс не обременяет пользователя и помогает получить результаты, требуемых вычислений, за малый промежуток времени. В результате этого у пользователя возникает субъективное удовлетворение, что является очень важным моментом при проектировании любого интерфейса.В настоящий момент наш интерфейс реализует следующую функциональность:поддержка алгебраических операций (в том числе матричных);построение двумерных и трехмерных динамических графиков;символьное интегрирование и дифференцирование и многое другое.Результаты выполненной работы предполагается использовать как в учебном процессе, так и в практической инженерной деятельности. Неожиданным результатом выполненной работы стала возможность благодаря использованным средствам – языку Python и библиотеке Qt – запуска разработанного интерфейса на мобильных терминалах под управлением Windows Mobile. Это позволяет говорить о перспективах создания мобильного инженерного научного калькулятора на основе системы Maxima.