Корректность

Общепризнанно, что доказательство корректности нетривиальных программ является трудной задачей. Эти трудности усиливаются для параллельного программирования из-за неопределенности, которая может возникнуть при одновременном обращении двух или более процессов к одной ячейке.

Представленный метод гарантирует просмотр всех входов и выходов процесса. Кроме того, отношения между процессами определены так, что становится возможным распознавание ситуаций, когда входы и/или выходы могут одновременно обращаться к одной ячейке. Поэтому при помощи анализа пересечений соответствующих входных и выходных множеств становится возможным определить, какие переменные при параллельном программировании приводят к неопределенности. Эта информация может быть использована на этапе проектирования программы для исключения непредусмотренного введения в программу неопределенностей. Более того, знание неопределенностей может быть привнесено в описание программы, и существующие последовательные методы (такие, как символьные вычисления) могут тогда использоваться для верификации программ.

Заключение: Эта статья посвящена обсуждению программ для многопроцессорных систем. В случае если последовательная программа переносится на многопроцессорную систему, изучение использования переменных позволяет определить, где операторы могут выполняться параллельно. Представляется возможным путем рассмотрения использования переменных выразить параллелизм таким образом, чтобы это не влияло на корректность создаваемых программ.