The MetaC Language

The MetaC language extends C in a 100% backward compatible way with reflective features and techniques for refactoring, reconfiguring and modifying arbitrary C source code. Therefore, the extensions provide special metadata types for working with source code information, syntactical structures for the definiton of code templates, and metafunctions to gather information about source code and refactor, modify, delete, or insert code.

Some of the modifications that can be done with MetaC, are also realizable with the C preprocessor. But the C preprocessor suffers certain limitations that can be overcome using MetaC.

Applications of MetaC

The area of applications for MetaC is not limited to specific domains. But its concepts and its motivation has been derived from recurring problems during the development of embedded real-time systems.

Advantages of the Metaprogramming Approach


If you want to take a look at an example, click here.

Current Status

Currently there exists a MetaC compiler that is in its alpha stage of development. It produces standard C code as output, which can be compiled with any standard ISO-C90 conforming compiler to a supported target architecture. This approach is similar to the way the C++ Compiler of Cameau Computing works. The applicaiton examples given above have been evaluated with multiple metaprograms, and the infrastructure for more complex applicaitons is constantly be expanded within the compiler.
The language extension is complete, concerning the necessary infrastructure needed for supporting the given examples. Further extensions might be possible if needed.
If you questions concerning this methodology, please feel free to send me an e-mail.

Evaluation of the MetaC Compiler

You can download an alpha version of the MetaC compiler for evaluation and research purposes. This version must not be used for commercial applications. To download click here.
Thomas Maier-Komor