是否有可能将多种语言编译在一起,以获得不同语言的最佳功能?
是否有可能将多种语言编译在一起,以获得不同语言的最佳功能?
如果编译器和链接器都兼容,那么在将它们分别编译后,肯定可以(如果编写得当)将它们连接在一起。例如:
g77 -c one.f
gcc -c two.c
gcc -o together one.o two.o
这个命令会编译一个Fortran文件和一个C文件,然后使用GCC工具链将它们链接起来成为一个名为together
的可执行文件(假设它们彼此调用正确)。
微软的.NET是一种常见的多语言混合使用的方法——比如C#、F#、IronPython、IronRuby等。Visual Studio会处理编译成兼容代码和组装在一起形成程序集的工作,但你也可以手动操作。
如果你所说的“编译在一起”是指将多种不同语言的代码放在同一个文件中,这也是可能的,但较为罕见——例如,有些C编译器有扩展功能,可以让你在同一个文件中表达“内嵌”汇编语言。
是的,这是可能的,但很大程度上取决于具体的语言。例如,从Python调用C函数或C++类通常是可以实现的。
.Net平台是多语言的。Parrot非常适合于混合使用Perl、Python、Ruby等编程语言。你想要做什么呢?
另一个结合语言的好例子是Java平台。您可以在Java中混用Groovy、Jython、JRuby、Scala、Clojure和其他语言。这些不同的语言需要不同的编译器,但通常可以从一种语言调用另一种语言。Groovy和Scala特别适合互操作。
哦,Java本地接口(JNI)允许您从Java调用C、C++、汇编和其他语言。
(.NET平台具有与此相同的属性,正如其他帖子所指出的那样。)