2013-07-11 15 views
-2

我們看到某些龐大的項目是用多種語言編寫的 例如,facebook是用php和C++編寫的,android操作系統是用c,C++和java編寫的。 在右側多於一個書面語言的面前以下鏈接「寫成」如何爲項目使用多種語言?

的Android = http://en.wikipedia.org/wiki/Android_(operating_system)

的Facebook = http://en.wikipedia.org/wiki/Facebook

是否有這樣做的任何編譯器?

+0

我不確定編譯器,但是有很多語言專家參與編寫這些項目/產品。 –

+0

這是每對語言的單獨問題。看到這裏的例子:http://stackoverflow.com/questions/1843205/are-there-tools-to-integrate-java-and-c – jogojapan

+1

通常,它會是你的構建系統(使用像CMake或類似的工具),這將調用相關的編譯器/打包程序/等。 – sje397

回答

1

有時(Facebook)你有一個系統許多不同的交互程序,其中每個程序都可以用不同的語言編寫,甚至可以運行在不同的機器上。我相信像Facebook這樣的複雜網站涉及許多不同的主流和土語「語言」。

其他時間(Android)您有一個單獨的實體,其中用不同語言編寫的部分組合在一起。我已經簡化了一些,但如果你仔細想一想,編譯器最終會編譯成機器代碼,而鏈接器可以簡單地將這些代碼組合起來。

實際上,它通常更復雜,許多語言被解釋而不是編譯。要將具有複雜運行時系統(如Java,Python,Ruby等)的語言合併到一個程序中,將針對每種情況提供特定的點對點解決方案。例如,Java Native Interface(JNI)是將Java嵌入到C和C++程序中的標準機制。