我们看到某些大型项目是用不止一种语言编写的,例如 facebook 是用 php 和 c++ 编写的,而 android 操作系统是用 c、c++ 和 java 编写的。在右侧的以下链接中,“写在”前面写有多种语言
Android= http://en.wikipedia.org/wiki/Android_(operating_system)
Facebook= http://en.wikipedia.org/wiki/Facebook
是否有任何编译器可以做到这一点?
我们看到某些大型项目是用不止一种语言编写的,例如 facebook 是用 php 和 c++ 编写的,而 android 操作系统是用 c、c++ 和 java 编写的。在右侧的以下链接中,“写在”前面写有多种语言
Android= http://en.wikipedia.org/wiki/Android_(operating_system)
Facebook= http://en.wikipedia.org/wiki/Facebook
是否有任何编译器可以做到这一点?
有时(Facebook)你有一个由许多不同的交互程序组成的系统,每个程序都可以用不同的语言编写,甚至可以在不同的机器上运行。我敢肯定,像 Facebook 这样的复杂网站涉及许多用许多不同的主流和朴素“语言”编写的文章。
其他时候(Android)你有一个单一的实体,其中组合了用不同语言编写的片段。我稍微简化了一点,但是如果您考虑一下,编译器最终会编译为机器代码,而链接器可以简单地组合这些部分。
实际上,它通常更复杂,并且许多语言是解释而不是编译的。要将具有复杂运行时系统(如 Java、Python、Ruby 等)的语言组合到一个程序中,每种情况都会有特定的点对点解决方案。例如,Java 本机接口 (JNI) 是将 Java 嵌入 C 和 C++ 程序的标准机制。