|
Эта публикация цитируется в 1 научной статье (всего в 1 статье)
Computing methodologies and applications
Операционная семантика аннотированных Reflex программ
И. С. Ануреевab a Институт систем информатики им. А.П. Ершова СО РАН, пр. Акад. Лаврентьева, 6, г. Новосибирск, 630090 Россия
b Институт автоматики и электрометрии СО РАН, пр. Акад. Коптюга, 1, г. Новосибирск, 630090 Россия
Аннотация:
Reflex — процесс-ориентированный язык, который обеспечивает разработку простого в обслуживании управляющего программного обеспечения для программируемых логических контроллеров. Язык был успешно использован в нескольких системах управления с повышенными требованиями к надежности, например, в системе управления печью для выращивания монокристаллов кремния и в комплексе контроля радиоэлектронной аппаратуры. В настоящее время основной целью языкового проекта Reflex является разработка методов формальной верификации для Reflex программ для того, чтобы гарантировать повышенную надежность создаваемого на его основе программного обеспечения. В статье представлена формальная операционная семантика Reflex программ, расширенных аннотациями, описывающими формальную спецификацию программных требований, как необходимый базис для применения таких методов. Дан краткий обзор языка Reflex и приведен простой пример его использования — управляющая программа для сушилки рук. Определены понятия окружения и переменных, разделяемых с окружением, позволяющие абстрагироваться от конкретных портов ввода/вывода. Определены типы аннотаций, задающие ограничения на значения переменных при запуске программы, ограничения на окружение (в частности, на объект управления), инварианты цикла управления, пред- и постусловия внешних функций, используемых в Reflex программах. Аннотированный Reflex также использует стандартные аннотации assume, assert и havoc. Операционная семантика аннотированных Reflex программ использует глобальные часы и локальные часы отдельных процессов, время которых измеряется в количестве итераций цикла управления, для моделирования временных ограничений на исполнение процессов в определенных состояниях. Она хранит полную историю изменений значений разделяемых переменных для более полного описания временных свойств программы и ее окружения. Семантика учитывает бесконечность цикла выполнения программы, логику управления переходами процессов из состояния в состояние и взаимодействие процессов между собой и с окружением. Расширение формальной операционной семантики языка Reflex на аннотации упрощает доказательство корректности разрабатываемого авторами трансформационного подхода к дедуктивной верификации Reflex программ, трансформирующего аннотированную Reflex программу к аннотированной программе на сильно ограниченном подмножестве языка C, за счет сведения сложного доказательства сохранения истинности требований к программе при трансформации к более простому доказательству эквивалентности исходной и результирующей аннотированных программ относительно их операционных семантик.
Ключевые слова:
операционная семантика, язык Reflex, система управления, управляющее программное обеспечение, программируемый логический контроллер, аннотация, аннотированная программа.
Поступила в редакцию: 12.09.2019 Исправленный вариант: 15.11.2019 Принята в печать: 27.11.2019
Образец цитирования:
И. С. Ануреев, “Операционная семантика аннотированных Reflex программ”, Модел. и анализ информ. систем, 26:4 (2019), 475–487
Образцы ссылок на эту страницу:
https://www.mathnet.ru/rus/mais692 https://www.mathnet.ru/rus/mais/v26/i4/p475
|
|