Successfully reported this slideshow.

Xtext 紹介

2

Share

Upcoming SlideShare
Eclipse xtext 紹介
Eclipse xtext 紹介
Loading in …3
×
1 of 32
1 of 32

Xtext 紹介

2

Share

Download to read offline

2013年4月26日のEclipseModeling勉強会用に作成したXtext紹介スライド (ハンズオンだったのでスライドとしてはシンプルなものです)

2013年4月26日のEclipseModeling勉強会用に作成したXtext紹介スライド (ハンズオンだったのでスライドとしてはシンプルなものです)

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Xtext 紹介

  1. 1. Xtext  紹介 April,  2013     田中   ビューファイブ  LLC
  2. 2. アジェンダ •  Xtext  概要   – どんなもの   – 準備作業   •  サンプルプロジェクト紹介   – Gree3ng   – Domainmodel  
  3. 3. 今日の説明は表面に ある氷のかけら程度の ものです しかし、使えるであろう   内容を目指します File:Iceberg.jpg  by  Uwe  Kils  CC  BY-­‐SA  3.0 Xtext iceberg
  4. 4. Xtext  概要 •  どんなもの   –  元々は openArchitectureWare(oAW)  のサブプロジェ クトの一つ   –  oAWの持っていた複雑なworkflow記述言語などの簡 素化のため生まれた模様   –  開発元はドイツの itemis  AG  社   –  Eclipse  Modeling  Project  に属する   –  テキスト型  External  DSL  開発フレームワーク   –  Xtend  言語を併用することで、モデル変換(m2m,   m2t)やコード生成を実現
  5. 5. Xtext  概要 •  技術の流れ   – oAW/Xpand/Xtend(1.0)   – oAW/Xpand/Xtend(1.0),  Xtext   – Eclipse/Xtext/Xpand/Xtend(1.0)   – Eclipse/Xtext(2.X)/Xtend(2.0),  Xbase ターゲットを  Java  言語   に絞る方向 ターゲットプログラミング   言語特定せず
  6. 6. Xtext  概要 •  プロジェクト所在場所   –  hXp://www.eclipse.org/Xtext/   –  hXp://www.eclipse.org/xtend/     –  hXp://xtext.itemis.com/   •  国内活動   –  日本Xtextユーザ会   •  hXps://groups.google.com/forum/#!forum/xtext-­‐users-­‐japan   •  hXps://sites.google.com/site/xtextusersjapan/   –  Xtext入門e-­‐book   •  hXp://www.beta-­‐publish.com/  
  7. 7. hXp://www.eclipse.org/Xtext/index.html  
  8. 8. 準備作業   •  インストール   –  updateより全体をダウンロードした方が確実   –  Ecore  Toolsを追加インストールしておくと作成した文法のecoreモデル をビジュアルに確認できる(確認不要の方はインストール不要)   •  設定   –  workspaceのencodingはUTF-­‐8に設定する   –  Run  configura3onを使う   –  入力方法(”«»”)   •  その他   –  Net上に多くのXtext情報があるが、本体が進化し続けているため、最 新版では動作しない場合も往々にしてある   –  YoutubeやVimeoにも動画あり   –  ドキュメンテーションは、まず現住所のものを確認しよう   –  疑問点はマニュアルの他に  forum  や stackoverflow  もチエックしよう  
  9. 9. インストール おすすめ hXp://www.eclipse.org/Xtext/download.html  
  10. 10. Ecore  Tool  インストール これを選択 Help  -­‐>  Install  New  Sogware  …
  11. 11. workspace
  12. 12. Run  Configura3ons これを使います
  13. 13. Xtext  文法例 grammar  org.eclipse.xtext.example.domainmodel.Domainmodel   with  org.eclipse.xtext.xbase.Xbase         generate  domainmodel  "hXp://www.xtext.org/example/ Domainmodel"   org.eclipse.xtext.common.Terminals 言語名の宣言 パッケージ名 .xtextファイル名 別言語とのmixin 生成 Ecore  モデルの Epackage  名宣言 nsURI
  14. 14. Xtext  文法例 Model:    (elements  +=  Element)*;     =  右側の規則が1回だけ呼び出される +=  右側の規則が1回以上呼び出される(結果はリスト相当になります) ?=  右側の式が成立した場合、左側の式が真となる(ブーリアン) ?  0または1(つまりオプション) *  0以上 +  1以上 規則の最後は“;”(セミコロン)で締めくくる 規則名
  15. 15. Xtext  文法例 Element:  Datatype  |  SimpleEn3ty  ;     Datatype:  'type'  name=ID  ;   terminal  ID  :      ('^')?('a'..'z'|'A'..'Z'|'_')  ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;   いずれか ID  は mixin  した別文法で下のように規定される
  16. 16. workflow •  Modeling  Workflow  Engine  2  (MWE2) hXp://www.eclipse.org/Xtext/documenta3on.html#MWE2   ワークフロー例 IWorkflowComponent  を実装
  17. 17. workflow •  Modeling  Workflow  Engine  2  (MWE2) hXp://www.eclipse.org/Xtext/documenta3on.html#MWE2   ワークフローコンポーネント例
  18. 18. Xtend  (2.0) •  Xtend(2.0)={Xpand+Xtend(1.0)}の後継     – Java  との親和性+多くの Syntax  Sugar  他   – Readable  Java  Code  に即時変換   – Template  Expression  が Xpand  相当   – Xtext  のインストールに含まれる  
  19. 19. hXp://www.eclipse.org/xtend/index.html  
  20. 20. サンプルプロジェクト紹介 •  Gree3ng   –  デフォルトの文法   •  Domainmodel   –  簡単  En3ty  モデル   •  Domainmodel2   –  Package  と  Import  追加   •  Domainmodel3   –  Xtend  によるコード生成追加   •  Domainmodel4   –  JVM  言語化(Xbase他)  
  21. 21. DEMO  -­‐  GREETING デフォルトの文法    
  22. 22. Gree3ng
  23. 23. DEMO  DOMAINMODEL 簡単  En3ty  モデル    
  24. 24. Domainmodel
  25. 25. DEMO  DOMAINMODEL Package  と  Import  追加  
  26. 26. Domainmodel2/3
  27. 27. DEMO  DOMAINMODEL Xtend  によるコード生成追加  
  28. 28. DEMO  DOMAINMODEL JVM  言語化(Xbase他)  
  29. 29. Domainmodel4
  30. 30. Tips •  メジャーリリース時に Xtext  の  Documenta3on   を印刷し手元に置いておくといろいろ便利(検 索には  HTML  が便利)   •  Youtube  等の動画サイトに説明ビデオ有り   •  Slideshare  等に説明スライド有り   •  参考になる各種プロジェクト   – hXp://www.eclipse.org/Xtext/community.html
  31. 31. 最後に •  モデリング手法のいろいろ   – UML  &  UML  Profile [UML  Tools]   – Metamodel  [EMF,  Ecore  Tools,  …  ]   – DSL  [Xtext,  GMF,  …  ]   •  道具立てが多少異なるだけで、やっていることは余り違わな いような気がします   •  どういう状況下でどれを使うかという選択になりそうです

×