MSDN.WhiteKnight - Stack Overflow answers
Ответ на "В чем разница объектного кода от байт-кода"
Answer 1159017
Как такового "объектного кода", как отдельный вид кода, не существует. Есть понятие объектные файлы - это файлы, получаемые при компиляции кода на С/С++/ASM и других языках с компиляцией в машинный код. Например, для Visual C++ эти файлы имеют расширение .obj. Но эти файлы содержат обычный машинный код целевой архитектуры, с единственной разницей, что некоторые адреса функций и переменных в них помечены как неопределенные, и должны позднее заменяться компоновщиком на реальные адреса.
Но в .NET настоящие объектные файлы не применяются. Файлы .netmodule хоть и похожи на них, но все же по структуре радикально отличаются (они представляют из себя почти полноценный PE файл, отличаясь от скомпонованной сборки только отсутствием раздела .assembly в манифесте). Их можно скормить компоновщику Visual C++ (в том числе совместно с настоящими .obj-файлами! Тогда полученная сборка будет смешанной, то есть содержащей и CIL-байткод, и машинный код), но это применяется только в особых случаях. При традиционной сборке C#/VB приложений компоновка не используется. На выходе компилятора сразу получается исполняемый файл, содержащий только CIL-байткод.
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.