Главная » Просмотр файлов » Н. Джехани - Язык Ада (1988)

Н. Джехани - Язык Ада (1988) (1160771), страница 26

Файл №1160771 Н. Джехани - Язык Ада (1988) (Н. Джехани - Язык Ада (1988)) 26 страницаН. Джехани - Язык Ада (1988) (1160771) страница 262019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 26)

— КО%); спи БАГЕ; ргосеввге РК1ХТ РОЯТ1ОХБ 1я Ьерп уог 1 (п 1..8 1оор Р()Т («номер ферзя»); Р()Т(1); Р()Т («находящегося в столбце»); Р()Т(1); Р(3Т («и строке»); Р()Т(К0% - РОВ(1)); ХЕ% ЫХЕ; епг) 1оор; епо РК1ХТ РОБ1Т1ОХБ; епг) СНЕББ ВОАКР; Процедура Е1ОНТ ( ()ЕЕХЯ, которая печатает допустимую конфигурацию, имеет вид пчТЬ ТЕХТ Ю; вяе ТЕХТ 10; ргосеввге ЕЮНТ ()()ЕЕХЯ В рас)гайе 10 1ХТЕОЕК 1я пеп 1ХТЕОЕК Ю(1ХТЕОЕК); 124 Глава Э пве 1О 1ХТЕОЕК; — вставить здесь спецификацию н тело — пакета СНЕББ ВОАКО пзе СНЕББ ВОАК1); рюсейвге РЬАСЕ О(ЗЕЕХБ(1: 1п 1ХТЕОЕК; БЫССЕББН)Ь: ощ ВОО1.ЕАХ) (к У: 1ХТЕОЕК:= 0; — 1 номер строки и 1 номер столбца Ьей(п Б()ССЕББГОЬ:= ГАЬБЕ; згййе по( ЯЗССЕББЛЗЬ апо 1 У= 8 1оор 1:= 1-ь 1; Ы БАГЕ(1, 1) (Ьеп Р13Т ()(ЗЕЕХ(1, 1); Ы 1 < 8 1Ьеп Р1.АСЕ ()1)ЕЕХБ(1 + 1, ЯЗССЕББГУЬ); Ы по1 Я)ССЕББНЗЬ 1Ьеп КЕМОУЕ С1(ЗЕЕХ(Ю, 1); епо Ы; е1зе Я.1ССЕББГ()Ь: = ТЛЕ; епо Ы; епо Ы; епо 1оор; епй РЬАСЕ ЯУЕЕХБ; БУССЕББГОЬ: ВООЬЕАХ; Ьей(п — тело главной программы Е1ОНТ О1)ЕЕХБ РЬАСЕ (,11)ЕЕХБ(1, Б()ССЕББГУЬ); — разместить все 8 ферзей Ы Я)ССЕББН)Ь 1Ьеп РК1ХТ РОБ1Т1ОХБ; — нет необходимости в проверке — правильности процедуры Р1.АСЕ С11)ЕЕХБ, — поскольку — известно, что допустимые конфигура— ции существуют.

епо' Ы; епд Е1ОНТ О()ЕЕХБ; В качестве упражнения для читателя предлагается вариация на тему задачи о восьми ферзях: необходимо распечатать все возможные допустимые позиции ферзей на шахматной доске. Совет: когда все ферзи будут успешно размещены, то печатается позиция, а переменная Б()ССЕББГУЬ устанавливается в ГАЬБЕ для того, чтобы заставить процедуру РЬАСЕ ЯОЕЕХБ искать другие допустимые позиции. Другой вариацией на эту тему будет следующая задача: необходимо обобщить задачу для Х ферзей и шахматной доски Х на Х.

Глава 4 Параллельность ~9~ 4.1. Введение Язык программирования Ада предусматривает средства высокого уровня для программирования параллельных алгоритмов. Параллельность в языке Ада может быть реализована на многомашинном или многопроцессорном комплексе либо смоделирована с помощью средств мультипрограммирования (т. е. путем чередующегося выполнения) иа единственном физическом процессоре. Включение в язык программирования средств параллельности желательно по следующим причинам.

Во-первых, средства параллельности позволяют достаточно просто описывать многие алгоритмы. Во-вторых, на многомашинных или многопроцессорных комплексах программы, явно использующие параллелизм, могут быть реализованы гораздо эффективнее, чем последовательные. Используемая в языке Ада модель параллельности основана на концепции взаимодействующих последовательных процессов Хоара [НОА78[, в рамках которой для синхронизации параллельных процессов и обмена значениями между ними используются операторы ввода-вывода.

Кроме того, в модели параллельности языка Ада чувствуется сильное влияние идей распределенных процессов Брипча Хансена [ВК178[. Разработчики языка Ада отказались от таких механизмов параллельной обработки, как семафоры, события и сигналы, поскольку они являются примитивами низкого уровня. Такой примитив, как мониторы, не был использован из-за присущей ему сложности и из-за того, что связанные с мониторами сигналы имеют низкий уровень [РО1779б[.

4.2. Задачи и рандеву [9.5] Параллельные процессы в языке Ада называются задачами. Задачи, а также подпрограммы, пакеты и настраиваемые модули образуют четыре вида программных модулей, из которых состоит программа на языке Ада. Задача может содержать входы, вызываемые другими задачами. Синхронизация двух задач происходит, когда задача, выполнившая вызов входа, и задача, принимающая этот вызов, могут установить связь посредством рандеву.

Во время рандеву между задачами происходит обмен значениями. Важным средством взаимодействия задач являются входы ". Обмен данными в обоих направлениях осуществляется через фактические параметры в операторе вызова входа и соответствующие формальные параметры оператора принятия (ассерГ) этого входа. о Задачи могут также взаимодействовать через глобальные переменные. Главе 4 Концепция рандеву схематично изображена на рис. 4.1. Время Время Я (е ) Задача А выполнила вылов входа Е яадачи В Задача В тотова принять выхов входа Е А е В Задачи А и В выполняют рандеву на входе Е Рне.

4.1. Рандеву. На рисунке изображены три ситуации. В первом случае (а) задача А вызывает вход Е до того, как задача В готова принять этот вызов. Задача А ждет (ее выполнение приостанавливается) до тех пор, пока задача В ие будет готова к рандеву.

После синхронизации задачи взаимодействуют (т. е. происходит передача данных). Выполнив рандеву, обе задачи продолжают свое выполнение параллельно. Во втором случае (б) задача В готова принять вызов входа до того, как задача А выполнит этот вызов. Задача В ожидает, пока задача А будет готова к рандеву. И наконец, в случае (в) задача А может выполнить вызов входа именно в тот момент, когда задача В готова принять этот вызов.

Используемая для рандеву схема именования является асимметричной: требуется, чтобы вызывающая задача (т. е. задача, выполнившая вызов входа) называла имя вызываемой задачи (т. е. задачи, принимающей вызов входа), в то время как вызываемая задача не называет имя вызывающей. Такая асимметрия позволяет создавать библиотеки, состояшие из лроцессов-служищих. то время как вызываемая задача не называет имя вызывающей. Такая асимметрия позволяет создавать библиотеки, состояшие из л)уоцессов-слухеащих.

ЯЯ ЯЯ Я Дв Я-'Я ЯЯ ЯЯ, ЯЯ ЯЯ Я-'Я ЯЯ Я,Я ЯЯ Я-'Я ЯЯ ЯЯ зз ьиость згу Рандеву между двумя задачами„а также между группами из двух и более задач может происходить в любой момент времени. В общем случае для данной задачи рандеву с другой задачей должно закончиться до начала рандеву с третьей задачей. Однако встречаются ситуации, когда задачи, выполняющие рандеву друг с другом, должны обмениваться значениями с третьей задачей до завершения своего рандеву. Пусть задача А вызывает задачу В для получения некоторой информации.

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

С другой стороны, во время выполнения рандеву с задачей А задача В может принять вызов входа от задачи Т» Во время обмена значениями с задачей Тз задача В может принять еще один вызов входа, например от задачи Тз. Точно так же задача В может обмениваться значениями с задачами Тз, ..., Тп — и Тп. Задача В выполняет рандеву с задачами д,т,,т„.,т„ В этом случае задача В должна закончить свои рандеву с другими задачами в порядке, обратном тому, в котором были установлены, т. е. Тп, ..., Ть А. 128 Глава 4 4.3. Спецификация и тело задачи [9.1! Задачи, подпрограммы, пакеты и настраиваемые модули являются основными видами программных модулей, из которых состоят программы на языке Ада.

Как подпрограмма или пакет, задача состоит из двух частей: спецификации и тела. Спецификация задачи может быть задана в одной из следующих форм: сав1с идентиФикатор; или сад1с идентиФикатор !в описания входов специФикатор представления еид идентиФикатор; Первая форма спецификации определяет задачу без входов. Такую задачу нельзя вызвать другими задачами для выполнения рандеву. (Использование специФикаторов представления, содержащихся в спецификации задачи, рассматри ваегся на примерах.

Более подробно они рассматриваются в гл. 8, посвященно! спецификаторам представления и средствам выражения особенностей, зависящих от реализации.) Тело задачи имеет следующую форму: !ав1с Ьси!у идентиФикатор !д описания Ьей!и последовательность операторов [ ехсер!!оп обработчики исключений 1 епд идентиФикатор (Обработчики исключений рассматриваются в гл.

5, посвященной исключениям.) В качестве примера рассмотрим задачу РКО(э!)СЕК (поставщик), которая считывает некоторый текст из стандартного входного файла и передает этот текст другой задаче — СОХЯЗМЕК (потребитель) (рис. 4.2). Задача СОХЯЗМЕК заменяет все строчные буквы прописными и записывает новый текст в стандартный выходной файл. Стандавтныя вывод Стандаотиььк ввод Рис.

Характеристики

Тип файла
DJVU-файл
Размер
4,41 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6552
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее