Возможно ли сделать платформу C / C ++ независимой?

Когда Java делает платформу независимой, внедряя JVM, почему невозможно сделать платформу C / C ++ независимой, вводя нечто похожее на JVM?

-7

Решение

Java не зависит от платформы, но JVM нет, JVM зависит от платформы
Мы должны разработать компиляторы и интерпретаторы, чтобы достичь чего-то вроде JVM.

4

Другие решения

C и C ++ являются компиляторами, которые переводят код в двоичный код. В результате они зависят от платформы, потому что разные платформы используют разные двоичные наборы инструкций. Если две платформы используют один и тот же язык ассемблера, но разные двоичные представления, то указание компилятору выводить язык ассемблера позволит платформам собрать результаты в их отдельный двоичный файл. JVM похож на язык ассемблера, который распознается различными платформами. Каждая платформа интерпретирует JVM по-своему и со своим собственным двоичным файлом.

a = b + c

mov a, R1
mov b, r2
add r1, r2 (putting results in r2)
st r2, c

Двоичное представление этого может быть различным для разных платформ, но a = b + c является «машинно-независимым»

Если бы вы написали независимое от платформы описание C и заставили бы всех производителей платформы принять его, то C также будет «независимым от платформы».

1

По вопросам рекламы [email protected]