Введение
1 Анализ принципов разработки мобильного параллельного программного обеспечения 11
1.1 Вопросы управление в параллельном программировании 11
1.2 Разработка параллельных программ в функциональной парадигме .. 18
1.2.1 Язык функционального программирования Haskell 19
1.2.2 Функциональный язык программирования Clean 22
1.2.3 Функциональный язык параллельного программирования Sisal.25
1.3 Управление вычислениями по готовности данных 29
1.3.1 Система программирования T-system 29
1.3.2 Система программирования и язык потоков данных DCF 34
1.4 Общее состояние языков параллельного программирования 35
Выводы по главе 1 36
2 Функционально-потоковая модель параллельных вычислений 38
2.1 Общие принципы организации модели 39
2.2 Программо-формирующие операторы 43
2.3 Описание динамики функционирования 50
2.3.1 Правила межоператорных переходов 51
2.3.2 Правила срабатывания программо-формирующих операторов .51
2.4 Эквивалентные преобразования 54
Выводы по главе 2 60
3 Функциональный язык параллельного программирования 61
3.1 Используемый метаязык 61
3.2 Элементарные конструкции 62
3.2.1 Разделители 62
3.2.2 Комментарии 62
3.2.3 Идентификаторы 63
3.2.4 Зарезервированные слова 63
3.3 Обозначения 64
3.4 Объекты 65
3.5 Сигналы 66
3.6 Значащие величины (константы) 67
3.6.1 Целые константы 67
3.6.2 Действительное число 68
3.6.3 Символьные константы 69
3.6.4 Логическая константа 69
3.6.5 Специальные знаки 70
3.6.6 Константы ошибок 70
3.7 Составные объекты 71
3.8 Функция 73
3.8.1 Организация обычной функции 73
3.9 Блок 74
3.10 Выражение 75
3.11 Структура программы 76
3.12 Предопределенные функции и данные 77
3.12.1 Использование специальных знаков 78
3.12.2 Использование данных 88
3.12.3 Использование специальных функций 90
3.13 Использование предопределенных типов 90
3.14 Правила эквивалентных преобразований 92
Выводы по главе 3 94
4 Реализация среды исполнения программ 95
4.1 Последовательная интерпретация функционально-параллельных программ 95
4.1.1 Транслятор 97
4.1.2 Интерпретатор 98
4.1.3 Модуль управления 99
4.2 Примеры программ на ФЯПП 100
4.2.1 Использование параллельного списка аргументов 101
4.2.2 Использование параллельного списка функций 102
4.2.3 Использование задержанных списков 103
4.2.4 Использование параллельной рекурсии 104
4.2.5 Использование функций в качестве параметров 106
4.2.6 Программа умножения двух матриц 109
Выводы по главе 4 ПО
5 Применение функционально-потокового языка для анализа и синтеза алгоритмов 112
5.1 Реализация основных программных конструкций 112
5.1.1 Реализация последовательного выполнения 112
5.1.2 Альтернатива 113
5.1.3 Итерация 115
5.2 Использование максимального параллелизма для анализа параллельных алгоритмов с заданными ограничениями 116
5.2.1 Теоретическая сортировка 117
5.2.2 Вывод ограниченных алгоритмов 121
5.3 Эквивалентные функциональные преобразования с использованием обобщенных функций 127
5.4 Использование разных форм одной и той же функции для повышения эффективности вычислений 129
Выводы по главе 5 133
Заключение 135
Литература


