Параллельные языки программирования
Параллельные языки программирования используют явные конструкции для параллельного исполнения выбранных фрагментов программ. Существует несколько языковых подходов к программированию для параллельных вычислительных систем.
1.Программирование на параллельном языке программирования. Причем такие языки могут быть:
· универсальными (например, Ada);
· для конкретных типов компьютеров, позволяющих эффективно транслировать программы на параллельном языке именно в эту архитектуру (например, язык Occam изначально разрабатывался для транспьютеров).
2.Программирование на широко распространенном языке программирования (например, С, С++, Pascal), который расширен языковыми (на уровне языка программирования) распараллеливающими конструкциями.
3.Программирование с использованием дополнительных указаний компилятору на уровне языка прагм (например, по стандарту ОреnМР).
4.Программирование на широко распространенном языке программирования использованием высокоуровневых коммуникационных библиотек и интерфейсов для организации межпроцессорного взаимодействия. В этом случае конструкции параллелизма вынесены с языкового уровня на уровень операционной системы.
5.Применение средств автоматического распараллеливания последовательных программ такими инструментами, как компиляторы. На рис. 2.6 приведены наиболее распространенные языки программирования, содержащие явные конструкции параллельного исполнения.
|
|
Класс задач
Данная методология может очень эффективно применяться для обработки больших однородных массивов данных. Такие массивы часто встречаются в реализации вычислительных и статистических методов. Кроме этого, методология параллельного программирования успешно применяется при моделировании, в операционных системах и системах реального времени.
2.2. Методология объектно-ориентированного программирования.
Методология объектно-ориентированного программирования- подход, использующий объектную декомпозицию, при которой статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами.
Происхождение
На возникновение объектного мышления оказали влияние моделирование и представление данных, графические пользовательские интерфейсы и системное программирование. Исследования в области моделирования реальных систем привели к необходимости создания средств естественного описания сущностей, которые в них встречаются – объектов (то, что создано в соответствии с описанием) и событий (это свойство процедурного типа, предназначенное для создания пользовательской реакции на то или иное входное воздействие). Позже оказалось, что такие концепции, как инкапсуляция, наследование и полиморфизм, являются достаточно полезным дополнением к традиционному структурному программированию. Возможность их достаточно эффективной реализации привело к созданию широко распространенных в наши дни объектно-ориентированных языков.
|
|
Методы
Методы представляют собой процедуры и функции, принадлежащие классу.
Метод объектно-ориентированной декомпозиции– заключается в выделении объектов и связей между ними. Метод поддерживается концепциями инкапсуляции, наследования и полиморфизма.
Метод абстрактных типов данных- метод, лежащий в основе инкапсуляции. Метод поддерживается концепцией абстрагирования.
Метод пересылки сообщений- заключается в описании поведения системы в терминах обмена сообщениями между объектами. Метод поддерживается концепцией сообщения.
Вычислительная модель
Вычислительная модель чистого объектно-ориентированного программирования поддерживает явно только одну операцию, которой является посылка объекту сообщения. Сообщения могут иметь параметры, являющиеся объектами. Само сообщение также является объектом.
|
|
Объект имеет набор обработчиков сообщений (набор методов). У объекта есть поля - персональные переменные для данного объекта, значениями которых являются ссылки на другие объекты. В одном из полей объекта хранится ссылка на объект-предок, которому переадресуются все сообщения, не обрабатываемые данным объектом. Структуры, описывающие обработку и переадресацию сообщений, обычно выделяют в отдельный объект, называемый классом данного объекта. Сам объект называют экземпляром указанного класса.
Синтаксис и семантика
В синтаксисе чистых объектно-ориентированных языков все может быть записано в форме посылки сообщений объектам. Класс в объектно-ориентированных языках описывает структуру и функционирование множества объектов с подобными характеристиками, атрибутами и поведением. Объект естественным образом принадлежит к некоторому классу и обладает своим собственным внутренним состоянием. Методы – это функциональные свойства, которые можно активизировать.
В объектно-ориентированном программировании определяют три основных свойства:
|
|
· Инкапсуляция -это объединение данных с процедурами и функциями в единый блок программного кода.
· Наследование -это передача методов и свойств от предка к потомку, без необходимости написания дополнительного программного кода.
· Полиморфизм(полиморфизм включения) - это возможность изменения одинаковых по смыслу свойств и поведения объектов в зависимости от их типа.
У каждого объекта есть ссылка на класс (т.е. на структуру языка, которая может иметь в своем составе переменные, функции и процедуры), к которому он относится. При приеме сообщения объект обращается к классу для обработки данного сообщения. Сообщение может быть передано вверх по иерархии наследования, если сам класс не располагает методом для его обработки. Если обработчик событий для сообщения выбирается динамически, то методы, реализующие обработчиков событий, принято называть виртуальными.
Естественным средством структурирования в данной методологии являются классы. Классы определяют, какие поля и методы экземпляра доступны извне, как обрабатывать отдельные сообщения и т. п. В чистых объектно-ориентированных языках извне доступны только методы.
Взаимодействие задач в данной методологии осуществляется при помощи обмена сообщениями между объектами, реализующими данные задачи.
Объектно-ориентированная методология естественным образом близка к параллельной. Каждый отдельный объект становится процессом, находящимся в постоянном ожидании сигналов-сообщений. Кстати, одним из первых представлений об объектах является экторная модель параллельных вычислений Хьюитта. Под объектом в ней подразумевается активный процесс, получающий сообщения и изменяющий свое внутреннее состояние в зависимости от полученного сообщения. Для этой модели справедливы следующие свойства:
· объектом является процесс, который может иметь различные внутренние состояния. При получении сообщения объект становится активным;
· извне внутреннее состояние объекта может быть изменено только посредством передачи ему сообщения, специфицирующего выполняемую объектом операцию;
· во время работы объект может обмениваться сообщениями с другими объектами.
Дата добавления: 2018-05-12; просмотров: 1844; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!