Почему почти все объектно-ориентированные языки компилируются в байт-код?

Из объектно-ориентированных языков, которые я знаю, почти все, кроме C ++ и Objective-C, компилируются в байт-код, работающий на какой-то виртуальной машине.Почему так много разных языков остановились на компиляции в байт-код, а не в машинный код? Возможно ли иметь высокоуровневый язык ООП, управляемый памятью, который скомпилирован в машинный код?

Редактировать: Я знаю, что многоплатформенная поддержка часто продвигается как преимущество этого подхода. Однако вполне возможно скомпилировать изначально на нескольких платформах, не создавая новый компилятор для каждой платформы. Например, можно испустить код C, а затем скомпилировать его с помощью GCC.

17
задан keiter 17 October 2010 в 21:36
поделиться