A C++ Language Workbench
Language-orientated programming promises to elevate programmer productivity through increased abstraction capabilities. Structural programming environments provide apparatus to reduce the difficulties with syntax. The language workbench, a conceptual combination of these two approaches, is a comparatively novel approach to software development and has so far been attempted only in dynamic-dispatch, run-time-compiled languages (e.g. Java).
However, it must be remembered that several fields of engineering exist, each having their own priorities. In the video games industry, where large, complex and diverse projects are routinely developed, efficiency is paramount and as such C++, as a development platform, is widely used. I explore the possibility of a language workbench capable of a gradual transition in both skills and code from the traditional C++ development environment.
This article is the design for a language workbench. It uses novel techniques including a context-sensitive event-driven input system and a hybrid single/multiple-inherited class model and through a prototype implementation demonstrates that is both concise and practical for C++. I refute the hitherto implicit hypothesis that the language workbench paradigm is not applicable to the C++ language, showing that C++ can be used for creating an effective development framework usable in otherwise pure-C++ programming environments.