Articulo de referencia

nesC

nesC (pronunciado "NES-si") es un lenguaje de programación basado en componentes y orientado a eventos que se utiliza para crear aplicaciones para la plataforma TinyOS . TinyOS ...

nesC (pronunciado "NES-si") es un lenguaje de programación basado en componentes y orientado a eventos que se utiliza para crear aplicaciones para la plataforma TinyOS . TinyOS es un entorno operativo diseñado para ejecutarse en dispositivos embebidos utilizados en redes de sensores inalámbricas distribuidas . nesC se construye como una extensión del lenguaje de programación C con componentes "conectados" para ejecutar aplicaciones en TinyOS. El nombre nesC es una abreviatura de "network embedded systems C". [ 1 ]

Componentes e interfaces

Los programas nesC se componen de componentes que se ensamblan para formar programas completos. Los componentes tienen concurrencia interna en forma de tareas. Los hilos de control pueden acceder a un componente a través de sus interfaces. Estos hilos se originan en una tarea o en una interrupción de hardware.

Los componentes pueden proporcionar o utilizar interfaces. Las interfaces proporcionadas representan la funcionalidad que el componente ofrece a su usuario, mientras que las interfaces utilizadas representan la funcionalidad que el componente necesita para realizar su función.

En nesC, las interfaces son bidireccionales: especifican un conjunto de funciones que debe implementar el proveedor de la interfaz (comandos) y otro conjunto que debe implementar el usuario de la interfaz (eventos). Esto permite que una sola interfaz represente una interacción compleja entre componentes (por ejemplo, el registro de interés en un evento, seguido de una llamada de retorno cuando ocurre dicho evento). Esto es fundamental porque todos los comandos largos en TinyOS (por ejemplo, enviar paquete) no son bloqueantes; su finalización se señala mediante un evento (envío completado). Al especificar interfaces, un componente no puede llamar al comando de envío a menos que proporcione una implementación del evento sendDone. Normalmente, los comandos llaman hacia abajo, es decir, desde los componentes de la aplicación a los más cercanos al hardware, mientras que los eventos llaman hacia arriba. Ciertos eventos primitivos están vinculados a interrupciones de hardware.

Los componentes están vinculados estáticamente entre sí a través de sus interfaces. Esto aumenta la eficiencia en tiempo de ejecución, fomenta un diseño robusto y permite un mejor análisis estático de los programas.

Referencias

  1. Gay, David; Levis, Phil; von Behren, Rob; Welsh, Matt; Brewer, Eric; Culler, David (2003). "El lenguaje nesC: un enfoque holístico para sistemas embebidos en red". SIGPLAN Notices . 38 (5). Association for Computing Machinery : 1–11 . doi : 10.1145/780822.781133 . ISSN 0362-1340 . 
  • Sitio web oficial