The Microsoft Research Common Compiler Infrastructure (CCI) is a set of components (libraries) that provide some of the functionality that compilers and related programming tools tend to have in common.
The metadata components provide functionality for reading, writing and manipulating Microsoft Common Language Runtime (CLR) assemblies and debug files. The functionality provided by these components subsumes the functionality provided by System.Reflection and System.Reflection.Emit.
It’s interesting to know that FxCop is actually powered by CCI, so if you wondered how FxCop analyzes your assemblies, you can now peek into the source code and even build your own tools that leverage the CCI framework.
Beside the metadata rewriting engine and IL/PDB/PE framework, CCI also provides the AST and syntax trees to model source code, IL <-> CodeModel roundtripping, C# pretty-printer, as well as SmallBasic compiler as a sample.