"jscpp" is an ANSI C preprocessor and language parser that can analyze and instrument C code. Currently, its most prominent application is to add tracing to existing C programs simply by recompiling and linking it with the "jscc" compiler frontend. The standard tracing shows when a function is entered or left along with the parameters passed or return values. It is also possible to trace each source line and watch read/write access to simple variables. Tracing is achieved by instrumenting the source code before calling the system compiler. The program is modular and can be easily extended to other kinds of source code modifications.
The MetaC programming language is a 100% backward compatible extension to the C language that adds reflections and the ability to analyze and modify C source code at compile time. It has been specially designed to search for arbitrary code structures and instantiate new source code. Typical applications for MetaC based meta-programs are development tasks concerning embedded and real-time software. Examples are API abstraction and retargeting to a new API (ever been locked to a vendor-specific API?), application specific debugging and profiling on an embedded target, and WCET measurements.