2011年8月18日木曜日

DSL開発を構文から始めるかモデルから始めるか

Xtextを使ったDSL開発は、XtextでDSL構文定義から始める方法と、EMFでモデル定義から始める方法の2種類があります。

DSL開発ということで、何よりもまずシンタックスを設計したい人にとっては、まず構文定義から始めて、徐々にモデル=内部表現形式について考えたいかもしれません。Xtextでは、構文定義と同時にモデルの定義/マッピングも行うことができまるので、DSL構文から自然にモデルを導出できる利点があります。

一方で、シンタックスよりもモデル=内部表現形式の設計を重んじる人にとっては、まずモデル設計から始めて、後で構文定義を作る方がしっくり来るかもしれません。Xtextでは、既存EMFモデルからそれに対応する構文定義を仮生成してくれるので、モデルに対応するDSL構文を簡単にできる利点があります。

Xtextはこのどちらのアプローチをとることもできます。

私の今のプロジェクトでは、EMFモデルを使用するサービスのテストデータ作成用にXtextを使ったので、後者のスタイルを採用しましたが、さしあたってXtextの使い方を覚えるには、前者の構文定義から始めるのが手軽でしょう。

0 件のコメント:

コメントを投稿