0

DSL の従来のコンパイラー開発に関して、Eclipse Modeling Framework ( EMF )の補足機能を理解したいと思います。

EMF 開発フローは古典的にメタモデルの定義 (または標準化されたものの再利用; UML など) から始まることを明確に理解していますが、それはコンパイラでの AST 定義 (00 言語など) のアクティビティとそれほど変わらないようです。民間伝承。異種技術が混在しているため、追加の作業が必要になることさえあります。

ただし、メタモデルはグラフとして表示されるため、一般的に AST クラスよりも多くの情報を持っている可能性があり、EMF ツールはコンテキスト チェックのためにこれらの情報を利用できると思います。それが違いですか?努力する価値はありますか?

また、Xtext のようなツールが 2 つのコミュニティの間のギャップを何らかの方法で埋める可能性があることも理解しています。

4

1 に答える 1

0

抽象構文木は純粋なデータ構造です。これとは対照的に、EMFモデルは、EClassifiersとそのEAttributesおよびEReferencesで表されるデータと、EOperationsで表される動作で構成されます。

しかし、私が推測するのは、メタモデルは一般的にASTクラスよりも多くの情報を持っている可能性があるということです

そうです、あなたは正しいです。EMFメタモデルに含まれるもう少し多くの情報は操作です。

努力する価値はありますか?

それはユースケースに大きく依存します。動作を操作するデータと一緒に定義することは、一般的に良いOOプラクティスと見なされます。

于 2013-01-13T13:53:38.227 に答える