Блеск (язык программирования)
Lustre — это формально определенный , декларативный и синхронный язык программирования потоков данных для программирования реактивных систем. Это началось как исследовательский проект в начале 1980-х годов. Формальное представление языка можно найти в Трудах IEEE 1991 года. [1] В 1993 году он перешел к практическому промышленному использованию в коммерческом продукте в качестве основного языка промышленной среды SCADE , разработанного Esterel Technologies . Сейчас он используется в критически важном программном обеспечении управления самолетами . [2] вертолеты и атомные электростанции .
Структура программ Lustre
[ редактировать ]Программа Lustre представляет собой серию определений узлов , записанных как:
node foo(a : bool) returns (b : bool);
let
b = not a;
tel
Где foo
это имя узла, a
— имя единственного входа этого узла и b
— это имя одного выхода.
В этом примере узел foo
возвращает отрицание своего ввода a
, что является ожидаемым результатом.
Внутренние переменные
[ редактировать ]Дополнительные внутренние переменные могут быть объявлены следующим образом:
node Nand(X,Y: bool) returns (Z: bool);
var U: bool;
let
U = X and Y;
Z = not U;
tel
Примечание. Порядок уравнений не имеет значения, порядок строк U = X and Y;
и Z = not U;
не меняет результат.
Специальные операторы
[ редактировать ]pre п |
Возвращает предыдущее значение p |
п -> д |
Установите p как начальное значение выражения q |
Примеры
[ редактировать ]Обнаружение края
[ редактировать ]node Edge (X : bool) returns (E : bool);
let
E = false -> X and not pre X;
tel
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ [1] Н. Хальбвакс и др. Язык программирования синхронных потоков данных LUSTRE. В Proc. IEEE 1991 Том. 79, № 9. По состоянию на 17 марта 2014 г.
- ^ «Истории успеха SCADE» . Проверено 8 июня 2013 г.
Внешние ссылки
[ редактировать ]- Synchrone Lab. Архивировано 25 ноября 2020 г. на Wayback Machine. официальном сайте
- SCADE Страница продукта