GCC-MELT is a high-level domain specific language that eases the development of plugin-like extensions for GCC, the Gnu Compiler Collection. These extensions can analyze or modify GCC internal representations, and can be used for static source code analysis, refactoring, specific warnings, optimizations, etc. The MELT language provides high-level features. Notably, MELT code is translated to C or C++, and can even contain C or C++ code. It includes powerful pattern matching facilities and can manipulate dynamically typed values and raw GCC structures. It enables functional/applicative, object-oriented, reflective programming styles and has a familiar Lisp-like syntax.
System requirement is not defined
Information regarding Project Releases and Project Resources. Note that the information here is a quote from Freecode.com page, and the downloads themselves may not be hosted on OSDN.
The :auto ctype annotation, now the default in LET bindings, make the newly defined variable gets its c-type from the expression defining it. The BOX, CONSTANT_BOX, and UNBOX syntactic constructs are new. In the MELT runtime a new evalfile mode is available for evaluating an expression from a file, stdin by default. The melt-module.mk makefile fragment is now silent, but can be made verbose. Several primitives have been added, and many bugs have been fixed.
Several enhancements and bugfixes.
Language improvements. The ability to define a named value with the (DEFINE <name<expr>) construct. More support, notably for Gimple & Tree. More cmatchers, etc. have been added. Runtime improvements. Generation of timestamping C file foo+melttime.h included from generated descriptor file foo+meltdesc.c from foo.melt. Numerous bugfixes.
This release adds bugfixes and several new features: cloning of values, debugging closures, walking of SSA use-def chains, more support for Gimple and Tree, new MELT hooks for PLUGIN_FINISH_TYPE and PLUGIN_FINISH_DECL, new MELT hooks for other GCC plugin events, more runtime code generation, and additional translating MELT modes.
This release features variadic MELT functions, a variadic (DEBUG ...) macro, and variadic ADD2OUT functions. There are bugfixes and other improvements.