是否存在用于C++转换器/工具的 Java?[已关闭]
2022-08-31 17:01:06
我总是问自己是否有可能制作一个Java to C++转换器。
也许是一个将Java语法转换为C++语法的工具?
我知道语言不同,但简单的事情,如语义匹配1比1的循环。
有这样的工具吗?或者有可能做一个吗?
我总是问自己是否有可能制作一个Java to C++转换器。
也许是一个将Java语法转换为C++语法的工具?
我知道语言不同,但简单的事情,如语义匹配1比1的循环。
有这样的工具吗?或者有可能做一个吗?
只要有足够的时间、金钱和资源,任何事情都是可能的。实用吗?除了微不足道的例子,不是真的。或者更确切地说,这取决于什么构成可接受的错误率。
真正的问题是,Java中的习语与C++是不同的。例如,Java到C#实际上要容易得多(因为习语更相似)。当然,最大的问题是C++具有析构函数和手动管理的内存。Java最终使用块来实现这种行为,并具有垃圾回收功能。
Java也有一个共同的对象超类型。C++没有。
模板的泛型几乎是不可能的,我会想象。
Firefox HTML5解析器是用Java编写的,并转换为C++。但我认为那里使用的转换器对于这个项目来说非常具体。有趣的是,事实证明,生成的C++解析器比用C++编写的旧解析器更快。
我还在src/tools/org/h2/java下编写一个转换器作为H2数据库的一部分。这个想法是允许将H2数据库的子集转换为C++,因此这也不是一个通用的翻译器。
还有开源项目J2C。
因此,有一些方法可以将Java转换为C++。但是不要指望翻译器支持所有功能,也不要指望生成的代码比一个好的Java JVM快。