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.


Previous articleInmarsat and Vodafone announce deal to strengthen IoT connectivity
Next articleHome insurance start-up Neos gets £1m funding boost
I am a technology journalist with over two decades of press experience. Primarily I work as a news analysis writer dedicated to a software application development ‘beat’; but, in a fluid media world, I am also an analyst, technology evangelist and content consultant. As the previously narrow discipline of programming now extends across a wider transept of the enterprise IT landscape, my own editorial purview has also broadened. I have spent much of the last ten years also focusing on open source, data analytics and intelligence, cloud computing, mobile devices and data management. I have an extensive background in communications starting in print media, newspapers and also television. If anything, this gives me enough man-hours of cynical world-weary experience to separate the spin from the substance, even when the products are shiny and new.