Корпорация Microsoft представила язык P, распространяемый с открытым кодом и предназначенный для асинхронного событийного программирования и создания приложений Интернета вещей.

Язык, разработанный для проектирования встроенных систем, драйверов устройств и распределенных сервисов, ориентирован на опеделенные области применения. Программы, написанные на нем, компилируются в код на языке Си, который также широко используется во встроенных системах и Интернете вещей. «Цель разработки P заключалась в создании языковых конструкций, которые лаконично и точно взаимодействовали бы с протоколами, применяемыми для организации связи между отдельными компонентами», — поясняют Этан Джексон и Шаз Кадир из Microsoft в учебнике по программированию на P.

Благодаря P моделирование и программирование превращаются в единый процесс. «Программа на P не только компилируется в исполняемый код, но и проверяется при помощи средств систематического тестирования, — говорится в документации по языку, размещенной на GitHub. — Язык P использовался, в частности, для реализации и проверки стека драйверов USB-устройств, включенного в состав операционных систем Microsoft Windows 8 и Windows Phone».

Благодаря новому языку моделирование и программирование приложений Интернета вещей превращаются в единый процесс

В Microsoft язык P характеризуют как средство «безопасного» событийного программирования. В своем учебнике Джексон и Кадир описывают программы на P как вычислительную модель, ориентированную на обмен сообщениями между конечными автоматами. Именно такой подход повсеместно применяется при создании встроенных, сетевых и распределенных систем.

У каждого конечного автомата имеются своя входная очередь, набор состояний, обработчики событий и локальное хранилище для коллекции переменных. Конечные автоматы работают одновременно, выполняя событийный цикл и извлекая сообщения из входной очереди. Конечный автомат проверяет состояние своего локального хранилища, отправляет сообщения и может создавать другие автоматы. В P операции отправки не блокируются; сообщение просто помещается во входную очередь целевого автомата. В программе описываются коллекции событий и создаются определения автоматов.

Microsoft предлагает также открытую реализацию языка P#, являющегося расширением C# и ориентированного на асинхронное программирование.

В июне была представлена модифицированная версия языка Си с открытым кодом — Checked C, в которую добавлены новые типы и синтаксические конструкции. Цель этой разработки заключается в повышении безопасности Си.