Page 71 - 6571
        P. 71
     У  другій  трійці  постумова  слабша,  ніж  у  першій,  оскільки
            вона характеризує більше станів (значення x може як бути рівним
            1, так і взагалі бути невід’ємним числом).
                  8.3 Семантика паралельного виконання
                  Оператор  паралельного  виконання  co  виступає  оператором
            керування.  Отже,  його  дія  описується  правилом  виведення,  що
            враховує вплив паралельного виконання.  Процеси  у свою чергу
            складаються з послідовних операторів і операторів синхронізації,
            таких як оператор await.
                  З  погляду  часткової  коректності  дія  оператора  < awa
            t (B) S; >  найбільш  схожа  на  дію  оператора  іf,  для  якого
            умова  B істинна, коли починається виконання  S . Отже, правило
            висновку для оператора await аналогічне правилу виведення для
            оператора іf.
                                                {P Ù   B } { }S Q
                                                                         .
                                          { }P <  await  ( ) ; { }B S >  Q
                  Дана гіпотеза говорить наступне: «якщо виконання  S  почи-
            нається в стані, коли  P та  B істинні, і завершується, то Q  також
            буде істинним». Отже, оператор await призводить до стану, що
            задовольняє  Q , якщо починається в стані, що задовольняє  P (за
            умови,  що  виконання  оператора  await  завершується).  Правила
            виведення нічого не говорять про можливі затримки виконання,
            оскільки затримки впливають на  властивість живучості, а  не на
            властивість безпеки.
                  Тепер  розглянемо  вплив  паралельного  виконання,  заданого,
            наприклад, наступним оператором:
                  co S ; // S ; // ... // S ; oc;
                        1           2                     n
                  Припустимо,  що  для  кожного  оператора  наступний  вираз  є
            істинним:
                                                  { }P S  i  { }Q
                                                               i
                                                     i
                  У відповідності з інтерпретацією трійок це означає, що якщо
            S  починається в стані, що задовольняє P  та S , і завершується, то
                                                                     i
              i
                                                                            i
            стан задовольняє Q . Для того щоб ця інтерпретація залишалася
                                        i
            вірною при паралельному виконанні, процеси повинні починати-
                                                        70





