Page 73 - 6571
P. 73

{C Ù    pre ( )} { }a  a C .                           (1)

                  Таким чином, критичне твердження  C  є інваріантним щодо
            дії присвоєння a.

                  Як приклад розглянемо останню з наведених вище програм.
            Передумова першого процесу є критичним твердженням. На ньо-
            го не впливає оператор присвоєння в другому процесі, оскільки

            істинна наступна трійка:



                  {(x == 0 Úx == 2) Ù (x == 0 Úx == 1)}
                  x = x+2;
                  {x == 0 Úx == 2}

                  Перший предикат спрощується до x == 0, тому після дода-

            вання 2 до змінної x значення змінної x буде або 0, або 2. Дана
            трійка висловлює наступний факт: якщо другий процес викону-
            ється перед першим, то на початку виконання першого процесу

            змінна x буде мати значення 2. У даній програмі є ще три крити-
            чних твердження: постумова першого процесу та перед- і посту-
            мова  другого  процесу.  Усі  інші  докази  взаємного  невтручання
            аналогічні наведеному.


                  Запитання для самоперевірки

                  1. Що розуміють під терміном «логіка програмування»?

                  2. Із яких правил складається будь-яка формальна логічна си-
            стема?
                  3. Коли логіка програмування є несуперечливою щодо інтер-

            претації?
                  4. Коли логіка програмування є повною щодо інтерпретації?
                  5. Як називаються формули у логіці програмування?

                  6. З чого складається «трійка» у логіці програмування?
                  7. Які чотири найбільш важливих правила виведення у логіці
            програмування Ви знаєте?
                  8. Що таке інваріант циклу у паралельній програмі?

                  9. У якому випадку говорять, що один процес втручається в
            (впливає на) інший?
                  10. В чому полягає принцип взаємного невтручання?






                                                        72
   68   69   70   71   72   73   74   75   76   77   78