Everyday Tourist

A random walk through life with Martin Jul.

Wednesday, November 19, 2003

It looks like there is a big opportunity for semantic tools for .NET.

However, there is a big piece missing. The ICodeCompiler interface is not implemented by the frameworks' C# compiler, which means that there is no simple way to create a CodeDOM representation of source code.

This is a severe obstacle to easily constructing semantic tools since there is a lot of footwork involved in writing the parser whereas the true value of semtantic tools is the operations performed on the CodeDOM itself.

So, we need a reusable (preferably open-source) component for that.

Luckily, there has been some work in this area, namely the
Mono compiler and the derivative CODEDOM parser by Ivan Zderadicka which provides a starting point for C# to CodeDOM translation.

He has used it for an FxCop-like semantic analysis tool called Code Analyzer. Where FxCop works on assemblies Code Analyzer works directly on source code. For example, this enables it to pinpoint errors in code comments.