Парадигмы программирования

       

Реализация процессов


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

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

При определении взаимодействий используется понятие "протокол". Протокол - это последовательность символов, обозначающих произошедшие события.

< вправо вверх вправо >

Обычные операции над списками обеспечивают основные манипуляции с протоколами, возникающими при определении взаимодействий:

Конкатенация списков сужение - пересечение голова-хвост * - все конечные протоколы порядок по префиксам длина замена символа чередование индекс обратный порядок выборка-вырезка композиция

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



Содержание раздела