whale

C+-, Programming Language
to Express Thoughts

"When I use a word," Humpty Dumpty said, in rather a scornful tone,
"it means just what I choose it to mean - neither more nor less."
-- Lewis Carroll --


Whilst progressing along the path towards better software, we have occasionally encountered the feeling that existing programming languages are both too restrictive in some areas and simultaneously have too few restrictions in others. Ultimately we concluded that a new programming language was needed: and not just yet another programming language, but a programming language which would allow us to express our thoughts. This has lead us to begin to develop an easily extensible programming language, which we have named C+- to emphasize that it can have either more, or fewer features (or both) than the original C.

In C+-, features are controlled by the project architect, who can select from the various "language extensions" available in order to form a language dialect suitable for specific project. "Language extensions" are intended to be very easy to write - or at the very least easy enough for a team to write its own extension if necessary.

We hope that C+- will establish a substantially new type of programming language, providing another layer of abstraction (and this is project-specific abstraction) over languages such as C or Java, thereby moving one step closer to ultimately allowing the programmer to express thoughts rather than merely to instruct the computer what to do.

We have made significant progress on the implementation of C+-. In particular, we appear to have managed to reduce C/C++ grammar into true LALR(1) form merely by dropping useless or rarely used constructs (such as the "a+b;" statement). There is clearly still a lot of work ahead. As soon as C+- takes on some initial shape, we plan to move it to SourceForge under one of the open source licenses (most likely CDDL+MPL).

More details on this project can be found in the December '09 issue of Overload, in the article "Project-Specific Language Dialects".