是否存在Java到C++转换器/工具?

n00*_*ki3 51 c++ java code-translation

我总是问自己是否可以制作Java到C++的转换器.

也许是一种将Java语法转换为C++语法的工具?

我知道语言不同,但简单的事情,如语义匹配1到1的循环.

有这样的工具吗?或者可以制作一个?

cle*_*tus 22

只要有足够的时间,金钱和资源,就可以做任何事情.这是实用的吗?除了琐碎的例子之外并不是真的.或者更确切地说,它取决于什么构成可接受的错误率.

真正的问题是成语在Java和C++中是不同的.例如,Java到C#实际上要容易得多(因为习语更相似).当然最大的是C++具有析构函数和手动管理的内存.Java使用finally块来实现这种行为并且具有垃圾收集功能.

Java也有一个共同的Object超类型.C++没有.

模板的泛型几乎不可能是我想象的.

  • Common Object不是问题.转换器只提供一个,然后任何没有基类的类只添加继承.Java中的泛型只是语法糖,而C++模板可以解决这个问题.但是走另一条路是不可能的. (11认同)
  • 不,我真的不喜欢这样的答案,比如"它不实用"等等.我总是如此理解它们:"我们真的很好,但我们太愚蠢而不值得". (4认同)
  • 关于GC,转换器只能使用堆分配的对象,并且只使用类似`boost :: smart_ptr`的引用它们.这至少在合理的程度上处理泛型,你只需要发出类似的东西:`std :: vector <boost :: smart_pointer <Object >>>`用于"事物"的向量. (3认同)

Tho*_*ler 12

火狐HTML5解析器是用Java编写并转换为C++.但我认为那里使用的转换器对于这个项目非常具体.有趣的是,事实证明,生成的C++解析器比用C++编写的旧解析器更快.

我还在src/tools/org/h2/java下编写了一个转换器作为H2数据库的一部分.我们的想法是允许将H2数据库的子集转换为C++,因此这也不是通用的转换器.

还有开源项目J2C.

因此有一些方法可以将Java转换为C++.但是不要指望翻译器支持所有功能,并且不要指望生成的代码比优秀的Java JVM快.


Joh*_*iss 7

是可能的,毫无疑问,但它不会那么简单.它将是一个生成C++的Java编译器.

如果你想从头开始这样做,那将非常困难,你必须完成javac和JVM为你做的所有工作(例如垃圾收集).

顺便说一句.Google有一个Java to JavaScript编译器(包含在GWT中)


小智 6

有一点,我不确定它是否确实有效. Java to C++ Converter-Someible Software Soulutions.

奇怪的是如何有c ++到java转换器,但只有1个java到c ++转换器.

  • @0xC0000022L 如果你能提到他们的名字会有很大帮助:) (2认同)