Linguaggio P open source Microsoft per IoT

Il linguaggio P di Microsoft, per la programmazione asincrona basata su eventi e l'IoT (Internet delle cose), è stato open source.

Progettato per sistemi embedded, driver di dispositivo e servizi distribuiti, P è un linguaggio specifico del dominio che compila e interagisce con C, che a sua volta è stato comunemente sfruttato nei sistemi embedded e nell'IoT. "L'obiettivo di P è fornire primitive linguistiche per acquisire in modo succinto e preciso i protocolli inerenti alla comunicazione tra i componenti", hanno affermato Ethan Jackson e Shaz Qadeer di Microsoft, in un tutorial sul linguaggio.

Con P, modellazione e programmazione vengono fuse in un'unica attività. "Non solo un programma P può essere compilato in codice eseguibile, ma può anche essere convalidato utilizzando test sistematici", secondo la documentazione del linguaggio su GitHub. "P è stato utilizzato per implementare e convalidare lo stack di driver del dispositivo USB fornito con Microsoft Windows 8 e Windows Phone."

Microsoft ha descritto P come un'offerta di programmazione "sicura" guidata dagli eventi. Nel loro tutorial, Jackson e Qadeer affermano che i programmi P hanno un modello computazionale che presenta macchine a stati che comunicano tramite messaggi, un approccio comunemente usato nei sistemi integrati, in rete e distribuiti.

Ogni macchina a stati ha una coda di input, stati, transizioni, gestori di eventi e un archivio locale della macchina per una raccolta di variabili. Le macchine a stati vengono eseguite contemporaneamente, con ciascuna esecuzione di un ciclo di eventi che rimuove un messaggio dalla coda di input. La macchina a stati esamina anche l'archivio locale, invia messaggi tra le macchine e può creare nuove macchine. "In P, un'operazione di invio non è bloccante; il messaggio viene semplicemente eseguito nella coda di input della macchina di destinazione." Un programma presenta una raccolta di dichiarazioni di eventi e macchine.

Microsoft offre anche P #, un'estensione di C # destinata alla programmazione asincrona, come open source. E a giugno, Microsoft ha reso open source Checked C, una versione modificata di C che aggiunge nuova sintassi e digitazione al linguaggio C, con l'intento di migliorare la sicurezza in C.