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