User Tools

Site Tools


2013:c_in_the_21st_century._extensible_languages_with_mps

Back to proposals-2013

Title: C in the 21st century. Extensible languages with MPS
Proposer: bernhard_merkle
Type: Presentation
Duration: 90 minutes
Description: Many new programming languages are emerging theses days (e.g. http://emerginglangs.com/), however C is still the most used language and serves as the root for most of the “new” languages. Especially when it comes to the bare metal and real embedded development, there is nothing like C.

Compared with C++, C is admittedly less powerful / extensible (think of Domain Specific Languages DSL) but fiddling around with template meta programming (TMP) is really only for a small group of geeks. C++ has become a complex language (C++11 still is complex) and has lots of exceptions and side corners for originally useful language concepts (e.g. rvalue references and the issue with default generated move constructors/assignment operators, etc)

In C however we are painfully missing language concepts especially for developers in the embedded area. Because of its minimal language core there is no support for real encapsulation, safe types, operations with pre/post conditions, physical units and quantities, or common concepts in the embedded domain like tasks, messages or state-machines.

In this session I will show how we build modular languages which special emphasis for developing software for embedded systems. (The principle however is domain independent). We show how to extend the C Programming Language with the language concepts mentioned above. Embedded systems often support state-machines so there will be direct support for programs with states, triggers, events and actions as first level concepts. Also different flavours of syntax (e.g. textual, graphical and tabular) can even be mixed here. Expect a real usable physical units and quantities language with code completion and error messages in the IDE (not possible with TMP).

I will present the power of modular languages and show how to build languages extensions with the MPS Language Workbench MPS from Jetbrains. The mbeddr.com project (http://mbeddr.com) offers a set of C languages extensions for embedded software development. A case study with one of our real world sensors will demonstrate advantages and pros of the mbeddr solution.

Ewan: Sounds interesting, and based on C which makes it a relatively rare submission.
Roger: Yes
Asti: Yes unless he's got a stronger submission elsewhere

2013/c_in_the_21st_century._extensible_languages_with_mps.txt · Last modified: 2016/06/11 14:05 by 127.0.0.1