我总是问自己是否可以制作Java到C++的转换器.
也许是一种将Java语法转换为C++语法的工具?
我知道语言不同,但简单的事情,如语义匹配1到1的循环.
有这样的工具吗?或者可以制作一个?
只要有足够的时间,金钱和资源,就可以做任何事情.这是实用的吗?除了琐碎的例子之外并不是真的.或者更确切地说,它取决于什么构成可接受的错误率.
真正的问题是成语在Java和C++中是不同的.例如,Java到C#实际上要容易得多(因为习语更相似).当然最大的是C++具有析构函数和手动管理的内存.Java使用finally块来实现这种行为并且具有垃圾收集功能.
Java也有一个共同的Object超类型.C++没有.
模板的泛型几乎不可能是我想象的.
的火狐HTML5解析器是用Java编写并转换为C++.但我认为那里使用的转换器对于这个项目非常具体.有趣的是,事实证明,生成的C++解析器比用C++编写的旧解析器更快.
我还在src/tools/org/h2/java下编写了一个转换器作为H2数据库的一部分.我们的想法是允许将H2数据库的子集转换为C++,因此这也不是通用的转换器.
还有开源项目J2C.
因此有一些方法可以将Java转换为C++.但是不要指望翻译器支持所有功能,并且不要指望生成的代码比优秀的Java JVM快.
是可能的,毫无疑问,但它不会那么简单.它将是一个生成C++的Java编译器.
如果你想从头开始这样做,那将非常困难,你必须完成javac和JVM为你做的所有工作(例如垃圾收集).
顺便说一句.Google有一个Java to JavaScript编译器(包含在GWT中)
有一点,我不确定它是否确实有效. Java to C++ Converter-Someible Software Soulutions.
奇怪的是如何有c ++到java转换器,但只有1个java到c ++转换器.