Транслятор модифицированного языка программирования высокого уровня с неявным описанием параллелизма для реконфигурируемых вычислительных систем

Транслятор модифицированного языка программирования высокого уровня с неявным описанием параллелизма для реконфигурируемых вычислительных систем

Автор: Гудков, Вячеслав Александрович

Шифр специальности: 05.13.11

Научная степень: Кандидатская

Год защиты: 2010

Место защиты: Таганрог

Количество страниц: 212 с. ил.

Артикул: 4890771

Автор: Гудков, Вячеслав Александрович

Стоимость: 250 руб.

Транслятор модифицированного языка программирования высокого уровня с неявным описанием параллелизма для реконфигурируемых вычислительных систем  Транслятор модифицированного языка программирования высокого уровня с неявным описанием параллелизма для реконфигурируемых вычислительных систем 

СОДЕРЖАНИЕ .
ВВЕДЕНИЕ. .
1. АНАЛИЗ СРЕДСТВ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРИКЛАДНЫХ ПРОГРАММ ДЛЯ РВС . .
1.1. Языки программирования МВС.
1.2. Особенности РВС. . .
1.3. Языки программирования РВС.
1.4. Язык программирования высокого уровня
1.5. Принципы модернизации языка для программирования . ПЛИС на уровне логических ячеек
1.6. Выводы. ... .
2 ФОРМАЛИЗАЦИЯ ПРАВИЛ ТРАНСЛЯЦИИ С ЯЗЫКА ВЫСОКОГО УРОВНЯ .. .,
2.1. Организация.доступа к памятиv .
2.2. Сцепление переменных. .
2.3. Параллельная и конвейерная обработка данных.
2.4. Особенности обработки условных операторов
25. Особенности обработки оператора цикла..
2.6. Особенности трансляции вычислительных конструкций языка
. . .
2.7. Выводы. .
3. СИНТЕЗ СТРУКТУРНОГО КОМПОНЕНТА ПАРАЛЛЕЛЬНОКОНВЕЙЕРНОЙ ПРОГРАММЫ ДЛЯ РВС ... .
3.1. Основные этапы трансляции модифицированного языка
для РВС .
3.2. Обобщенный алгоритм генерации структурного компонента параллельной программы
3.3. Преобразование фрагментов .программы к единой степени распараллеливания. . .
3.4. Обобщенный алгоритм обработки операторов цикла
3.5. Преобразование операторов во внутреннее представление
транслятора. . .
3.6. Алгоритм обработки вычислительных выражений
3.7. Генерация информационного графа структурного компонента
3.8. Обобщенный алгоритм трансляции конструкций
3.9. Выводы
4. СИНТЕЗ ПРОЦЕДУРНОГО КОМПОНЕНТА ПАРАЛЛЕЛЬНОКОНВЕЙЕРНОЙ ПРОГРАММЫ ДЛЯ РВС.
4.1. Основные этапы генерации процедурного компонента параллельной программы
4.1.1. Трансляция межкадровых операторов цикла
4.2. Основные этапы генерации потокового компонента параллельной программы
4.2.1. Обработка операторов присваивания и формирование информационного потока.
4.2.2. Обработка операторов цикла при генерации потокового компонента.
4.2.3. Обработка условных операторов при генерации потокового компонента.
4.3. Выводы
ЗАКЛЮЧЕНИЕ.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


NET, поддерживающий- создание программ, работающих во всём спектре параллельных архитектур - от многоядерных процессоров до Grid-сетей []. Язык Polyphonic C# был разработан в г. Microsoft Research Laboratory (г. Кембридж, Великобритания) []. Язык MC# является расширением базовых идей языка Polyphonic C# на случай параллельных и распределенных вычислений, в который включены высокоуровневые средства асинхронного параллельного программирования, позволяющие программировать серверные и клиент-серверные приложения. Недостатком данного языка является возможность программирования только одной машины или нескольких машин с зафиксированными на них асинхронными методами, взаимодействующими между собой при помощи средств удаленного вызова, представленных соответствующей библиотекой платформы . NET. В начале -х годов в рамках работ по созданию транспьютеров группой учёных из Оксфорда под руководством Дэвида Мэя был разработан процедурный язык параллельного программирования высокого уровня Occam []. В отличие от рассмотренных ранее языков параллельного программирования язык Occam является оригинальной разработкой и не является- каким-либо расширением известного языка программирования. В основе языка Occam лежит концепция взаимодействующих последовательных процессов (Communicating Sequential Processes), разработанная Ч: Хоаром [], позволяющая формализовать описание соответствующей вычислительной модели. Каждый процесс описывает некоторые действия, подлежащие выполнению, оперируя с идентификаторами, которые зависят от конкретной машины, применяемой для исполнения'программы. Язык Occam позволяет явно определять последовательные и параллельные процессы при помощи конструкторов SEQ и PAR соответственно. В конструкторе PAR, в отличие от конструктора SEQ, порядок выполнения действий не определен, при этом процессы считаются выполненными, если завершены все составляющие его- процессы. Для управления процессами и организации циклов используются конструкторы условного процесса IF, циклического процесса WHILE и процесса выбора процессов . ALT. Процессы ALT и PAR привносят в язык индетерминизм, так как считается, что при одновременном выполнении нескольких условий точно предсказать дальнейший ход событий невозможно. Таким образом, язык Occam имеет достаточно средств для организации параллельных ветвей, синхронизации управления в параллельных ветвях и обмена информацией- между ветвями. Однако Язык Occam эффективен для создания параллельных программ для систем, содержащих небольшое число процессоров. Ada, содержащий высокоуровневые средства программирования параллельных процессов []. Язык обладает механизмами поддержки параллельного исполнения, распределённых вычислений, а также имеет стандартные интерфейсы к другим языкам и библиотекам. Для параллельного программирования в языке определены три основных понятия: «задача», «вход задачи» и «рандеву». Понятие «задача» определяет параллельно выполняемый фрагмент программы, понятие «вход задачи» - средство синхронизации и коммуникации параллельно выполняющихся задач, механизм «рандеву» - протокол взаимодействия параллельно выполняемых задач через вход одной из них. Для организации условного межпотокового взаимодействия используется оператор Select, который осуществляет выбор параллельной задачи, с которой следует взаимодействовать. Язык Ada обладает хорошей переносимостью по сравнению с другими языками, поскольку прошел наиболее полную и подробную стандартизацию и уверенно занимает нишу больших встроенных систем с повышенными требованиями к надежности. Однако разработка параллельных программ на языке Ada является очень трудоемкой по сравнению с другими языками, а существующие реализации Ады крайне дороги. В - годах было создано средство параллельного программирования - Linda, которое не является языком программирования как таковое, а является моделью параллелизма и может быть использовано в существующих языках программирования. Взаимодействие процессов на языке Linda осуществляется по средствам глобальной кортежной области (Tuple Space) и в отличие от языков Ada и Occam не использует никакой адресации между параллельными процессами.

Рекомендуемые диссертации данного раздела

28.06.2016

+ 100 бесплатных диссертаций

Дорогие друзья, в раздел "Бесплатные диссертации" добавлено 100 новых диссертаций. Желаем новых научных ...

15.02.2015

Добавлено 41611 диссертаций РГБ

В каталог сайта http://new-disser.ru добавлено новые диссертации РГБ 2013-2014 года. Желаем новых научных ...


Все новости

Время генерации: 0.272, запросов: 244