Если вы говорите о компиляторах для таких языков, как C #, VB (.NET) и т. Д., То: с точки зрения компилятора они всегда управляются. Все, что они выводят, является управляемым кодом, то есть IL. Есть места, где C # и т. Д. Получают близко к непосредственному управлению - например:
- при использовании
unsafe
кода и "неуправляемых указателей" C # может напрямую взаимодействовать с неуправляемой памятью - но это всегда выражает как сделать это через IL (IL содержит операторы для работы с необработанными указателями)
- P / Invoke слои могут выражать границы для общения с внешним неуправляемым кодом
Однако в обоих случаях именно JIT-компилятор во время выполнения (или AOT-компилятор, если используется целевая платформа не-JIT), который интерпретирует эти неуправляемые намерения , выраженные в IL , и выводит внутренние данные процессора в реализовать их. Но ... это именно то, что JIT / AOT делает для all IL, так что ... ничего особенного там нет.
Итак: с точки зрения компилятора для языка, такого как C # / VB (.NET), здесь нет реального вопроса: он всегда работает на 100% с точки зрения вывода - и поскольку компиляторы (начиная с Roslyn) также .NET-кода, они также управляются на 100% с точки зрения их фактического выполнения.
Если вы имели в виду что-то другое, стоило бы уточнить вопрос, будучи действительно, действительно конкретным о том, какой сценарий (ы) вы имеете в виду, желательно с примерами.