Lenguaje P de código abierto de Microsoft para IoT

El lenguaje P de Microsoft, para la programación asincrónica impulsada por eventos y el Internet de las cosas (IoT), ha sido de código abierto.

Diseñado para sistemas integrados, controladores de dispositivos y servicios distribuidos, P es un lenguaje específico de dominio en el que se compila e interopera con C, que a su vez se ha aprovechado comúnmente en los sistemas integrados y el IoT. "El objetivo de P es proporcionar primitivas de lenguaje para capturar de manera sucinta y precisa protocolos que son inherentes a la comunicación entre componentes", dijeron Ethan Jackson y Shaz Qadeer de Microsoft, en un tutorial sobre el lenguaje.

Con P, el modelado y la programación se combinan en una sola actividad. "No solo se puede compilar un programa P en un código ejecutable, sino que también se puede validar mediante pruebas sistemáticas", según la documentación del lenguaje en GitHub. "P se ha utilizado para implementar y validar la pila de controladores de dispositivos USB que se envía con Microsoft Windows 8 y Windows Phone".

Microsoft ha descrito P como una oferta de programación basada en eventos "segura". En su tutorial, Jackson y Qadeer dicen que los programas P tienen un modelo computacional que presenta máquinas de estado que se comunican a través de mensajes, un enfoque comúnmente utilizado en sistemas integrados, en red y distribuidos.

Cada máquina de estado tiene una cola de entrada, estados, transiciones, controladores de eventos y un almacén local de la máquina para una colección de variables. Las máquinas de estado se ejecutan al mismo tiempo, y cada una ejecuta un bucle de eventos que quita un mensaje de la cola de entrada. La máquina de estado también examina la tienda local, envía mensajes entre máquinas y puede crear nuevas máquinas. "En P, una operación de envío no es bloqueante; el mensaje simplemente se ejecuta en la cola de entrada de la máquina de destino". Un programa presenta una colección de declaraciones de eventos y máquinas.

Microsoft también ofrece P #, una extensión de C # que apunta a la programación asincrónica, como código abierto. Y en junio, Microsoft abrió Checked C, una versión modificada de C que agrega nueva sintaxis y escritura al lenguaje C, con la intención de mejorar la seguridad en C.