Параллельные языки программирования



Параллельные языки программирования используют явные конструкции для параллельного исполнения выбранных фрагментов программ. Существует несколько языковых подходов к программированию для параллельных вы­числительных систем.

    1.Программирование на параллельном языке программирования. Причем такие языки могут быть:

· универсальными (например, Ada);        

·  для конкретных типов компьютеров, позволяющих эффективно транслировать программы на параллельном языке именно в эту архитектуру (например, язык Occam изначально разрабатывался для транспью­теров).

 2.Программирование на широко распространенном языке программирова­ния  (например, С, С++, Pascal), который расширен языковыми (на уров­не языка программирования) распараллеливающими конструкциями.

3.Программирование с использованием дополнительных указаний компи­лятору на уровне языка прагм (например, по стандарту ОреnМР).

4.Программирование на широко распространенном языке программирова­ния использованием высокоуровневых коммуникационных библиотек и интерфейсов для организации межпроцессорного взаимодействия. В этом случае конструкции параллелизма вынесены с языкового уровня на уро­вень операционной системы.

5.Применение средств автоматического распараллеливания последователь­ных программ такими инструментами, как компиляторы. На рис. 2.6 приведены наиболее распространенные языки программирова­ния, содержащие явные конструкции параллельного исполнения.

Класс задач

Данная методология может очень эффективно применяться для обработки больших однородных массивов данных. Такие массивы часто встречаются в реализации вычислительных и статистических методов. Кроме этого, мето­дология параллельного программирования успешно применяется при моде­лировании, в операционных системах и системах реального времени.

 

2.2. Методология объектно-ориентированного программирования.

Методология объектно-ориентированного программирования- подход, ис­пользующий объектную декомпозицию, при которой статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами.

Происхождение

На возникновение объектного мышления оказали влияние моделирование и представление данных, графические пользовательские интерфейсы и сис­темное программирование. Исследования в области моделирования реальных систем привели к необходимости создания средств естественного описания сущностей, которые в них встречаются – объектов (то, что создано в соответствии с описанием) и событий (это свойство процедурного типа, предназначенное для создания пользовательской реакции на то или иное входное воздействие). Позже оказалось, что такие концепции, как инкапсуляция, наследование и полиморфизм, являются доста­точно полезным дополнением к традиционному структурному программи­рованию. Возможность их достаточно эффективной реализации привело к созданию широко распространенных в наши дни объектно-ориентирован­ных языков.

Методы

Методы представляют собой процедуры и функции, принадлежащие классу.

Метод объектно-ориентированной декомпозиции– заключается в выделении объектов и связей между ними. Метод поддерживается концепциями инкап­суляции, наследования и полиморфизма.

Метод абстрактных типов данных- метод, лежащий в основе инкапсуля­ции. Метод поддерживается концепцией абстрагирования.

Метод пересылки сообщений- заключается в описании поведения системы в терминах обмена сообщениями между объектами. Метод поддерживается концепцией сообщения.

Вычислительная модель

Вычислительная модель чистого объектно-ориентированного программиро­вания поддерживает явно только одну операцию, которой является посылка объекту сообщения. Сообщения могут иметь параметры, являющиеся объек­тами. Само сообщение также является объектом.

Объект имеет набор обработчиков сообщений (набор методов). У объекта есть поля - персональные переменные для данного объекта, значениями которых являются ссылки на другие объекты. В одном из полей объекта хранится ссылка на объект-предок, которому переадресуются все сообще­ния, не обрабатываемые данным объектом. Структуры, описывающие обра­ботку и переадресацию сообщений, обычно выделяют в отдельный объект, называемый классом данного объекта. Сам объект называют экземпляром указанного класса.

Синтаксис и семантика

В синтаксисе чистых объектно-ориентированных языков все может быть записано в форме посылки сообщений объектам. Класс в объектно-ориен­тированных языках описывает структуру и функционирование множества объектов с подобными характеристиками, атрибутами и поведением. Объект естественным образом принадлежит к некоторому классу и обладает своим собственным внутренним состоянием. Методы – это функциональные свойст­ва, которые можно активизировать.

В объектно-ориентированном программировании определяют три основных свойства:

· Инкапсуляция -это объединение данных с процедурами и функциями в единый блок программного кода.

· Наследование -это передача методов и свойств от предка к потомку, без необходимости написания дополнительного программного кода.

· Полиморфизм(полиморфизм включения) - это возможность изменения одинаковых по смыслу свойств и поведения объектов в зависимости от их типа.

У каждого объекта есть ссылка на класс (т.е. на структуру языка, которая может иметь в своем составе переменные, функции и процедуры), к которому он относится. При приеме сообщения объект обращается к классу для обработки данного со­общения. Сообщение может быть передано вверх по иерархии наследова­ния, если сам класс не располагает методом для его обработки. Если обра­ботчик событий для сообщения выбирается динамически, то методы, реали­зующие обработчиков событий, принято называть виртуальными.

Естественным средством структурирования в данной методологии являются классы. Классы определяют, какие поля и методы экземпляра доступны из­вне, как обрабатывать отдельные сообщения и т. п. В чистых объектно-ориентированных языках извне доступны только методы.

Взаимодействие задач в данной методологии осуществляется при помощи обмена сообщениями между объектами, реализующими данные задачи.

Объектно-ориентированная методология естественным образом близка к параллельной. Каждый отдельный объект становится процессом, находящимся в постоянном ожидании сигналов-сообщений. Кстати, одним из первых представлений об объектах является экторная модель параллель­ных вычислений Хьюитта. Под объектом в ней подразумевается активный процесс, получающий сообщения и изменяющий свое внутреннее состояние в зависимости от полученного сообщения. Для этой модели справедливы следующие свойства:

· объектом является процесс, который может иметь различные внутренние состояния. При получении сообщения объект становится активным;

· извне внутреннее состояние объекта может быть изменено только посредством передачи ему сообщения, специфицирующего выполняемую объектом операцию;

· во время работы объект может обмениваться сообщениями с другими объектами.

 


Дата добавления: 2018-05-12; просмотров: 1844; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!