2008-09-05 5 views
6

Java以外のソースコードをJavaソースに自動的に変換するための優れたツールはありますか?非JavaをJavaソースに変換するツール

私は完全な何かを期待しているわけではありません。

難易度が狂っていると思います。 C#は比較的簡単です(すべてのライブラリを無視する限り)。 (よく書かれている)C++はそれほど悪くない。 Cは少しのOOを必要とします。 (静的型)関数型言語は簡単にgrokすることができます。動的OO言語は、非局所分析を必要とすることがある。

答えて

6

あなたが試みていることの1つは、あなたが話している言語用のJavaバイトコードコンパイラを見つけて、Jadのような逆コンパイラを使用してバイトコードをJavaに逆コンパイルすることです。

これは危険を伴います。再生成されたコードは吸い取られ、おそらく判読できなくなります。

3

グーグル:JavaへのANTLR

+0

良い点ですが、ソース言語にもよりますが、これはすばらしいことです。 – user181750

-1

ADAは、検索置換を行うことができます!

+0

その逆はどうですか?私はADAを学ぶことを望んでいるJavaの男 – WolfmanDragon

+0

ADAはあまりにも違うわけではありません、テンプレートはすべて同様のものです、パッケージはJavaの静的なクラスのようです、ADAのクラスはJavaのものと似ています。 標準IOはADA で一般的です。 奇妙なことはパッケージ拡張であり、ファイルツリーとパッケージ名はJavaでのように1:1に並んでいません。 C++のように:) –

0

レガシーC/Pascalコードを使用したいだけなら、JNIを使​​用してJavaから呼び出すこともできます。

Javaアプレットなどの制約の厳しい環境で実行したい場合は、効率的である必要はありませんが、(MIPSからJavaバイトコードコンバータ)をgccクロスプラットフォーム環境と組み合わせて使用​​できます。コンパイラはMIPSにコンパイルされます)。しかし、Javaコードを読みやすくすることは期待しないでください。

+0

NestedVMツールチェーンはかなり重く、少し古くなっています。 Basciallyでは、MIPS命令をJavaバイトコードに変換します(MIPS32は、JVMに最も近いものとして選択されています) –

1

言語の変換はかなり簡単ですが、ライブラリが異なることがわかります。 これはあなたの仕事のほとんどである可能性があります。

0

これらのツールは、Java以外のコードが十分に大きくない場合にのみ役立ちます。

巨大な非Javaコードで、真剣にそれをJavaに変換したいのであれば、いくつかのことを考える必要があります。数百行ものコードではなく、その下にデザインがあります。特定の問題が解決されている可能性があり、そこで働いていることがほとんどないため、コードの下にいる人々が取っています。良い翻訳者に時間を費やすことはそれが存在しないので価値がないでしょう。それはある言語から別の言語への構文変換だけではありません。

それほど巨大ではないコードであれば、Javaで書き直すほうが良いでしょう。これは多くのAPIパッケージをパッケージから取り除いているので、それほど大したことではないかもしれません。

5

ソースからソースへの移行は、Program Transformationの傘の下にあります。 Program-Transformation.orgは、言語認識、分析、および変換に役立つbunch of toolsを追跡します。

あなたは、オープンソースのツールの一つで任意の時間を過ごす場合、あなたは彼らがソースに含まれていてもいることに気づくでしょうソースの移行をフィーチャーとしているため、実際の例を見つけるのは難しいです。私は、これは、サイズに合わせたマイグレーションのようなものがないためだと思います。各プロジェクト/チームは言語をユニークに使用し、使用するライブラリ、複雑さ、イディオム、スタイルなどを変えることができます。移行ごとにいくつかの変換を定義するのが理にかなっています。これは、自動移行がその努力に値する価値がある前に、プロジェクトがある程度の限界に達しなければならないことを意味します。

いくつかの関連文書:

を使用しています
関連する問題