Pergunta

É possível compilar vários idiomas para obter o melhor dos diferentes idiomas.

Foi útil?

Solução

Definitivamente é possível link juntos (se for adequadamente programados) depois de compilá -los separadamente, se os compiladores e ligantes forem todos compatíveis. Por exemplo:

g77 -c one.f
gcc -c two.c
gcc -o together one.o two.o

Isso compila um arquivo fortran, depois um arquivo C, depois os vincula em um único executável nomeado together (Supondo que eles se chamam corretamente ;-) Usando o conjunto de ferramentas do GCC.

O .NET da Microsoft é uma maneira popular de usar vários idiomas juntos - C#, F#, IronPython, IronRuby e assim por diante. O Visual Studio lidará com as compilações em códigos compatíveis e a união em montagens, mas você também pode fazê -lo "manualmente", se desejar.

Se por "compilar", você quer dizer com vários idiomas diferentes no mesmo arquivo, isso também é possível, mas mais raro - por exemplo, alguns compiladores C têm extensões para permitir que você expresse o idioma de montagem "embutido" dentro do mesmo arquivo.

Outras dicas

Sim, é possível, mas depende muito dos idiomas específicos. Por exemplo, chamar funções C ou classes C ++ do Python é feito rotineiramente.

É realmente difícil lidar com o Algol-68 de C.

A plataforma .NET é multilíngue. Parrot é ótimo para misturar Perl, Python, Ruby. O que você está tentando fazer?

Outro bom exemplo de combinação de linguagem é a plataforma Java. Você pode misturar groovy, jython, jruby, scala, clojure e outras línguas com java. Os diferentes idiomas requerem diferentes compiladores, mas você geralmente pode ligar de um idioma para outro. Groovy e Scala são particularmente adequados para a inter-operação.

Ah, e a interface nativa de Java (JNI) permite ligar para C, C ++, Assembly e outros idiomas da Java.

(A plataforma .NET compartilha esses mesmos atributos, como outros pôsteres observaram.)

Se você estiver usando o .NET, poderá compilar seus projetos em diferentes idiomas para os módulos de netmodules e depois vinculá -los a uma única DLL/EXE. O Visual Studio não suporta isso, mas o MSBuild o faz. A maneira mais fácil de obter uma compilação é editar uma cópia do seu arquivo .csproj e alterar o tipo de saída para "módulo" e apenas executar o msbuild contra ele. Em seguida, use o comando "link" para vincular seus módulos ao seu EXE/DLL final.

Dar uma olhada em Gole. Isso envolve o seu C/C++ código para que você possa chamá -lo de praticamente qualquer outro idioma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top