stringtranslate.com

Lustre (lenguaje de programación)

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. ^ [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.
  2. ^ "Historias de éxito de SCADE" . Consultado el 8 de junio de 2013 .

Enlaces externos