Я думаю, что вы должны быть осторожны, спрашивая, является ли он «скомпилированным» и предполагая, что это означает, что полученный результат должен быть «нативным кодом». Это не то, что означает «скомпилированный»:
«Обычно мы говорим, что язык« интерпретируется », когда первоначальный переводчик прост. Если переводчик сложен, мы говорим, что язык« скомпилирован ». Различие может сбивать с толку, поскольку« простой » «сложными» являются субъективные термины, и поскольку компилятор может создавать код, который затем выполняется сложной виртуальной машиной (интерпретатором) ... Эти две характеристики - тщательный анализ и нетривиальное преобразование - являются отличительными признаками компиляции ».
Из "Прагматика языка программирования" Майкл Л. Скотт. Как ни странно, это учебник по теории языка программирования, который я только что прочитал сегодня днем со страницей, открытой для этой цитаты.
Так что да, C # и другие языки .NET работают на CLR и они скомпилированы.