Я видел это хорошее изображение здесь . Я узнал, что все компиляторы, которые поддерживают язык .net, конвертируют исходный код в CILформат. Теперь Microsoft никогда не вводит .NETдля всех операционных систем, написав CLR для всех операционных систем. Тогда зачем сохранять такой промежуточный формат кода и CLR для выполнения этого CIL. Разве это не головная боль, чтобы иметь дело с. Почему Microsoft выбрала именно так?
РЕДАКТИРОВАТЬ Эта своего рода архитектура имеет свою цену. Это снизит производительность, не так ли? Java делает это для поддержания независимости платформы, по какой причине .NET это делает? Почему бы не сохранить простой простой C-подобный компилятор. Любой способ также потребует, чтобы компилятор преобразовал код в CIL, если мне нужно добавить какой-либо новый язык, единственное отличие, которое он сделал бы, - это целевой язык. Тат это все.