Hi.
I'm quite sure that the C# compiler is written in C++ (it's unmanaged code,
however). In particular, if you go to the folder that contains the csc.exe
executable, you will find that the main part of the compiler is in the
unmanaged DLL cscomp.dll. In the same folder you will find a managed wrapper
for cscomp.dll, which is called cscompmgd.dll, that contains some types of
the Microsoft.CSharp namespace.
However, it's true that some compilers are written in the same language they
compile. Apart from the C/C++ compilers (quite obviously) the Garden Point
Component Pascal compiler (by John Gough), for example, is written in
Component Pascal.
Have a nice day
GV