Java 以外のソース コードを Java ソースに自動的に変換するための優れたツールはありますか?
私は完璧なものを期待しているわけではありません。
スライド式の難易度があると思います。C# は比較的簡単なはずです (すべてのライブラリを無視する限り)。(よく書かれています) C++ はそれほど悪くありません。C では少し OO を作成する必要があります。(静的型の) 関数型言語は理解しやすいかもしれません。動的オブジェクト指向言語では、非ローカル分析が必要になる場合があります。
Java 以外のソース コードを Java ソースに自動的に変換するための優れたツールはありますか?
私は完璧なものを期待しているわけではありません。
スライド式の難易度があると思います。C# は比較的簡単なはずです (すべてのライブラリを無視する限り)。(よく書かれています) C++ はそれほど悪くありません。C では少し OO を作成する必要があります。(静的型の) 関数型言語は理解しやすいかもしれません。動的オブジェクト指向言語では、非ローカル分析が必要になる場合があります。
ソースからソースへの移行は、 Program Transformationの傘下にあります。Program-Transformation.orgは、言語の認識、分析、および変換に役立つ一連のツールを追跡しています。以下に、ソースからソースへの移行が可能なものをいくつか示します。
オープン ソース ツールの 1 つを使用すると、機能としてソースからソースへの移行が含まれていても、実際の例を見つけるのが難しいことに気付くでしょう。これは、万能の移行などというものがないためだと思います。各プロジェクト/チームは言語を独自に使用し、使用するライブラリ、型の複雑さ、イディオム、スタイルなどによって異なる場合があります。移行ごとにいくつかの変換を定義することは理にかなっています。これは、自動移行に取り組む価値がある前に、プロジェクトがある程度のクリティカル マスに達する必要があることを意味します。
いくつかの関連ドキュメント:
あなたが試すことができることの1つは、話している言語用のJavaバイトコードコンパイラを見つけて(あらゆる種類の言語用のJVMコンパイラがあります)、Jadのような逆コンパイラを使用してバイトコードをJavaに逆コンパイルすることです.
これには危険が伴います。再生成されたコードはひどいものになり、おそらく読めなくなります。
グーグル:ANTLR
言語変換はかなり単純ですが、ライブラリが異なることがわかります。これはおそらくあなたの仕事のほとんどです。
これらのツールは、Java 以外のコードが十分に大きくない場合にのみ役立ちます。
その巨大な非 Java コードを真剣に Java に変換したい場合、考えなければならないことはほとんどありません。数百行のコードではなく、その下に設計があり、その下にある人々が下す決定はほとんどありません。特定の問題が解決された可能性があり、そこではほとんど機能していないコード。優れた翻訳者に時間を投資しても、それは存在しないため価値がありません。それは、ある言語から別の言語への構文翻訳だけではありません。
それほど巨大なコードでない場合は、すぐに使用できる API パッケージが非常に多いため、Java で書き直したほうがよいでしょう。大したことではないかもしれません。このために少数のインターンを雇うことも役立つかもしれません。
従来の C/Pascal コードを使用したい場合は、JNI を使用して Java から呼び出すこともできます。
Java アプレットまたは同様の制約のある環境で実行する必要があり、非常に効率的である必要がない場合は、NestedVM (MIPS から Java バイトコードへのコンバーター) を gcc クロスコンパイラーと組み合わせて使用できます。 MIPS)。しかし、そこから読みやすい Java コードが得られるとは期待しないでください。
ADAからJavaへの変換は、検索と置換で実行できます。