Programmēšana

Microsoft atvērtā pirmkoda P valoda IoT

Microsoft P valoda asinhronai uz notikumiem balstītai programmēšanai un IoT (lietu internets) ir atvērta.

P, kas paredzēts iegultām sistēmām, ierīču draiveriem un izplatītiem pakalpojumiem, ir domēnam raksturīga valoda, kuru kompilē un mijiedarbojas ar C, kas pati par sevi ir bieži izmantota iegultās sistēmās un IoT. "P mērķis ir nodrošināt valodas primitīvus, lai kodolīgi un precīzi uzņemtu protokolus, kas raksturīgi saziņai starp komponentiem," valodas apmācībā sacīja Microsoft Ītans Džeksons un Šazs Kadejers.

Izmantojot P, modelēšana un programmēšana tiek apvienota vienā darbībā. "P programmu var ne tikai apkopot izpildāmā kodā, bet arī validēt, izmantojot sistemātisku testēšanu," teikts valodas dokumentācijā GitHub. "P ir izmantots, lai ieviestu un apstiprinātu USB ierīces draiveru kaudzīti, kas tiek piegādāta kopā ar Microsoft Windows 8 un Windows Phone."

Korporācija Microsoft ir aprakstījusi, ka P piedāvā "drošu" pasākumu vadītu programmēšanu. Savā apmācībā Džeksons un Keiders saka, ka P programmām ir skaitļošanas modelis, kas raksturo valsts mašīnas, kas sazinās ar ziņojumiem, pieeju, ko parasti izmanto iegultās, tīklotās un izplatītās sistēmās.

Katrai štata mašīnai ir ievades rinda, stāvokļi, pārejas, notikumu apstrādātāji un mašīna-vietējais veikals mainīgo lielumu kolekcijai. Stāvokļa mašīnas darbojas vienlaicīgi, un katra izpilda notikumu loku, kas no ievades rindas noņem rindas ziņojumu. Valsts mašīna arī pārbauda vietējo veikalu, sūta ziņojumus starp mašīnām un var izveidot jaunas mašīnas. "Programmā P sūtīšanas operācija nav bloķēta; ziņojums tiek vienkārši izpildīts mērķa mašīnas ievades rindā." Programma piedāvā notikumu un mašīnu deklarāciju kolekciju.

Microsoft kā atvērto avotu piedāvā arī P #, paplašinājumu C #, kas vērsts uz asinhrono programmēšanu. Un jūnijā Microsoft atvērtā izcelsme Checked C, modificēta C versija, kas pievieno jaunu sintaksi un rakstīšanu C valodai, lai uzlabotu drošību C.

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