The C# compiler targets the CLR (a virtual machine), so doesn't need to be re-targeted. They had/have commercial versions of the CLR for ARM (.NET Compact Framework), x86, x64 and Itanium. They probably also have one for PowerPC for running XNA games on xbox 360. Porting the BCL to a target platform, and building a static linker is probably more of a task though.