2014-03-12 38 views
-7

當通過引入JVM使Java獨立於平臺時,爲什麼不可能通過引入類似於JVM的東西來使C/C++平臺獨立?是否有可能使C/C++平臺獨立

+6

它非常簡單dear.Just編寫和解釋器爲c和c + +。 – Kick

+0

Java與JVM是平臺無關的。並猜測當前生產質量JVM的編寫語言是什麼? – SirDarius

+1

@Youngistan這就是所謂的Cint,這是惡夢的東西。 – chrylis

回答

5

Java是平臺獨立的,但JVM不是,JVM是平臺依賴的 我們必須開發編譯器和解釋器來實現像JVM這樣的東西。

1

C和C++是將代碼翻譯成二進制的編譯器。因此,它們依賴於平臺,因爲不同的平臺使用不同的二進制指令集。如果tw0平臺使用相同的彙編語言,但使用不同的二進制表示,那麼告訴編譯器生成彙編語言輸出,將使平臺能夠彙編結果到他們的個人二進制。 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也將是「獨立平臺」。