6

有没有什么好的工具可以自动将非 Java 源代码转换为 Java 源代码?

我并不期待完美的东西,只是为了摆脱最糟糕的咕噜声。

我想有一个滑动的难度等级。C# 应该相对容易(只要您忽略所有库)。(写得很好)C++ 还不错。C需要做一点OO。(静态类型)函数式语言可能很容易理解。动态 OO 语言可能需要非本地分析。

4

7 回答 7

5

您可以尝试的一件事是为您正在谈论的语言找到一个 Java 字节码编译器(有各种语言的 JVM 编译器),然后使用像 Jad 这样的反编译器将字节码反编译回 Java。

这充满了危险。重新生成的代码会很糟糕,并且可能无法阅读。

于 2008-09-05T20:06:01.290 回答
5

源到源迁移属于程序转换的范畴。Program-Transformation.org 跟踪了许多对语言识别、分析和转换有用的工具。以下是一些能够进行源到源迁移的工具:

如果您花时间使用其中一种开源工具,您会注意到即使它们包含源到源迁移作为一项功能,也很难找到有效的示例。我想这是因为没有千篇一律的迁移。每个项目/团队都会独特地使用一种语言,并且可能因使用的库、类型复杂性、惯用语、风格等而有所不同。每次迁移定义一些转换是有意义的。这意味着在自动迁移值得付出努力之前,项目必须达到一定的临界质量。

一些相关文件:

于 2010-12-07T20:30:52.863 回答
3

Google: ANTLR

于 2008-09-07T17:41:32.150 回答
1

语言转换相当简单,但您会发现库有所不同。这可能是您的大部分工作。

于 2009-04-26T11:17:09.153 回答
0

如果你只想使用一些遗留的 C/Pascal 代码,你也可以使用 JNI 从 Java 中调用它。

如果您想在 Java 小程序或类似的受限环境中运行它,并且它不必非常高效,您可以将NestedVM(它是一个 MIPS 到 Java 字节码转换器)与一个 gcc 交叉编译器结合使用,它可以编译为MIPS)。但不要期望从中获得可读的 Java 代码。

于 2009-04-26T10:46:34.750 回答
0

仅当您的非 Java 代码不够大时,这些工具中的任何一个都可能会有所帮助。

如果它巨大的非java代码,如果你想认真地把它翻译成java,那么需要考虑的事情很少,它不仅仅是数百行代码,它下面有一个设计,下面的人做出的决定很少由于代码可能已经解决了某些问题,并且很少有东西在那里工作。并且花时间在任何好的翻译器上都是不值得的,因为它不存在,不仅仅是从一种语言到另一种语言的语法翻译。

如果代码不是那么大,最好用 java 重写,因为它有很多开箱即用的 API 包,这可能没什么大不了的,为此雇用一些实习生也可能会有所帮助。

于 2009-12-10T06:53:29.657 回答
-1

ADA 到 Java 可以通过查找和替换来完成!

于 2008-09-07T23:33:30.323 回答