stringtranslate.com

Lustre (язык программирования)

Lustre — это формально определенный , декларативный и синхронный язык программирования потоков данных для программирования реактивных систем. Он начинался как исследовательский проект в начале 1980-х годов. Формальное представление языка можно найти в Трудах IEEE 1991 года. [1] В 1993 году он перешел к практическому промышленному использованию в коммерческом продукте в качестве основного языка промышленной среды SCADE, разработанной Esterel Technologies . В настоящее время он используется для критического программного обеспечения управления в самолетах , [2] вертолетах и ​​атомных электростанциях .

Структура программ Lustre

Программа Lustre представляет собой ряд определений узлов , записанных следующим образом:

узел  foo ( a  :  bool )  возвращает  ( b  :  bool ); пусть  b  =  не  a ; tel

Где foo— имя узла, a— имя единственного входа этого узла, b— имя единственного выхода. В этом примере узел fooвозвращает отрицание своего входа a, что является ожидаемым результатом.

Внутренние переменные

Дополнительные внутренние переменные могут быть объявлены следующим образом:

узел  Nand ( X , Y :  bool )  возвращает  ( Z :  bool );  var  U :  bool ; пусть  U  =  X  и  Y ;  Z  =  не  U ; tel

Примечание: порядок уравнений не имеет значения, порядок строк U = X and Y;не Z = not U;влияет на результат.

Специальные операторы

Примеры

Обнаружение краев

узел  Edge  ( X  :  bool )  возвращает  ( E  :  bool ); пусть  E  =  false  ->  X  и  не  pre  X ; tel

Смотрите также

Ссылки

  1. ^ [1] Н. Хальбвакс и др. Язык программирования синхронных потоков данных LUSTRE. В Proc. IEEE 1991 Vol. 79, No. 9. Доступ 17 марта 2014 г.
  2. ^ "Истории успеха SCADE" . Получено 8 июня 2013 г.

Внешние ссылки