Contenu connexe Similaire à Eclipse xtext 紹介 (20) Plus de Akira Tanaka (20) Eclipse xtext 紹介2. 自己紹介
• 本日の話題と関係しそうなこと
– 以前
OMG
のモデリング標準作成に参加していました
• UML
や
MDA
はある程度なじんでいます
– Eclipse
Conference
には
2
回参加したことがあります(モデリング系セ
ション主体)
– 本年5月に Xtext
CON
がありそうなので、参加したいと思っています
– 現在の対外的活動
• Xtext
ユーザ会
• Eclipse
Modeling
Project
勉強会
• Eclipse
Regional
Community/Japan
(名ばかり)
3. Message
from
Xtext
Project
Lead
Good
evening
everybody!
I
hope
you’ll
have
a
good
5me
hearing
about
Eclipse
Xtext.
I
am
very
pleased
to
hear
that
there
is
so
much
interest
in
this
topic
in
Tokyo!
You
are
all
very
welcome
to
try
this
framework
out
and
in
case
you
have
any
ques5ons
feel
free
to
ask
them
in
the
ac5ve
online
forum
at
Eclipse.
Also
in
case
you
consider
basing
some
serious
business
on
it,
you
should
know
that
my
company
itemis
offers
professional
services,
like
trainings
and
onsite
consul5ng.
Have
fun
and
keep
the
abstrac5ons
sound!
Best
Regards,
Sven
EKinge
(Xtext
project
lead)
4. アジェンダ
• Xtext
で出来ること
これだけは見てから帰ってください
• Xtext
– 概要
– 使い方
出来るだけ短くします
本日はこれを中心にお話します
• Sample
Projects
– 例題
• 時間に余裕があれば
– モデリングは
UML
だけじゃない・・・という話
– EMF/GMF
まわりの進化の話
5. 簡単にいうと
• Xtext
は
– Eclipse
環境で動作する
– テキスト型 External
DSL
開発フレームワーク
• DSL
エディタがほぼ自動的に作成できてしまう
• コード生成のための仕組みもある
8. Xtext
概要
• プロジェクト所在場所
– hIp://www.eclipse.org/Xtext/
– hIp://www.eclipse.org/xtend/
– hIp://xtext.itemis.com/
まずはここから
• 国内活動
– 日本Xtextユーザ会
• hIps://groups.google.com/forum/#!forum/xtext-‐users-‐japan
• hIps://sites.google.com/site/xtextusersjapan/
– Xtext入門e-‐book
• hIp://www.beta-‐publish.com/
11. 準備作業
• インストール
– updateより全体をダウンロードした方が確実
– Diagram
Editor
for
Ecore
を追加インストールしておくと作成した文法
の ecore
モデルをクラス図的に確認できる(確認不要の方はインス
トール不要)
• 設定
– workspaceのencodingはUTF-‐8に設定する
– Run
configuraUonを使う
– 入力方法(”«»”)
• その他
– Net上に多くのXtext情報があるが、本体が進化し続けているため、最
新版では動作しない場合も往々にしてある
– YoutubeやVimeoにも動画あり
– ドキュメンテーションは、まず現住所のものを確認しよう
– 疑問点はマニュアルの他に
forum
や stackoverflow
もチエックしよう
19. Xtext
文法例
規則名
?
*
+
0または1(つまりオプション)
0以上
1以上
Model:
(elements
+=
Element)*;
規則の最後は“;”(セミコロン)で締めくくる
=
右側の規則が1回だけ呼び出される
+=
右側の規則が1回以上呼び出される(結果はリスト相当になります)
?=
右側の式が成立した場合、左側の式が真となる(ブーリアン)
20. Xtext
文法例
いずれか
Element:
Datatype
|
SimpleEnUty
;
Datatype:
'type'
name=ID
;
ID
は mixin
した別文法で下のように規定される
terminal
ID
:
('^')?('a'..'z'|'A'..'Z'|'_')
('a'..'z'|'A'..'Z'|'_'|'0'..'9')*;
21. サンプルプロジェクト紹介
• GreeUng
– デフォルトの文法
• Domainmodel
– 簡単
EnUty
モデル
• Domainmodel2
– Package
と
Import
追加
• Domainmodel3
– Xtend
によるコード生成追加
• Domainmodel4
– JVM
言語化(Xbase他)
24. GreeUng
• デモで見て貰うポイント
– プロジェクト作成
– デフォルト文法定義
– ArUfacts
生成(Workflow
実行)
– エディタ起動(Run
ConfiguraUon)
– エディタ動作(コード補完)
37. ここまでの例題について
• Domainmodel
から
Domainmodel4
まで、すべ
て Xtext
DocumentaUon
の
Gevng
Started
セ
クションで解説されているものです
– 実際に Xtext
をインストールし、これら例題をご自
分で動かしてみることをオススメします
38. Example
Projects
• 同梱されている
Example
Projects
– Domainmodel
• いろいろなコードが埋め込まれているので参考になり
ます
– FowlerDSL
(Statemachine)
• 同上
– ArithmeUcs
(計算)
– Xbase
Tutorial
– Xtend
Tutorial
Java
コード生成をやりたい方は
これらも試して下さい
42. Layers
of
Models
M3
Meta-‐meta
model
MOF
(CMOF,
EMOF/ecore)
conform
to
Metamodel
M2
e.g.
UML,
SOA,
BPMN,
…
conform
to
Model
Instance
of
Instance
or
Object
Model
M1
e.g.
UML
models,
SOA
models,
BPMN
models,
…
M0
43. Eclipse
と Modeling
• EMF
関連プロジェクト(一部)
EMF
Text
Xtext
Ecore
Tools
…
Xcore
GMF
GraphiU
Spray
EmfaUc
EMF
…
+
GEF
Papyrus
Time
44. DSLの定義
• Domain-‐Specific
Languages
(DSLs)
の定義は
MarUn
Fowler
さんの本では次のようになって
います
– “a
computer
programming
language
of
limited
expressiveness
focused
on
a
parUcular
domain”
45. DSLの分類
• Internal
(or
embedded)
と External
– ホストとなるプログラミング言語を持つものが
Internal
(or
embedded)
DSLs
– ホストとなるプログラミング言語を持たないものが
External
DSLs
• Graphical
と Textual
– モデルを図式表現するのが Graphical
DSLs
– モデルをテキスト表現するのが Textual
DSLs
53. 違うのは
• グラフィカル要素有無
• Tooling
– GMF
• 直観的で分かり易いグラフィカルエディタとなる
• ツール習得時間が長く、グラフィカルエディタ作成に必要な手数が多い
• コード生成は別途
– Xtext
• シンプルで一見テキストエディタ(コード補完など有)
• ツール習得時間が長い(?)
• コード生成にはXtend
• 振る舞い記述
– プロセス記述的なものはグラフィカル記述が優位かも?
• Scale
– 要素数が多くなったときに扱い易いのはどちら?(テキスト型?)
54. Tips
• メジャーリリース時に Xtext
の
DocumentaUon
を印刷し手元に置いておくといろいろ便利(検
索には
HTML
が便利)
• Youtube
等の動画サイトに説明ビデオ有り
• Slideshare
等に説明スライド有り
• 参考になる各種プロジェクト
– hIp://www.eclipse.org/Xtext/community.html
60. 最後に
• Xtext/Xtend
はかなり「使える」道具です
• 皆さんの開発ツールの一つに加えて貰えれば幸
いです
• 日本 Xtext
ユーザ会
– hIps://sites.google.com/site/xtextusersjapan/
– hIps://groups.google.com/forum/#!forum/xtext-‐users-‐japan
• Eclipse
Modeling
勉強会
– hIps://sites.google.com/site/eclipsemodelingsigjapan/
– hIps://groups.google.com/forum/#!forum/eclipse-‐modeling-‐sig-‐japan