Я не уверен, что понимаю ваше представление о «времени выполнения».Как правило, это слово используется, чтобы подчеркнуть, что что-то происходит, когда программа уже запущена, а не до (во время, например, во время компиляции) или после (например, когда она потерпела крах и была закрыта).Виртуальная машина - это концепция, когда одна программа интерпретирует свои собственные данные как другую программу, написанную на определенном языке, для выполнения.
Обе программы, скомпилированные на родном машинном языке или на каком-либо языке виртуальной машины, могут нуждаться в компонент времени выполнения для выполнения.Примеры:
- Для программы, скомпилированной из C ++ в машинный код, нужны системные библиотеки, которые реализуют стандартные операции, такие как математические библиотеки, динамически связанные с ним, а также службы операционной системы, такие как файловый и сетевой ввод.вывод
- Java-программе, скомпилированной в байт-код, требуется JVM для ее интерпретации, а также службы выделения памяти, сборки мусора, планирования потоков и т. д.
Ни libstdc ++, ни JVMприсутствуют в двоичном коде программы, они прикрепляются в время выполнения , отсюда и название.