Programiranje

Microsoftov odprtokodni jezik P za IoT

Microsoftov jezik P za asinhrono programiranje na podlagi dogodkov in IoT (internet stvari) je odprt.

Namenjen vgrajenim sistemom, gonilnikom naprav in porazdeljenim storitvam, je P jezik, specifičen za domeno, v katerega se prevaja in deluje s sistemom C, ki je sam pogosto uporabljen v vdelanih sistemih in IoT. "Cilj P je zagotoviti jezikovnim primitivom jedrnato in natančno zajemanje protokolov, ki so neločljivo povezani s komunikacijo med komponentami," sta v vadnici o jeziku dejala Ethan Jackson in Shaz Qadeer iz Microsofta.

Z modelom P sta modeliranje in programiranje združeni v eno samo dejavnost. "Ne samo, da je mogoče program P zbrati v izvedljivo kodo, ampak ga je mogoče tudi preveriti s sistematičnim testiranjem," je razvidno iz jezikovne dokumentacije na GitHub. "P je bil uporabljen za izvajanje in preverjanje nabora gonilnikov naprav USB, ki je priložen operacijskim sistemom Microsoft Windows 8 in Windows Phone."

Microsoft je P opisal kot ponudbo "varnega" programiranja na podlagi dogodkov. Jackson in Qadeer sta v svoji vadnici navedla, da imajo programi P računski model, ki vključuje državne avtomate, ki komunicirajo prek sporočil, pristop, ki se pogosto uporablja v vgrajenih, mrežnih in porazdeljenih sistemih.

Vsak državni stroj ima vhodno čakalno vrsto, stanja, prehode, obdelovalce dogodkov in lokalno shrambo za zbirko spremenljivk. Državni stroji se izvajajo sočasno, pri čemer vsaka izvede zanko dogodka, ki iz čakalne vrste sporoči sporočilo iz vhodne čakalne vrste. Državni stroj tudi pregleda lokalno trgovino, pošlje sporočila med stroji in lahko ustvari nove stroje. "V P operacija pošiljanja ni blokirana; sporočilo se preprosto izvede v vhodno čakalno vrsto ciljne naprave." Program vsebuje zbirko deklaracij dogodkov in strojev.

Microsoft ponuja tudi P #, razširitev C #, ki cilja na asinhrono programiranje, kot odprtokodno kodo. Junija je Microsoft odprtokodno preveril C, spremenjeno različico C, ki v jezik C doda novo sintakso in tipkanje z namenom izboljšanja varnosti v C.

$config[zx-auto] not found$config[zx-overlay] not found