Tôi thấy hình ảnh đẹp này ở đây . Tôi đã học được rằng tất cả các trình biên dịch hỗ trợ ngôn ngữ .net chuyển đổi mã nguồn thành CILđịnh dạng. Bây giờ Microsoft không bao giờ đưa vào .NETtất cả các hệ điều hành bằng cách viết CLR cho tất cả các hệ điều hành. Vậy thì tại sao phải giữ một định dạng mã trung gian như vậy và CLR để thực thi CIL đó. Đó không phải là một vấn đề đau đầu để giải quyết. Tại sao Microsoft chọn như thế này?
EDIT Kiến trúc kinda này có giá của nó. Nó sẽ làm giảm hiệu suất, phải không? Java làm điều này để duy trì sự độc lập nền tảng, vì lý do gì .NET làm điều đó? Tại sao không giữ một trình biên dịch C đơn giản như trình biên dịch. Bất kỳ cách nào cũng sẽ yêu cầu trình biên dịch chuyển đổi mã thành CIL nếu tôi cần thêm bất kỳ ngôn ngữ mới nào, sự khác biệt duy nhất mà nó sẽ tạo ra là ngôn ngữ đích. Tất cả là tất cả.