2

ペットプロジェクトとして、言語Aで記述されたアプリケーションを言語Bに移行するプログラムを作成することを考えていました。AとBはオブジェクト指向言語になります。これは非常に難しい作業だと思います。似たような言語構造のマッピングは実行可能ですが、ライブラリの概念のマッピングは非常に長い作業になります。

使用するツールを考えていました。これはコンパイルに関係していることはわかっていますが、LexやYaccなどを使用するのは少し怖いです。Eclipse Modeling Frameworkを使用することを考えていました。これは、(アプリケーションコードの)変換を読み取り可能な形式で作成するのに役立ちます。ただし、最初に、モデルを作成するためのパーサーを作成する必要があります(また、言語文法からメタモデルを作成する必要があります)。

私のタスクを簡単にするツールはありますか?

4

6 に答える 6

2

そのTXLまたはStratego/XT用に特別な変換ツール/言語を使用できます。

また、私がTXLを使用して作成したプロジェクトを見て、JavaからPythonおよびJavaからTclへの移行プロジェクトを簡単に試すことができます。

あなたはライブラリの概念をマッピングすることについて正しいです。それはかなり困難で長い仕事です。ここには2つの方法があります。

  • クラスライブラリを言語AからBに完全に移行します
  • クラス/関数を言語Aから言語Bの対応する概念に移行します

選択するアプローチは、目標と利用可能な時間/リソースによって異なります。また、多くの場合、考えられるすべてのケースをカバーする一般的なA-> B移行を行うことはなく、プロジェクト/ライブラリなどを変換するだけで済みます。そのため、特定のケースでは、クラス/ライブラリを使用する方がよいことがわかります。

于 2009-07-13T19:41:02.027 に答える
0

あなたのコメントに基づいて

まだわかりませんが、ソース言語/フレームワークは Java/Swing で、ターゲットは Flex や Javascript/Ajax フレームワークなどの RIA 言語になると思います。– アラン・ミシェル 3時間前

Google Web Toolkitは一見の価値があるかもしれません。

于 2009-07-04T14:14:20.890 に答える
0

これは、特に個人的なプロジェクトとしては、ほとんど不可能だと思います。しかし、そうするつもりなら、一般的な解決策を考え出そうとすることで、自分の人生をさらに困難にしないでください. 2 つの特定の実際のプログラミング言語を選択し、それらの間の変換の可能性を調査します。これにより明らかになる問題の数にショックを受けると思います。

于 2009-07-04T10:38:16.333 に答える
0

A と B の組み合わせによっては、直接移行するためのツールがいくつかあります。

さまざまな言語やプラットフォーム用のさまざまなリバース エンジニアリングおよびコード生成ツールがあります。ソース言語のすべてのセマンティクスをキャプチャするリバース エンジニアリング ツールを目にすることはかなりまれであり、UML のセマンティクスは明確に定義されていません (UML はさまざまな実装言語にマップするように設計されているため、UML 自体は完全な実行モデルを定義していません)。そのため、ツール間でコードをリバース エンジニアリングして生成することはほとんどできません。A 言語と B 言語の完全なリバース エンジニアリングと完全なコード生成を行うツールが 1 つ見つかるかもしれません。

一般に、異なるプラットフォームで同じイディオムを使用することはないため、ネイティブの B ソリューションに対応するものよりも、B で A コードをエミュレートするものを取得する可能性が高くなります。

于 2009-07-04T10:41:08.510 に答える
0

この回答を参照してください:別のプログラミング言語への翻訳を容易にするために、コードにどのような種類のパターンを適用できますか?

于 2011-03-22T02:31:36.267 に答える
0

Java をソース言語 (変換しようとしている言語) として使用する場合は、Checkstyle AST (ルールを記述するために使用される言語) を使用できます。ソースコードで実行されるすべての操作でツリー構造が得られます。これは、独自のペーサーを作成したり、正規表現を使用したりするよりもはるかに簡単です。

checkstyle-4.4.jar から com.puppycrawl.tools.checkstyle.gui.Main を実行して、Java ソース コードを解析する Swing GUI を起動できます。

于 2009-07-04T11:39:57.597 に答える