Skip to content

DSLFoundry/mbeddr.cpp

Repository files navigation

build status

mbeddr.cpp

Implementation of a subset of the C++14 programming language in a JetBrains MetaProgrammingSystem (MPS) language. mbeddr.cpp has been implemented as an extension to mbeddr C, reusing existing concepts from the MISRA C language and extending it with concepts like classes, namespaces, templates, etc..

Although mbeddr.cpp does not implement the full C++14 standard, it supports the most commonly used constructions such as classes, methods, exceptions, namespaces, as well as partially operator overloading and templates. While it is not yet fully engineered, mbeddr.cpp is already a good generation target with a reasonably workable editing experience in MPS.

In a similar fashion as baseLanguage that is shipped with MPS and also mbeddr, a big advantage of having C++ as an MPS language, is that it is arbirarily extensible on various C++ language elements (statements, expressions, variables, etc.) with Domain Specific Languages that are implemented in MPS. This gives an unprecedented level of integration on language-to-language level.

We're happy for other uses and contributions!

Have a look at the documentation directory for the original project documentation.

Credits

Current maintenance: Hristina Moneva, Eugen Schindler, and Niko Stotz.

Clean-up into a proper extension of mbeddr and setup of build: Niko Stotz with help from Kolja Dummann.

Original implementation by "Eded" team of Eindhoven University of Technology in collaboration with Océ:

  • Nicholas Donnelly
  • Daan Drijver
  • Bart van Helvert
  • Julia Hofs
  • Daan van der Kallen
  • Bart Munter
  • Joris Rombouts
  • Job Savelsberg
  • Bart Smit
  • Remco Surtel
  • Jelle van der Ster

Supervised by Önder Babur. Project managed by Wout de Ruiter and Wesley Brants. Created for customer Dmitrii Nikeshkin.