Microsoft -como muchas otras empresas de cómputo- aparte de desarrollar aplicaciones, en varias ocasiones generan sus propias herramientas de programación.
Por ello, es interesante saber que han decidido hacer que su lenguaje P, que es orientado a eventos, pase a código abierto. Este lenguaje está diseñado para poder escribir de manera segura programas manejados por eventos que ocurren de forma asíncrona.
P unifica el modelaje y la programación en una sola actividad y ha sido usado para implementar y validar los manejadores de USB que vienen con Windows 8 y Windows Phone.
Microsoft ha dicho que P se puede usar de forma exitosa en el diseño e implementación de sistemas de redes, sistemas embebidos y distribuidos. P ha sido diseñado para tener un lenguaje que capture sucinta y precisamente los protocolos que son inherentes a las comunicaciones entre componentes en sistemas asíncronos.
El sistema usa una máquina de estados finitos en los programas en donde cada una tiene una cola de entradas y de estados, así como la capacidad de mandar mensajes asíncronos a las otras máquinas de estados en los propios programas.
Microsoft ha desarrollado un compilador de su lenguaje P que tiene como salida un modelo llamado Zing, que permite la prueba sistemática. El compilador puede generar código en C que puede ser usado para ser compilado con el correspondiente compilador (valga la redundancia).
Esto, sin embargo, es más que un capricho porque como P es un lenguaje de un dominio específico en la implementación de protocolos en aplicaciones asíncronas, parte de las mismas se escriben muchas veces en lenguaje C. El manual de P describe la interfaz para la interoperabilidad entre el código de P y el código escrito en C.
P está disponible en GitHub.
Referencia: i-programmer