Programmering

Microsofts åpne kilder P språk for IoT

Microsofts P-språk, for asynkron hendelsesdrevet programmering og IoT (internett av ting), har blitt åpen.

P er utstyrt for innebygde systemer, enhetsdrivere og distribuerte tjenester, og er et domenespesifikt språk som kompileres til og fungerer sammen med C, som i seg selv ofte har blitt brukt i innebygde systemer og IoT. "Målet med P er å gi språkprimitiver for kortfattet og presist å fange protokoller som er iboende for kommunikasjon mellom komponenter," sa Ethan Jackson og Shaz Qadeer fra Microsoft, i en veiledning om språket.

Med P smelter modellering og programmering sammen til en enkelt aktivitet. "Ikke bare kan et P-program kompileres til kjørbar kode, men det kan også valideres ved hjelp av systematisk testing," ifølge språkets dokumentasjon på GitHub. "P har blitt brukt til å implementere og validere USB-enhetsdriverstakken som følger med Microsoft Windows 8 og Windows Phone."

Microsoft har beskrevet P som å tilby "sikker" hendelsesdrevet programmering. I opplæringen sier Jackson og Qadeer at P-programmer har en beregningsmodell som inneholder tilstandsmaskiner som kommuniserer via meldinger, en tilnærming som ofte brukes i innebygde, nettverksdrevne og distribuerte systemer.

Hver statsmaskin har en inngangskø, stater, overganger, hendelsesbehandlere og maskin-lokal butikk for en variabelsamling. Statlige maskiner kjører samtidig, hvor hver utfører en hendelsessløyfe som avkjøler en melding fra inngangskøen. Statsmaskinen undersøker også den lokale butikken, sender meldinger mellom maskiner og kan opprette nye maskiner. "I P er en sendeoperasjon ikke blokkerende. Meldingen utføres ganske enkelt i inngangskøen til målmaskinen." Et program inneholder en samling av hendelses- og maskindeklarasjoner.

Microsoft tilbyr også P #, en utvidelse til C # som retter seg mot asynkron programmering, som åpen kildekode. Og i juni åpnet Microsoft Checked C, en modifisert versjon av C som åpner ny syntaks og skriver til C-språket, med den hensikt å forbedre sikkerheten i C.

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