LocalazyLocalazy
Esterel es un lenguaje de programación único diseñado para el desarrollo de sistemas críticos de seguridad. Se basa en el modelo de programación síncrona, que permite desarrollar fácilmente sistemas altamente concurrentes y en tiempo real. El lenguaje fue desarrollado en los años 80 por un equipo del Instituto Francés de Investigación en Informática y Control (INRIA), dirigido por el profesor Gerard Berry. Esterel se ha utilizado en una amplia gama de aplicaciones, como el desarrollo de los sistemas de control del avión Airbus A380, el sistema de control del cohete francés Ariane 5 y el reactor de fusión japonés Superconducting Tokamak. El modelo de programación síncrona utilizado por Esterel se basa en el concepto de "señales", que son variables que pueden adoptar un conjunto finito de valores. Estos valores suelen ser booleanos (verdadero/falso) o enteros (0, 1, 2, etc.). Una señal sólo puede cambiar de valor en determinados momentos, denominados "eventos". Los eventos pueden ser "externos" (desencadenados por una entrada externa, como la pulsación de un botón) o "internos" (desencadenados por el propio programa). Los programas Esterel se construyen a partir de un conjunto de "módulos" que se conectan entre sí para formar un grafo dirigido. Cada módulo tiene un conjunto de puertos de entrada y salida, y un conjunto de "señales" que se conectan a los puertos. Los módulos pueden conectarse entre sí en cualquier orden, y el orden en que se ejecutan viene determinado por el "flujo de señales" a través del grafo. El compilador de Esterel generará automáticamente código que ejecutará los módulos en el orden correcto, basándose en el flujo de señales. Esto facilita el desarrollo de sistemas altamente concurrentes, ya que el programador no tiene que preocuparse por el orden en que se ejecutarán los módulos. El uso del modelo de programación síncrona también permite el desarrollo de sistemas en tiempo real, ya que la temporización de los eventos puede controlarse con precisión. Los programas Esterel pueden compilarse para ejecutarse en una amplia gama de plataformas, incluidos los sistemas embebidos. El lenguaje Esterel ha tenido mucho éxito en el desarrollo de sistemas críticos para la seguridad, debido a su capacidad para desarrollar fácilmente sistemas concurrentes y en tiempo real. Se ha utilizado en una gran variedad de aplicaciones, como sistemas de control de aeronaves, sistemas de control de cohetes y sistemas de control de reactores de fusión.