Lustre es un lenguaje de programación de flujo de datos sincrónico , declarativo y formalmente definido para la programación de sistemas reactivos. Comenzó como un proyecto de investigación a principios de la década de 1980. Se puede encontrar una presentación formal del lenguaje en las Actas del IEEE de 1991. [1] En 1993 progresó hacia un uso industrial práctico en un producto comercial como el lenguaje central del entorno industrial SCADE, desarrollado por Esterel Technologies . Ahora se utiliza para software de control crítico en aeronaves , [2] helicópteros y plantas de energía nuclear .
Estructura de los programas Lustre
Un programa Lustre es una serie de definiciones de nodos , escritas como:
nodo foo ( a : bool ) devuelve ( b : bool );
sea
b = no a ;
tel
Donde fooes el nombre del nodo, aes el nombre de la entrada única de este nodo y bes el nombre de la salida única. En este ejemplo, el nodo foodevuelve la negación de su entrada a, que es el resultado esperado.
Variables internas
Se pueden declarar variables internas adicionales de la siguiente manera:
nodo Nand ( X , Y : bool ) devuelve ( Z : bool );
var U : bool ;
sea
U = X e Y ;
Z = no U ;
tel
Nota: El orden de las ecuaciones no importa, el orden de las líneas U = X and Y;no Z = not U;cambia el resultado.
Operadores especiales
Ejemplos
Detección de bordes
nodo Edge ( X : bool ) devuelve ( E : bool );
sea
E = falso -> X y no pre X ;
tel
Véase también
Referencias
- ^ [1] N. Halbwachs et al. El lenguaje de programación de flujo de datos sincrónico LUSTRE. En Proc. IEEE 1991 Vol. 79, No. 9. Consultado el 17 de marzo de 2014.
- ^ "Historias de éxito de SCADE" . Consultado el 8 de junio de 2013 .
Enlaces externos
- Synchrone Lab Archivado el 25 de noviembre de 2020 en Wayback Machine Sitio web oficial
- Página de productos SCADE