2013-07-11 16 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++程序中的标准机制。