MetaC is a language that extends C in a fully backward-compatible manner, allowing developments to build new features or functions over existing C code.
MetaC is capable of doing some of the modifications that can be done with the C preprocessor, but it outshines the C preprocessor as it overcomes certain limitations. The area of applications for MetaC is not limited to a specific domain. However, the concepts and motivation for the program have been derived from problems of CASE tools for embedded real-time systems. Some of the applications for MetaC include source code reconfiguration and refactoring in general, application-specific debug support, abstraction of APIs, and hardware-specific or vendor-specific implementations of well-defined functionality, among others.
The advantages of MetaC's metaprogramming approach are numerous. Source code modification is done based on syntax, making it possible to detect invalid modifications the moment they are executed. Additionally, decision for code modifications can be made upon user parameters and information derived from the source code, and cross-cutting reconfigurations of source code concerning multiple functions or modules are possible.
The latest release of MetaC brings numerous enhancements to the program. Support for Win32 hosts was added, as well as support for initializer lists. Additionally, some C99 issues were fixed, and several more enhancements were made. A whole bunch of bugs were fixed in the process.
Overall, MetaC is an excellent program that takes C programming to a whole new level. It offers a great deal of flexibility and versatility in working with reflective features and techniques for refactoring, reconfiguring, and modifying arbitrary C source code. Additionally, its metaprogramming approach is an added advantage that makes working with the program a breeze.
Version r70125: N/A