Я слышал о таких вещах, как «C Runtime», «Visual C ++ 2008 Runtime», «.NET Common Language Runtime» и т. Д.
- Что такое « время выполнения »?
- Из чего это сделано?
- Как это взаимодействует с моим кодом? Или, может быть, точнее, как мой код контролируется этим?
При кодировании языка ассемблера в Linux я мог использовать инструкцию INT для выполнения системного вызова. Итак, разве среда выполнения - не что иное, как набор готовых функций, которые оборачивают низкоуровневую функцию в более абстрактные и высокоуровневые функции? Но разве это не похоже на определение библиотеки, а не среды выполнения?
Являются ли «среда выполнения» и « библиотека времени выполнения » разными вещами?
ДОБАВИТЬ 1
Сейчас я думаю, что, возможно, Runtime имеет что-то общее с так называемой виртуальной машиной , такой как JVM. Вот цитата, которая приводит к такой мысли:
Этот процесс компиляции является достаточно сложным, чтобы разбить его на несколько уровней абстракции, и в них обычно участвуют три транслятора: компилятор, реализация виртуальной машины и ассемблер. --- Элементы вычислительных систем (Введение, Дорога к аппаратной земле)
ДОБАВИТЬ 2
Книга Эксперт C Программирование: Deep C Secrets . Глава 6 Структуры данных времени выполнения является полезной ссылкой на этот вопрос.
runtime library
плюс некоторый управляющий код и некоторое состояние (предоставляется ОС).