Existe um conversor/ferramenta Java para C++? [fechado]

sempre me perguntei se seria possível fazer um conversor Java para C++.

talvez uma ferramenta que converte a sintaxe Java para a sintaxe C++?

Estou ciente de que as línguas diferem, mas coisas simples como loops onde a semântica corresponde 1 a 1.

Existe tal ferramenta? Ou é possível fazer um?

Author: peterh, 2009-02-17

10 answers

É possível fazer qualquer coisa com tempo, dinheiro e recursos suficientes. É prático? Para além de exemplos triviais, nem por isso. Ou melhor, depende do que constitui uma taxa de erro aceitável.

O verdadeiro problema é que as expressões idiomáticas são diferentes em Java para C++. Java A C# por exemplo seria realmente muito mais fácil (porque os idiomas são muito mais semelhantes). O maior é que C++ tem destruidores e memória gerenciada manualmente. Java usa finalmente blocos para este tipo de comportamento e tem recolha de lixo.

Também Java tem um supertipo de objeto comum. C++ não.

Os genéricos dos modelos seriam quase impossíveis.
 21
Author: cletus, 2010-06-22 18:43:01

O processadorFirefox HTML5 é escrito em Java e convertido para C++. Mas eu acho que o Conversor usado lá é bastante específico para este projeto. Curiosamente, o analisador c++ resultante foi mais rápido do que o antigo analisador escrito em C++.

Também estou a escrever um conversor como parte da base de dados H2 , em src/tools/org/h2 / java. A idéia é permitir a conversão de um subconjunto da base de dados H2 para C++, então isso também não é um propósito geral translater.

E existe o projecto open source J2C .

Então existem maneiras de converter Java para C++. Mas não espere que o Tradutor suporte todos os recursos, e não espere que o código resultante seja mais rápido do que um jvm Java bom.

 10
Author: Thomas Mueller, 2017-05-09 12:23:51
É possível, sem dúvida, mas não será assim tão simples. Seria um compilador Java que gera C++.

Se você quiser fazer isso do zero, será muito difícil, você tem que fazer todo o trabalho javac e JVM fazer para você (por exemplo, coleta de lixo).

[1] Btw. Google has a Java to JavaScript compiler (included in GWT)
 7
Author: Johannes Weiss, 2009-02-17 13:40:29

Há um, mas não tenho a certeza se realmente funciona. Java para conversor C++ - Soulutions de Software tangíveis .

É estranho como existem conversores C++ para java, mas apenas 1 conversor java para C++.

 5
Author: , 2012-02-03 02:05:10

Como disse, seria difícil converter Java para C++, mas podemos ter uma aplicação ou ferramenta que gera código em Java e equivalnet código C++.

Conheço um aplicaiton que gera código em C++/Java / C# dado um modelo que tem a sua própria maneira de o desifinar.

Essa ferramenta pertence a CA e o nome é CA Plex. Procurar em www.ca.com

 3
Author: , 2009-02-17 17:07:33
Há programas por aí que afirmam que podem fazer isto, mas nenhum ganhou popularidade suficiente para ser mencionado com frequência, por isso vamos deixá-los nas "tentativas". Fazer um conversor exigiria um monte de IA construído em seu programa. A dificuldade é aumentada dez vezes quando swing está envolvido porque GTK / wxWidgets/Qt / win32 API todos diferem muito do swing. Mas é possível. Não que a qualidade do código seja grande, e não há garantias de que o seu programa não vai falhar devido à memória separada métodos de manipulação, mas é possível.
 2
Author: John T, 2009-02-17 14:24:26

A questão principal é que java é uma linguagem que é escrita e projetada para falar com uma VM. Eu suponho que seria possível, mas tudo o que você ficaria é uma aplicação muito mal otimizada com uma camada auto-traduzindo fazendo o que o VM já faz. Quero dizer, claro, é possível, ainda não seria uma solução para nada que eu pudesse pensar. Se o seu olhar para fazer o seu aplicativo java lento nativo, talvez o seu pensamento muito difícil, basta usar uma aplicação como JET, é realmente muito bom, e dar-lhe-á os benefícios que uma aplicação nativa traria. Claro que se o VM já está fazendo o que o aplicativo está pedindo para fazer tão bem como o código nativo poderia (isso acontece.. às vezes: P) pode não mudar nada.

Java para C#, tho, soa mais razoável, já que ambas as linguagens são escritas de formas semelhantes, falando com um framework como tal, mas isso ainda deixaria o código muito pouco otimizado como código escrito do zero para um framework particular não pode ser superado.

 2
Author: Richard Smith, 2011-05-12 13:31:59

Http://www.tangiblesoftwaresolutions.com/Order/Order_Upgrade_Instant_CPlus_Java_Edition.htm

Depende do domínio de onde o código será usado, do ponto de vista da aprendizagem talvez possa ser interessante.

Encontrei isto através de um google, quando me lembrei de ver um na Universidade que criou um código baseado na uml.
 2
Author: Paul Whelan, 2011-09-10 23:42:52

Java para C seria na verdade o mais fácil. Lembre-se que você precisa converter o idioma, Se você fizer isso, as bibliotecas necessárias podem ser convertidas pelo seu novo compilador. Em outras palavras Swing e AWT não deve ser um grande problema...

Eu começaria por dar uma boa olhada na interface nativa Java (JNI). O JNI é uma parte do java que permite que ele seja usado com C e c++. A razão pela qual eu começaria aqui é que se torna bastante óbvio como partes de Java podem ser implementadas em C. Uma vez Eu tinha uma compreensão sobre estruturas básicas, como como objetos Java podem ser mapeados em estruturas C (struct) e como praticamente tudo em Java é um objeto incluindo arrays, eu poderia espreitar o código fonte JDK aberto.

O conversor real teria que converter todas as bibliotecas Java importadas (e suas bibliotecas importadas e assim por diante...) o que significa que você precisaria do código fonte para tudo. Esta conversão não é tarefa pequena, uma vez que as bibliotecas Java são grandes.

O processo seria demorado, mas não deve ser necessária ia. No entanto, não vejo razão para realizar uma conversão como esta. Ele perde a portabilidade de Java e não ganharia a eficiência de C (exceto que seria compilado para código nativo, mas seria melhor compilar o Código máquina diretamente do Java).

 2
Author: mitt10tim, 2012-01-07 22:00:32

Algo puro seria uma ferramenta, que traduziria java para "C++ usando API Java" (como o GNU GCJ CNI), um problema permanece é gerenciar array.length (array não vetorial) ...

 2
Author: RzR, 2012-10-29 02:28:56