Cos’è il linguaggio P e perchè fa bene a cloud e IoT

Per introdurre il linguaggio P va ricordato che se cloud e IoT sono i settori tecnologici a maggiore crescita, questo vuol dire che gli sviluppatori software avranno sempre più a che fare con ambienti asincroni.

Ambienti, cioè, in cui un’applicazione o un servizio che richiede l’esecuzione di una operazione continua poi nelle sue operazioni senza aspettare il completamento dell’operazione stessa.

Le applicazioni sono quindi di fatto concorrenti (nel senso che si eseguono contemporaneamente) e questo comporta una maggiore complessità dello sviluppo e del debugging.

A meno di non usare piattaforme ad hoc ed è proprio in questo senso che Microsoft propone il suo linguaggio P.

Quando nasce il linguaggio P

Il linguaggio P è nato in Microsoft anni fa per lo sviluppo dei driver USB 3 di Windows 8. Da quel primo passo è cresciuto ed è stato usato per diversi altri progetti legati a Windows e ora anche al cloud di Azure. È nato con l’obiettivo specifico di evitare due problemi tipici degli ambienti asincroni: le race condition e i cosiddetti heisenbug.

Le race condition sono le situazioni in cui l’output di una funzione o di un'applicazione non è quello atteso perché dipende da una sequenza di eventi e questi si sono verificati in un ordine imprevisto.

Gli heisenbug sono errori nell’esecuzione delle applicazioni che scompaiono quando si cerca di investigarli, nell’ambito di P perché sono legati a problemi di sincronizzazione tra eventi.

Il nome deriva dal principio di indeterminazione di Heisenberg.

Un esempio di linguaggio P

Il linguaggio P è stato creato grazie anche alla collaborazione della Università di Berkeley e dell’Imperial College di Londra.

Prevede lo sviluppo di applicazioni asincrone e basate su eventi. Più precisamente, la definizione di protocolli che operano in un sistema asincrono. Lo sviluppatore descrive il sistema come un insieme di macchine a stati che comunicano fra loro tramite eventi. Da questo punto di vista non c’è differenza tra sviluppo e modellazione delle macchine a stati.

Il codice in linguaggio P viene passato a un compilatore che è in grado di verificare a priori il rischio di race condition. Grazie a questa funzione uno degli usi attuali di P in Microsoft è la ricerca di potenziali race condition nei servizi di Azure che sono già stati implementati, come anche la validazione di quelli che non lo sono ancora. In questo ambito Microsoft ha anche sviluppato P#, una estensione per C# che introduce il modello delle macchine a stati.

Il linguaggio P è stato rilasciato qualche tempo fa in opensource e ora viene spinto come una possibile soluzione in tutti gli ambienti in cui funzioni e applicazioni operano in modo asincrono. Pensiamo ad esempio alle routine di diversi oggetti “smart” che devono comunicare e coordinarsi fra loro.

Pur essendo un linguaggio di alto livello, P presenta il vantaggio di poter generare codice C eseguibile, il che lo lega alla programmazione più di basso livello.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche iscriviti alla newsletter gratuita.

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here