Введение
1 Анализ программного обеспечения и постановка задач 6
1.1 Язык программирования Пифагор 6
1.1.1 Модель функционально-потоковых параллельных вычислений 7
1.1.2 Типы операторов 8
1.1.3 Типы данных 11
1.1.4 Служебные функционалы 13
1.1.5 Синтаксис 16
1.2 Pifagor IDE 17
1.2.1 Обзор 18
1.2.2 Исправление ошибок 19
1.3 Выводы 20
2 Разработка библиотеки функций 21
2.1 Функция вычисления числа Эйлера 22
2.2 Функция вычисления числа Пи 23
2.2 Вывод 23
3 Модуль работы с репозиторием 24
3.1 Выбор технологий и инструментов 24
3.1.1 Qt 24
3.2 Разработка 25
3.3 Выводы 27
4 Примеры применения 29
4.1 Функции языка Пифагор 29
4.2 Модуль работы с репозиторием 29
4.3 Вывод 31
Заключение 32
Список сокращений 33
Список использованных источников 34
Приложение А 36
Приложение Б 37
Приложение В 41
Приложение Г 48
Активное развитие параллельных вычислительных архитектур обуславливает проблемы для переноса программ с одной архитектуры на другую. Существующие языки программирования не позволяют создавать переносимые программы, поэтому развиваются архитектурно-независимые методы программирования, в том числе функционально-потоковое программирование, позволяющее писать программы независимо от того на какой архитектуре они будут исполняться. Это позволяет сначала отлаживать программы, находить и исправлять в них ошибки, а потом адаптировать их под конкретную архитектуру вручную либо автоматически.
Создание прикладных параллельных программ, ориентированных на обработку информационных потоков, удобнее осуществлять с применением функциональных языков параллельного программирования, в которых выполнение каждого оператора осуществляется по готовности его данных. Одним из языков поддерживающих архитектурно-независимый стиль программирования, является функционально-потоковый язык параллельного программирования Пифагор, который рассмотрен в ряде работ [3, 4, 7].
Такие языки не требуют явного описания параллелизма задачи, который в этом случае определяется в соответствии с информационными связями. Использование языка Пифагор позволяет:
• создавать переносимые программы с параллелизмом на уровне операторов, ограниченным лишь методом решения задачи;
• обеспечивать перенос программы на конкретную архитектуру, не распараллеливая программу, а сжимая ее максимальный параллелизм;
• проводить оптимизацию программы по множеству параметров с учетом специфики архитектуры ВС, для которой осуществляется трансляция без учета управляющих связей программы.
В языке Пифагор вычисления осуществляются по готовности данных, этот стиль удобен для решения вычислительных задач и задач обработки данных. Однако при работе с данным языком имеется проблема не полной поддержки библиотек функций, что не позволяет успешно разрабатывать сложные программы и проводить тестирование исполнительных систем, трансляторов, которые в данный момент находятся в стадии разработки.
Существует инструментарий в виде IDE Pifagor для разработки программ для языка Пифагор. Требуется интегрированный инструмент в IDE для работы с библиотеками функций.
Таким образом требуется провести анализ интегрированной среды разработки, устранить её ошибки, разработать модуль поддержки репозитория и интегрировать его в среду разработки,
Был рассмотрен и изучен функционально-потоковый язык программирования Пифагор, цель которого разработка архитектурно независимых параллельных программ. Проанализирована и дополнена интегрированная среда разработки IDE Pifagor, разработанным модулем работы с репозиторием. Разработан комплект функций репозитория на языке Пифагор для пользования ими в дальнейшем разработчиками. Проведено тестирование разработанного программного обеспечения.
Таким образом выполнены все задачи поставленные выпускной квалификационной работой.