Internet of things with extensible C
Slides: https://www.eclipsecon.org/france2014/session/internet-things-extensible-c
Internet of things is becoming more and more important for embedded software. Customers expect products to be able to communicate with each other and time to market decreases, also hardware resources are often limited and energy efficiency is of a strong concern. Tools should be able to adapt to these often fast changing environments. Such adaptability must go beyond adding a couple of new dialogs or data attributes in the repository --- the languages underlying the tools themselves must be extensible. Today, with software being written either in C or with inflexible and proprietary modeling tools, we are far from this state.
In this session we demonstrate mbeddr, an extensible version of the C programming language that supports incremental and modular extension, leading to real multi-paradigm programming. With a special focus on problems that occur in the Internet of things domain, like first class language concepts for hardware access (shown on the raspberry pi) and domain specific abstractions for communication over MQTT. Those Domain-specific abstractions can directly be integrated with C. Beside creating your own extensions mbeddr comes with a set of default extensions for components and state machines. All extensions include modern IDE support and are also integrated with the debugger.
The mbeddr eclipse project is built on JetBrains MPS, a language workbench that allows users to build their own extensions to C (or any other DSL) with the same toolkit that has been used to implement C and the existing extensions. Both MPS and mbeddr are open source software.