Esterel | |
Fecha de la primera versión | Los ochenta |
---|---|
Sitio web | www.esterel.org |
Esterel es el nombre de un lenguaje de programación diseñado en la década de 1980 por un grupo liderado por Gérard Berry , principalmente en Francia y en la Universidad de Columbia.
Se dice que este lenguaje es sincrónico y reactivo . Es imperativo y permite la simple expresión de paralelismo y preferencia . Por lo tanto, se adapta bien al modelado de sistemas predominantemente controlados.
Como lenguaje perteneciente a la clase de sistemas informáticos reactivos :
Este lenguaje puede modelar muchos sistemas y entornos: software , hardware, control de flujo, etc.
Una señal S se puede activar o desactivar. Se activa a través de la Emit S instrucción . Cambiamos su valor (por ejemplo, un valor de tipo entero) mediante la instrucción emit S (valor) .
Para ilustrar la instantaneidad de la activación de las señales, las instrucciones emiten O; emitir O1; emitir O2; dan como resultado la activación instantánea y simultánea en una sola iteración de las tres señales O, O1 y O2. Otra ilustración: el símbolo || significa la paralelismo de las instrucciones que separa.
Un ejemplo de un módulo:
module ABRO: input A, B, R; output O; loop [ await A || await B ]; emit O each R end moduleUn ejemplo de uso del módulo anterior en otro módulo:
module ABCRO: input A, B, C, R; output O; signal AB in run ABRO [ signal AB / O ] || run ABRO [ signal AB / A, C / B ] end moduleAB / O significa que la O en la subfunción ABRO se denomina AB en la función ABCRO.
El lenguaje aún está en desarrollo, sin un estándar establecido real. Hay varios compiladores de Esterel que le permiten generar código C , VHDL o Verilog . Esterel Technologies inició un proceso de estandarización para la versión 7 del lenguaje en el IEEE en 2005. El manual de referencia presentado para la estandarización está disponible.
Existe una versión orientada a objetos: Esterel ++, diseñada por Dassault Aviation. Se proponen diferentes formalismos gráficos (Syncharts, UML).