Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Методология императивного параллельного программирования



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

1) Макрокоманды

2) Операторы

3) Циклы и итерации

4) Подпрограммы

5) Потоки управления

6) Процессы

7) Приложения

Традиционным в наше время является параллельность на уровне процесса. Следуют помнить, что языки параллельного программирования используют явные конструкции для параллельного выполнения кода. Существует несколько ключевых подходов в императивном параллельном программировании:

1) программирование на языке параллельного программирования (универсальных или ориентированных на конкретную архитектуры системы).

2) Программирование на известном языке, например: C++, C# и Delphi, который дополнен конструкциями распараллеливания.

3) Программирование с использованием дополнительных указаний транслятору на уровне языка Pragm. Pragm-программирование - это директива препроцессора, используемая для изменения стандартного поведения транслятора, то есть в этом случае используют 2 транслятора: первый - препроцессор (транслирует язык Pragm- программирования), второй транслятор обычный.

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

5) Применение средств автоматического распараллеливания последоват. программ такими инструментами как компиляторы. Множеству языков содержащих конструкции распараллеливания относятся: Algol-68(1968), Concurrent Pascal(1972), Edison(1980), Ada(1979, 1983), Occam(1982), Linda(1985), Concurrent Prolog(1983), Oblig(1993).

 

 

Для реализации подпрограммы нужно записывать отдельный оператор.

Функция - это подпрограмма, которая обязательно возвращает итог в точку вызова, при этом итог замещает вызов функции.

В языке Python имеется только одно понятие функции, процедура в этом случае трактуется, как функция которая возвращает некоторый условный объект с именем none, он означает отсутствие реальных данных, следовательно, все функции имеют одну и ту же структуру. Чтобы функция выполнялась ее нужно активизировать, активизация выполняется указанием ее вызова внутри некоторого выражения или самостоятельным объектом. В вызове задают в обязательном порядке имя функции и круглые скобки, внутри которых может быть пусть или список объектов, которые необходимы для ее работы, такие объекты называются фактическими параметрами или аргументами, после завершения всех действий, закодированного алгоритма, функция может:

1) Возвращать в вызывающий текст какие-то итоги

           А) в точку вызова в форме объекта значения

           Б) в блок памяти фактического параметра, при этом параметр должен быть изменяемый

           В) блок памяти глобального объекта, который доступен как вызывающему тексту, так и функции

2) Возвращать в точку вызова значения none, чтобы иметь функцию нужно:

           1) определить позицию, в которой ее можно описать

           2) сформировать текст функции по определенным правилам. Текст функции может быть записан на уровне модуля, внутри оператора, внутри другой функции или внутри класса, но в этом случае функция называется методом. В языке Python имеется несколько возможностей сформировать текст функции, чаще всего используется слово def для формирования текста функции, в этом случае функция начинается заголовком вида def < имя> (< параметры> ): после этого со сдвигом на 4 позиции записывается код алгоритма, который называется блоком функции, имя - это имя функции, которую программист задает по своему усмотрению, параметры - это список имен незначащих ссылок или список ссылок с инициализацией, который трактуется как формальные параметры, элементы списка разделяются запятой, количество неограниченно, имена формальных параметров для блока функции трактуется как исходные данные для его работы, то есть в момент вызова функции этим ссылкам ставится в соответствие конкретные объекты значения(постоянные, выражения, имена значащих ссылок) эти значения являются теми которые указаны в вызовах функции в качестве фактических параметров, таким образом фактические и формальные параметры стыкуются по определенным правилам. Существуют следующие правила:

           1) позиционная стыковка

           2) стыковка по имени

           3) стыковка с использованием значений формальных параметров

Позиционная стыковка предполагает, что первый формальный параметр получает значение первого фактического параметра, второй от второго и так далее.

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

Все функции в Python делятся на 2 вида: встроенные и формируемые программистом. Встроенные функции непосредственно доступны в интерпретаторе и готовы к использованию в любой момент.

Особенность Python в том, что имя после def это просто имя, которое хранит адрес объекта значения функции под которым предполагается адрес блока кода функции, следовательно с именем функции можно выполнять те же операции, что и для любой другой ссылки доступной только для чтения. Например можно записать dront=sin и после этого sin(x) и dront(x) идентичны, поэтому заголовок функции с именем def это указание операции (...с объектом значения функции) Поскольку при описании функции создается объект значения, значит он определяется классом и имеет собственные ресурсы для своих целей. Встроенные функции языка Python описываются типом(классом). Любой объект встроенной функции обязательно имеет ресурсы, которые в c# принято называть полями.  

 


Поделиться:



Последнее изменение этой страницы: 2019-05-04; Просмотров: 169; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.01 с.)
Главная | Случайная страница | Обратная связь