Sternol — это специализированный декларативный язык программирования, разработанный компанией Adtranz Signal для описания логики централизации в системах железнодорожной автоматики, например в системе
EBILOCK
-950. Он используется для описания зависимостей между станционными объектами (стрелками, светофорами, сигналами и др.) и формирования управляющих воздействий.
Некоторые особенности Sternol
Значения переменных определяются состоянием системы.
Правила изменения значений переменных описываются по законам булевой алгебры (И, ИЛИ, НЕ).
Файл, созданный на Sternol, транслируется в машинный код для последующего ввода в компьютер централизации.
Системные программы в целях безопасности диверсифицируются — существуют в двух версиях, каждая из которых написана отдельной группой программистов.
На основе описания на Sternol с помощью компилятора STECOMP950 автоматически создаются две версии ПО логики централизации в формате языка ANSI-C, которые затем компилируются в исполняемый формат для Ebilock-950.
Пример использования
с помощью Sternol можно описать состояния реле, используя булевы операции. Например, для описания состояния реле R1 можно использовать следующее условие: R1=1, если (R2=1) OR ((R1=1) AND (R3=1)), где значение 1 соответствует состоянию «реле под током», а значение 0 — состоянию «реле без тока».
Дополнительные возможности: код на Sternol может подвергаться формальной верификации с помощью инструментов, например SVT от Prover Technology. Это позволяет проверять корректность конфигурации системы и находить все допустимые маршруты движения поездов