10

これらのフレームワークはどちらもメタモデルを扱います。

  • XText (エクリプス)
  • MPS(ジェットブレイン)

それらのツールを使用したメタモデル変換に基づく実用的なアプリケーションの例はありますか?

4

3 に答える 3

11

MPS を使用して全体のバグ トラッカーを作成しました。コード生成は目標ではなく、実行可能なコードを取得することを意味します。目標は、最小限の労力で DSL を作成できるツールを開発者に提供することです。

MPS の優れた点は、言語用の IDE も提供されることです。また、作成するさまざまな DSL は互換性があります。つまり、Java をクロージャーで拡張する DSL と、外部メソッドを有効にする別の DSL を作成でき、これらの拡張機能は連携して動作します。

于 2010-10-07T18:01:56.400 に答える
7

それらは、メタモデルを格納するドキュメントの点で異なります。

XTextに関して、この記事では、独自のプログラミング言語とドメイン固有言語(DSL)を作成する場合の1つの使用法を説明します。

言語を取得したら、それを処理する必要があります。これは通常、モデルを別の表現に変換することを意味します。
この変換を担当する機能はジェネレーターと呼ばれ、一連の変換テンプレート(eG XPand)とそれらを実行するいくつかのコードで構成されます。あるイベントでは、モデルが読み込まれ、変換が適用されてコードが生成されます。

このようなモデル変換の例

dot3zestは、DOT to Zestインタープリター(DOT文法用に生成されたXtextスイッチAPIを使用するようになりました)に付属しており、アドホックDOTエッジ定義をサポートしています。

代替テキスト


MPSに関しては、Java、C#、C ++、XMLなどのGPLへ のこのコード生成のような一連の実用的な例があります。

代替テキスト
(ソース:googlecode.com

于 2010-07-28T19:19:03.703 に答える
2

XText の主な使用法は、まず、定義した文法から DSL を作成し、Eclipse ワークベンチを自動生成することだと思います。次に、DSL に記述されたスクリプトを Java に変換できます。XText2 の組み込み式はプラスです。このフレームワークは、作成した DSL の記述をサポートする無料の IDE を提供します。そして、DSL は提供する究極の製品です。現実世界からルールとロジックを抽象化するために使用できます。たとえば、私たちのプロジェクトでは、製品構成ルールです。それらを知っているのは専門家だけなので、あなたが作成する DSL にそれらを書き込んでいます。

于 2011-08-18T13:25:19.050 に答える