Сопрограмма - Большая Энциклопедия Нефти и Газа, статья, страница 4
В развитом обществе "слуга народа" семантически равен "властелину народа". Законы Мерфи (еще...)

Сопрограмма

Cтраница 4


Передача управления от одной сопрограммы к другой.  [46]

Кроме того, поскольку сопрограммы при разделении управления выступают как равные, то передача управления во время игры может быть представлена более прямо. Каждая сопрограмма-игрок всегда передает управление своему левому соседу, за исключением случаев конца розыгрыша взятки или конца торговли, когда управление передается сопрограмме-хозяину. Сопрограмма-хозяин получает управление, только если она действительно должна что-то сделать, и от нее требуется лишь передать управление соответствующему игроку, опреде-лив, какой игрок должен играть следующим.  [47]

В, приведенном примере сопрограммы выполняются последовательно. Возможны и более сложные стратегии.  [48]

При передаче управления статус вызывающей сопрограммы запоминается в переменной типа PROCESS, а из другой переменной того же типа восстанавливается статус вызываемой сопрограммы. Таким образом, переменные типа PROCESS играют ключевую роль при работе с сопрограммами.  [49]

Перед тем как использовать сопрограмму, ее следует создать. Операция создания сопрограммы инициализирует ее дескриптор и делает возможным обращение к ней. Процедура NEWPROCESS, служащая для создания сопрограмм, требует нескольких параметров.  [50]

Существует важное родство между сопрограммами и многопроходными алгоритмами.  [51]

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

Размер рабочего пространства зависит от сопрограммы. Простые сопрограммы требуют всего несколько десятков слов. Сложные могут требовать тысячи слов. Будьте внимательны с теме из них, которые используют рекурсивный вызов процедур, содержат в качестве локальных переменных массивы, а также вызывают процедуры из глобальных модулей. Объем требуемой памяти зависит от реализации. Для его определения необходимо ознакомиться с руководством по системе.  [53]



Страницы:      1    2    3    4