Esterel (idioma)

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.

Sintaxis / comportamiento del lenguaje

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 module

Un 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 module

AB / 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).

Notas

  1. Manual de referencia

Ver también

Otros lenguajes sincrónicos

enlaces externos