Eclipse modeling 勉強会 dslについて
Upcoming SlideShare
Loading in...5
×
 

Eclipse modeling 勉強会 dslについて

on

  • 1,329 views

2012年12月7日のEclipse Modeling勉強会で「DSLについて」として発表した内容です。

2012年12月7日のEclipse Modeling勉強会で「DSLについて」として発表した内容です。

Statistics

Views

Total Views
1,329
Views on SlideShare
1,329
Embed Views
0

Actions

Likes
1
Downloads
5
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Eclipse modeling 勉強会 dslについて Eclipse modeling 勉強会 dslについて Presentation Transcript

  • Graphical/Textual DSLs (Xtext と GMF を例として) 田中明 akira.odp@gmail.com 日本Xtextユーザ会
  • DSLの定義• Domain-Specific Languages (DSLs) の定義は Martin Fowler さんの本では次のようになって います – “a computer programming language of limited expressiveness focused on a particular domain”
  • DSLの分類• Internal (or embedded) と External – ホストとなるプログラミング言語を持つものが Internal (or embedded) DSLs – ホストとなるプログラミング言語を持たないものが External DSLs• Graphical と Textual – モデルを図式表現するのが Graphical DSLs – モデルをテキスト表現するのが Textual DSLs View slide
  • Graphical DSL in Eclipse• Graphical Modeling Framework (GMF) は Eclipse 環境で Graphical DSL を作成するため のフレームワーク• 現在は Graphical Modeling Project (GMP) に 所属 – Graphical Modeling Framework (GMF) Notation – Graphical Modeling Framework (GMF) Runtime – Graphical Modeling Framework (GMF) Tooling – Graphiti View slide
  • GMF• ダッシュボード
  • GMF 普通の人なら くじけ出す領域• ダッシュボード
  • GMF で実現できるエディタ例 Graphical Modeling Framework/Tutorial/Part 4 より
  • そのための Ecore モデルGraphical Modeling Framework/Tutorial/Part 1 より引用
  • Tutorial• ・・・・ にしては難しすぎる Ecore モデル• そこで、極端に簡単な例に変更
  • GMF で実現できるエディタ例
  • そのための Ecore モデル
  • Graphical DSL Editor• ダイアグラムは Node と Link から構成される• 通常 Node には種類がある• 通常 Link は Node 間を結び種類がある• 「Node と Link」 のダイアグラムは、先の最低 限 Ecore モデルをベースに作成できる – 後はカスタマイズや制約追加など
  • Textual DSL in Eclipse• Xtext は Eclipse 環境で Textual DSL を作成す るためのフレームワーク• http://www.eclipse.org/Xtext/• 現在は Textual Modeling Framework に所属 – GMFで扱ったNetworkをXtextで記述すると ・・・
  • Xtext EBNF的な文法定義
  • Xtext
  • Xtext• Xtend言語 – Xtextとセットになっている言語 – DSLで書いたモデルが処理の対象 – Javaソースコードを生成可能
  • この段階では同じレベル
  • この段階でも同じレベル
  • 違うのは• Ecore モデルのグラフィカル要素有無• Tooling – GMF • 直観的で分かり易いグラフィカルエディタとなる • ツール習得時間が長く、グラフィカルエディタ作成に必要な手数が多い • コード生成は別途 – Xtext • シンプルで一見テキストエディタ(コード補完など有) • ツール習得時間が長い • コード生成にはXtend• 振る舞い記述 – プロセス記述的なものはグラフィカル記述が優位か?• Scale – 要素数が多くなったときに扱い易いのはどちら?(テキスト型?)
  • 改善に向けての努力• Xtext – 以前よりテキスト型モデルをダイアグラムに変換する 努力が続けられている – A fresh look at graphical editing @ eclipsecon 2012 (http://www.slideshare.net/schwurbel/a-fresh-look- at-graphical-editing-12183802) – GMFに近づけるアプローチやモデルの可視化を目指 すアプローチなどある• GMF – 以前よりGMF簡略化・より良いGMFへの努力が続け られている – 例: Graphiti, EuGENia/Epsilon
  • DSLが必要になった時• 選択肢 – UML Profile • オープン:Papyrusなど • 商用UMLツール – Graphical DSL • オープン:GMFなど • 商用グラフィカルDSLツール – Textual DSL • オープン:Xtext • 商用テキスト型DSLツール
  • EuGENia• 余りカバーされていない EuGENia• 特長 – Ecore モデルを テキスト型言語 Emfatic で表現し アノテーションを追加するだけで GMF のダイアグ ラムエディタを生成 – 実現・機能範囲は限定的 • 実験的・プロトタイプ的に使うのであれば十分
  • EuGENia• 手順 – Epsilonパッケージのインストール – GMFプロジェクトの作成 – Ecore Toolsを用いてEcoreモデルを作成 – コンテキストメニューでEmfatic形式に変換 – アノテーション追記 – コンテキストメニューでモデルエディタ生成
  • プロセスモデル記述例ほぼ Node と Link だけ
  • モデルが出来たら• ソフトウェア開発プロセスの成果物として利用 – M2M – M2T • いろいろなツールがありますが、最後の手段として XSLT を使う手もあります。• 次のお話へ続く!