stringtranslate.com

SEÑAL (lenguaje de programación)

SIGNAL es un lenguaje de programación basado en flujo de datos sincronizados (flujos + sincronización): un proceso es un conjunto de ecuaciones sobre flujos elementales que describen tanto datos como control. [1]

El modelo formal SIGNAL permite describir sistemas con varios relojes [2] [3] (sistemas policrónicos) como especificaciones relacionales . Las relaciones son útiles como especificaciones parciales y como especificaciones de dispositivos no deterministas (por ejemplo, un bus no determinista ) o procesos externos (por ejemplo, un conductor de automóvil inseguro).

El uso de SIGNAL permite especificar [ 4] una aplicación, diseñar una arquitectura , refinar componentes detallados hasta llegar a RTOS [ aclaración necesaria ] o descripción de hardware. El modelo SIGNAL admite una metodología de diseño que va desde la especificación hasta la implementación , desde la abstracción hasta la concretización , desde la sincronía hasta la asincronía .

SIGNAL ha sido desarrollado principalmente en el equipo INRIAEspresso desde la década de 1980, al mismo tiempo que lenguajes de programación similares, Esterel y Lustre .

Una breve historia

El lenguaje SIGNAL fue diseñado por primera vez para aplicaciones de procesamiento de señales a principios de la década de 1980. Se ha propuesto para responder a la demanda de un nuevo lenguaje específico de dominio para el diseño de aplicaciones de procesamiento de señales , adoptando un flujo de datos y un estilo de diagrama de bloques con operadores de matriz y ventana deslizante . P. Le Guernic, A. Benveniste y T. Gautier han estado a cargo de la definición del lenguaje. El primer artículo sobre SIGNAL se publicó en 1982, mientras que la primera descripción completa de SIGNAL apareció en la tesis doctoral de T. Gautier. La representación simbólica de SIGNAL a través de z/3z (sobre [-1,0,1]) se introdujo en 1986. Un compilador completo de SIGNAL basado en el cálculo de relojes en la jerarquía de relojes booleanos, fue descrito por L. Besnard en su tesis doctoral en 1992. El cálculo de relojes ha sido mejorado posteriormente por T. Amagbegnon con la propuesta de formas canónicas arborescentes.

Durante la década de 1990, el dominio de aplicación del lenguaje SIGNAL se ha extendido a sistemas embebidos generales y de tiempo real. El estilo de especificación orientado a las relaciones permitió la construcción creciente de los sistemas, y también condujo al diseño considerando sistemas multi-clock, en comparación con la implementación original basada en un solo reloj de Esterel y Lustre. Además, el diseño e implementación de sistemas embebidos distribuidos también se tuvieron en cuenta en SIGNAL. La investigación correspondiente incluye los métodos de optimización propuestos por B. Chéron, los modelos de clusterización definidos por B. Le Goff, la abstracción y compilación separada formalizada por O. Maffeïs, y la implementación de programas distribuidos desarrollados por P. Aubry.

Los conjuntos de herramientas de policronía

El conjunto de herramientas Polychrony es un entorno de desarrollo de código abierto para sistemas críticos/integrados basado en SIGNAL, un lenguaje de flujo de datos policrónico en tiempo real . Proporciona un entorno unificado basado en modelos para realizar la exploración de diseños mediante el uso de metodologías de diseño descendentes y ascendentes respaldadas formalmente por transformaciones de modelos de diseño desde la especificación hasta la implementación y desde la sincronía hasta la asincronía. Se puede incluir en sistemas de diseño heterogéneos con varios formalismos de entrada y lenguajes de salida.

La policronía es un conjunto de herramientas compuesto por:

El entorno de las PYMES

El entorno SME (SIGNAL Meta under Eclipse) es un front-end de Polychrony en el entorno Eclipse basado en tecnologías de ingeniería basada en modelos (MDE). Consiste en un conjunto de complementos de Eclipse que se basan en Eclipse Modeling Framework (EMF). El entorno está construido alrededor de SME, un metamodelo [7] del lenguaje SIGNAL ampliado con conceptos de autómatas de modo [8] .

El entorno PYME está compuesto por varios complementos que corresponden a:

Véase también

Notas y referencias

  1. ^ P. Le Guernic, T. Gautier, M. Le Borgne y C. Le Maire. Programación de aplicaciones en tiempo real con SIGNAL. Actas del IEEE , 79(9) : 1321-1336, septiembre de 1991.
  2. ^ P. Le Guernic, J.-P. Talpin y J.-C. Le Lann. Policronía para el diseño de sistemas. Journal for Circuits, Systems and Computers , número especial sobre diseño de hardware específico para aplicaciones, World Scientific, abril de 2003 (también disponible como INRIA Research Report 4715, 2003).
  3. ^ A. Gamatié y T. Gautier. El enfoque multireloj síncrono SIGNAL para el diseño de sistemas integrados distribuidos. IEEE Transactions on Parallel and Distributed Systems , 21(5) : 641-657, mayo de 2010.
  4. ^ A. Gamatié. Diseño de sistemas embebidos con el lenguaje de programación SIGNAL: especificación reactiva y sincrónica. ISBN  978-1-4419-0940-4 . Libro editado por Springer - Nueva York, 260 páginas, 2010.
  5. ^ A. Benveniste, P. Bournai, T. Gautier, M. Le Borgne, P. Le Guernic y H. Marchand. El lenguaje síncrono declarativo de señales: síntesis de controladores y diseño de sistemas/arquitecturas. 40.ª Conferencia IEEE sobre decisiones y control, 2001.
  6. ^ H. Marchand, P. Bournai, M. Le Borgne, P. Le Guernic, Síntesis de controladores de eventos discretos basados ​​en el entorno de señal, Sistema dinámico de eventos discretos: teoría y aplicaciones , 10(4):325-346, octubre de 2000.
  7. ^ C. Brunette, J.-P. Talpin, A. Gamatié y T. Gautier. Un metamodelo para el diseño de sistemas policrónicos. Journal of Logic and Algebraic Programming , 78(4) : 233-259, Elsevier, abril de 2009.
  8. ^ J.-P. Talpin, C. Brunette, T. Gautier y A. Gamatié. Autómatas de modo policrónico. Actas de la 6.ª conferencia internacional de ACM e IEEE sobre software integrado (EMSOFT '06), ACM Press, octubre de 2006, 83-92.

Enlaces externos