Потік керування
Мова програмування моєї мрії.
- Розпаралелення. Блок, всередині якого можна визначити паралельні нитки процесів. Усі дії виконуються в тому порядку, в якому вони записані, але якщо трапляється нова нитка (див. наступний пункт), то вона запускається (щойно будуть вільні обчислювальні потужності), і негайно продовжується обробка послідовності команд, записаних далі по тексту після її опису. Після того, як усі дії, записані безпосередньо в блоці виконано, очікується закінчення роботи усіх паралельних ниток, запущених цим блоком.
- Нитка паралельних обчислень. Повинна міститися в блоці розпаралелення. Блок, в якому записується послідовність дій, що можуть виконуватись одночасно з виконанням інших ниток (і основного потоку поза явно позначеними нитками). В кінці нитки перевіряється умова. Якщо значення умовного виразу істинне, то вихід швидкий. Це значить, що блок розпаралелення закінчує роботу одразу, як тільки з’явиться хоча б один швидкий вихід з нитки (і буде закінчено виконання усіх дій, описаних у цьому блоці поза нитками). При цьому виконання усіх інших паралельних ниток переривається, а їхні результати ігноруються. («Хто перший знайде»). Якщо значення хибне, то вихід повільний. Це значить, що блок розпаралелення не буде закінчено доти, поки в ньому є нитки, що ще працюють, або одна з них не матиме швидкого виходу. («Дочекатися усіх»).
- Структура з міткою. Блок, всередині якого можна розмістити умовні структури. Блок визначає мітку переходу для них. На відміну від інших блоків-рамок («початок — кінець»), цей блок має форму вісімки («початок — мітка — кінець»). Дії можуть бути записані як перед міткою, так і після неї, завдяки чому цей блок можна використовувати і для вибору, і для циклу.
- Умовна структура. Повинна міститися в структурі з міткою. Блок, який змінює порядок виконання дій в залежності від умови. Початок блоку — перевірка умови. Якщо значення істинне, то дії, записані всередині блоку виконуються, після чого відбувається перехід на мітку структури, в яку вкладено цей умовний блок. Якщо мітку розташовано вище, то утворюється цикл, якщо нижче, то записані між ним і міткою дії пропускаються. Якщо значення хибне, то умовний блок пропускається, а звичайний порядок виконання дальших дій у послідовності, в якій вони є записані, не порушується.
┌┐
╘╛
┌┐
╘┘
┌┐
├┤
└┘
╒┐
└┘
┌┐
якщо виконується умова
╒┐
зроби це
└┘
інакше перевір іншу умову
╒┐
якщо вона виконується, зроби це
└┘
а ні — то це
├┤
і у всякому разі це
└┘
┌┐
далі буде цикл
├┤
якісь дії в ньому виконай щонайменше один раз
потім перевір умову
╒┐
поки умова виконується, зроби це
і повтори
└┘
нарешті зроби це
└┘
якщо виконується умова
╒┐
зроби це
└┘
інакше перевір іншу умову
╒┐
якщо вона виконується, зроби це
└┘
а ні — то це
├┤
і у всякому разі це
└┘
┌┐
далі буде цикл
├┤
якісь дії в ньому виконай щонайменше один раз
потім перевір умову
╒┐
поки умова виконується, зроби це
і повтори
└┘
нарешті зроби це
└┘
Коментарі
Дописати коментар