Почему так легко декомпилировать .NET IL-код в исходный код, по сравнению с декомпиляцией собственных двоичных файлов x86? (Reflector производит довольно хороший исходный код большую часть времени, а декомпиляция вывода компилятора С++ практически невозможна.)
Это потому, что IL содержит много метаданных? Или это потому, что IL - это более высокая абстракция, чем инструкции x86? Я провел некоторое исследование и нашел следующие две полезные статьи, но ни один из них не ответил на мой вопрос.