SIGNAL es un lenguaje de programación basado en el flujo de datos sincronizados (flujos + sincronización): un proceso es un conjunto de ecuaciones sobre flujos elementales que describen tanto los datos como el control. [1]
El modelo formal SIGNAL proporciona la capacidad de 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 RTOS [ aclaración necesaria ] o descripción del hardware. El modelo SIGNAL soporta una metodología de diseño que va de la especificación a la implementación , de la abstracción a la concretización , de la sincronía a la asincronía .
SIGNAL se ha desarrollado principalmente en el equipo de INRIA Espresso desde la década de 1980, al mismo tiempo que lenguajes de programación similares, Esterel y Lustre .
Una breve historia
El lenguaje SIGNAL se diseñó por primera vez para aplicaciones de procesamiento de señales a principios de la década de 1980. Se ha propuesto 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 estilo de flujo de datos y diagrama de bloques con operadores de matriz y ventana deslizante . P. Le Guernic, A. Benveniste y T. Gautier se han encargado 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 del reloj en la jerarquía de los relojes booleanos, fue descrito por L. Besnard en su Tesis doctoral en 1992. El cálculo del reloj 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 generales integrados y en tiempo real. El estilo de especificación orientada a las relaciones permitió la construcción cada vez mayor de los sistemas y también llevó al diseño a considerar sistemas de múltiples relojes, en comparación con la implementación original basada en un solo reloj de Esterel y Lustre. Además, en SIGNAL también se tuvo en cuenta el diseño e implementación de sistemas embebidos distribuidos. La investigación correspondiente incluye los métodos de optimización propuestos por B. Chéron, los modelos de agrupamiento 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 Polychrony
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 impulsado por modelos para realizar la exploración del diseño mediante el uso de metodologías de diseño descendente y ascendente respaldadas formalmente por transformaciones del modelo de diseño desde la especificación hasta la implementación y desde la sincronía hasta la asincronía. Puede incluirse en sistemas de diseño heterogéneos con varios formalismos de entrada y lenguajes de salida.
Polychrony es un conjunto de herramientas compuesto por:
- Un compilador de lotes SIGNAL
- Una interfaz gráfica de usuario (editor + acceso interactivo a funcionalidades de compilación)
- La herramienta Sigali , un sistema formal asociado para la verificación formal y la síntesis del controlador . [5] Sigali se desarrolla junto con el proyecto INRIA Vertecs . [6]
El entorno de las PYME
El entorno SME (SIGNAL Meta bajo 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 se basa en SME, un metamodelo [7] del lenguaje SIGNAL ampliado con conceptos de modo autómata [8] .
El entorno PYME se compone de varios complementos que corresponden a:
- Un editor reflexivo : una vista de árbol que permite manipular modelos que se ajustan al metamodelo SME.
- Un modelador gráfico basado en las facilidades de modelado TopCased (ver imagen anterior).
- Un editor reflexivo y una vista Eclipse para crear escenarios de compilación.
- Una conexión directa con los servicios de Polychrony ( recopilación , verificación formal , etc.).
- Una documentación y ejemplos de modelos.
Ver también
- Esterel
- Lustre (lenguaje de programación)
- Lenguaje de programación síncrono
- Programación de flujo de datos
- Lenguaje de programación
- Globalmente asincrónico localmente síncrono
- Verificación formal
- Comprobación de modelo
- Semántica formal de lenguajes de programación
- AADL
- Simulink
- Aviónica
- Diseño de sistemas
- Asincronía (programación informática)
notas y referencias
- ^ P. Le Guernic, T. Gautier, M. Le Borgne y C. Le Maire. Programación de aplicaciones en tiempo real con SIGNAL. Proceedings of the IEEE , 79 (9) : 1321-1336, septiembre de 1991.
- ^ 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).
- ^ A. Gamatié y T. Gautier. Enfoque SIGNAL Synchronous Multiclock para el diseño de sistemas integrados distribuidos. Transacciones IEEE en sistemas paralelos y distribuidos , 21 (5) : 641-657, mayo de 2010.
- ^ A. Gamatié. Diseño de sistemas embebidos con el lenguaje de programación SIGNAL: especificación síncrona y reactiva. ISBN 978-1-4419-0940-4 . Libro editado por Springer - Nueva York, 260 páginas, 2010.
- ^ A. Benveniste, P. Bournai, T. Gautier, M. Le Borgne, P. Le Guernic y H. Marchand. El lenguaje sincrónico declarativo de Signal: síntesis de controladores y diseño de sistemas / arquitectura. 40th IEEE Conference on Decision and Control, 2001.
- ^ H. Marchand, P. Bournai, M. Le Borgne, P. Le Guernic, Síntesis de controladores de eventos discretos basados en el entorno de señales, Sistema dinámico de eventos discretos: teoría y aplicaciones , 10 (4): 325-346, octubre 2000.
- ^ C. Morena, 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.
- ^ J.-P. Talpin, C. Brunette, T. Gautier y A. Gamatié. Autómatas de modo policrónico. Actas de la sexta conferencia internacional de ACM e IEEE sobre software integrado (EMSOFT '06), ACM Press, octubre de 2006, 83-92.
enlaces externos
- El equipo INRIA / IRISA Espresso
- El conjunto de herramientas Polychrony dedicado a SIGNAL (sitio web oficial de Polychrony)
- Synchrone Lab (el lenguaje sincrónico Lustre)
- Esterel (el lenguaje sincrónico Esterel)