Потік керування

Мова програмування моєї мрії.
  1. Розпаралелення. Блок, всередині якого можна визначити паралельні нитки процесів. Усі дії виконуються в тому порядку, в якому вони записані, але якщо трапляється нова нитка (див. наступний пункт), то вона запускається (щойно будуть вільні обчислювальні потужності), і негайно продовжується обробка послідовності команд, записаних далі по тексту після її опису. Після того, як усі дії, записані безпосередньо в блоці виконано, очікується закінчення роботи усіх паралельних ниток, запущених цим блоком.
  2. Нитка паралельних обчислень. Повинна міститися в блоці розпаралелення. Блок, в якому записується послідовність дій, що можуть виконуватись одночасно з виконанням інших ниток (і основного потоку поза явно позначеними нитками). В кінці нитки перевіряється умова. Якщо значення умовного виразу істинне, то вихід швидкий. Це значить, що блок розпаралелення закінчує роботу одразу, як тільки з’явиться хоча б один швидкий вихід з нитки (і буде закінчено виконання усіх дій, описаних у цьому блоці поза нитками). При цьому виконання усіх інших паралельних ниток переривається, а їхні результати ігноруються. («Хто перший знайде»). Якщо значення хибне, то вихід повільний. Це значить, що блок розпаралелення не буде закінчено доти, поки в ньому є нитки, що ще працюють, або одна з них не матиме швидкого виходу. («Дочекатися усіх»).
  3. Структура з міткою. Блок, всередині якого можна розмістити умовні структури. Блок визначає мітку переходу для них. На відміну від інших блоків-рамок («початок — кінець»), цей блок має форму вісімки («початок — мітка — кінець»). Дії можуть бути записані як перед міткою, так і після неї, завдяки чому цей блок можна використовувати і для вибору, і для циклу.
  4. Умовна структура. Повинна міститися в структурі з міткою. Блок, який змінює порядок виконання дій в залежності від умови. Початок блоку — перевірка умови. Якщо значення істинне, то дії, записані всередині блоку виконуються, після чого відбувається перехід на мітку структури, в яку вкладено цей умовний блок. Якщо мітку розташовано вище, то утворюється цикл, якщо нижче, то записані між ним і міткою дії пропускаються. Якщо значення хибне, то умовний блок пропускається, а звичайний порядок виконання дальших дій у послідовності, в якій вони є записані, не порушується.
Як це пишеться? Ніяк! Малювати квадратиками. Коли ми розглядаємо якийсь блок, то бачимо квадратик, квадратик, який його охоплює, квадратики, які в нього вкладені, ну й текст безпосередньо цього блока.

  1. ┌┐
    ╘╛

  2. ┌┐
    ╘┘

  3. ┌┐
    ├┤
    └┘

  4. ╒┐
    └┘
Наприклад, звичайне:
┌┐
якщо виконується умова
╒┐
зроби це
└┘
інакше перевір іншу умову
╒┐
якщо вона виконується, зроби це
└┘
а ні — то це
├┤
і у всякому разі це
└┘
┌┐
далі буде цикл
├┤
якісь дії в ньому виконай щонайменше один раз
потім перевір умову
╒┐
поки умова виконується, зроби це
і повтори
└┘
нарешті зроби це
└┘

Коментарі

Популярні публікації