As you may know, our project relies on the idea of extending the C programming language with domain specific extensions. For that to work, we first have to make C available in MPS. While we had done this to some extent in our proof of concept, we are now implementing C much more thoroughly. As you can see in the screenshot below, some essential things are already working.
We have functions, local variables, basic expressions, a for statement, and other doing blocks. All of this works with a text generator and a type system. We are doing this breadth first and not depth first, which means that we’re trying to try touch every aspect of C instead of implementing all available operators for example. Once the basic structure is there, we can then fill in the holes.
One of the next steps will be support for unit testing, so we can directly start testing our type system and code generators.
By the way: the core C language will be open sourced as soon as we have a reasonably complete implementation.