Использование B-метода для проверки структурированных данных
Я пытаюсь использовать B-метод как механизм формального указания структурированных данных.
Как в функции, которая анализирует блок байтов, представляющий некоторые данные. Все примеры, которые я могу найти, представляют собой некоторую форму последовательного конечного автомата (система поездов, система управления и т. д.), определяемую как машины (для которых, как я понимаю, в основном используется B-метод).
В качестве примера я пытаюсь формально указать синтаксический анализ DNS-пакета. Таким образом, можно частично или частично доказать, что функция синтаксического анализа удовлетворяет определенным условиям, поэтому можно сказать, что пакет искажен или нет.
Я попробовал инструмент Atelier, основанный на QT, как подход к реализации чего-то подобного, но, похоже, все это предназначено для машин упорядоченных событий.
1 ответ
Для таких целей в промышленности использовался метод B. Материалов в открытом доступе не так много. Для вдохновения вы можете взглянуть на набор инструментов Systerel S2OPC OPC UA (https://gitlab.com/systerel/S2OPC).
Есть некоторые разработки B вbsrc
папка.