Bahasa P sumber terbuka Microsoft untuk IoT

Bahasa P Microsoft, untuk pengaturcaraan berasaskan acara tidak segerak dan IoT (internet of things), telah bersumber terbuka.

Ditujukan untuk sistem tertanam, pemacu peranti, dan layanan terdistribusi, P adalah bahasa khusus domain yang dikompilasi dan dikendalikan dengan C, yang biasanya telah dimanfaatkan dalam sistem tertanam dan IoT. "Tujuan P adalah untuk menyediakan primitif bahasa untuk menangkap protokol secara ringkas dan tepat yang melekat pada komunikasi antara komponen," kata Ethan Jackson dan Shaz Qadeer dari Microsoft, dalam tutorial mengenai bahasa tersebut.

Dengan P, pemodelan dan pengaturcaraan digabungkan menjadi satu aktiviti. "Program P tidak hanya dapat dikompilasi menjadi kode yang dapat dieksekusi, tetapi juga dapat disahkan menggunakan pengujian sistematik," menurut dokumentasi bahasa di GitHub. "P telah digunakan untuk menerapkan dan mengesahkan tumpukan pemacu peranti USB yang dikirimkan dengan Microsoft Windows 8 dan Windows Phone."

Microsoft telah menggambarkan P sebagai menawarkan pengaturcaraan berdasarkan acara yang "selamat". Dalam tutorial mereka, Jackson dan Qadeer mengatakan program P mempunyai model komputasi yang menampilkan mesin negara berkomunikasi melalui mesej, pendekatan yang biasa digunakan dalam sistem tertanam, jaringan, dan diedarkan.

Setiap mesin negara mempunyai antrian input, keadaan, peralihan, pengendali acara, dan kedai mesin tempatan untuk koleksi pemboleh ubah. Mesin negara berjalan serentak, dengan masing-masing menjalankan gelung peristiwa yang melepaskan pesanan dari antrian input. Mesin negara juga memeriksa kedai tempatan, menghantar mesej antara mesin, dan dapat membuat mesin baru. "Di P, operasi kirim tidak menghalangi; pesan hanya dieksekusi ke dalam antrian input mesin sasaran." Program menampilkan koleksi acara dan deklarasi mesin.

Microsoft juga menawarkan P #, perpanjangan ke C # yang menargetkan pengaturcaraan asinkron, sebagai sumber terbuka. Dan pada bulan Jun, Microsoft Checked C sumber terbuka, versi C yang diubah suai yang menambahkan sintaks baru dan menaip ke bahasa C, dengan tujuan untuk meningkatkan keselamatan di C.