Can I have an P please Bob? Yes, but only if it's an open source domain-specific one for event-driven IoT programming okay? Image Source: Independent

Don’t worry, this is not a crash course in computer programming — we are simply highlighting the use of software language types being used to construct the IoT and thinking about what that means in a wider sense.

Microsoft wants to embrace open source, this we already know. The firm has widely moved many of its main bastions of previously proprietary software to a new open status where the ‘community contribution model’ can bring in positive DNA from all those who wish to propose augmentations.

The firm’s latest movements in open source are focused on the Internet of Things and, specifically, the P programming language for embedded systems which has recently gained open source status.

What is domain-specific?

As a language for building the code that creates the software in our IoT things, P is a domain-specific language (as opposed to a general purpose one) meaning that it is particularly suited to its job. HTML is domain-specific for the web, so you get the idea.

Microsoft’s Ethan Jackson, Sriram Rajamani and Shaz Qadeer explain that P allows the programmer to specify the system as a collection of interacting state machines, which communicate with each other using events.

“The P language is carefully designed so that we can check if the systems being designed is responsive, i.e., it is able to handle every event in a timely manner. By default, a machine needs to handle every event that arrives in every state.

P was used to implement and verify the core of the USB device driver stack that ships with Microsoft Windows 8.

Your business ‘takeaway’

Microsoft describes P as offering ‘safe event-driven programming’, an approach to software where the actual execution of the code instructions are determined by ‘events’.

At your PC, these events come in the form of key presses, mouse clicks or instructions from other programs. At your typical IoT device, these events may be sensor outputs or other forms of electronic Input/Output.

On your PC, the program depends on user input, on your IoT device the program depends on what is happening in the world. So in other words we are building our IoT software code in a very similar way to the methods we use on your desktop… and we’re doing it with Microsoft in the open source arena, so that’s okay too.

P can be used to create code for a microwave, toaster, a car or an elevator… you could already be a P consumer.