Friday, April 10, 2009

QCon Tokyo 2009 Day1 General Session 1 ドメイン固有言語 -その役割- Martin Fowler

自分のためのメモ書きです。

スピーカーはMartin Fowlerさん
詳しくはつぎのURLにあるらしいのでそちらを。
http://martinfowler.com/dslwip/
http://martinfowler.com/dslwip/UsingDsls.html


DSLとしてはmake, ant, SQL, HQLがあります。

たとえば日常の動作を表現する。
次に、ステートマシンとして表現する
次に、クラス図に展開します。
次に、コードで表現します。

このコードでの表現の欠点その1
ステートマシンを表現していることがわかりにくい
コードは見て何をしているかわからなければならない 

このコードでの表現の欠点その2
コンパイルが必要になる

コードをXMLで表し欠点その2を解決
DSL(Ruby)で記述し欠点その1を解決

DSLは昔はlexとyaccで作っていた。


DSLの分類
1.External DSL
using lex and yacc
すっきり
UNIXコミュニティ
XMLはExternal DSLです。
Passiveなデータ記述言語

2.Internal DSL
使用ホスト語の制約を受ける
without parser
ex lisp

APIとの違い
Java code->コマンドクエリ型
Fluent APIメソッドのチェーン


DSLとは
定義
a computer programming language of limited expressiveness focused on particular domain

言語であり
コンピュータプログラミング可能
限定された表現(それが強み)
限定された領域


位置づけ
DSL script -- parse --> semantic model -- generate optional --> code

新しい視点・考え方
Lanugage Workbenches

MS DSL Tools
Meta Edit+
xtext(Eclipse plugin)
intentional
MS Oslo
projectional Editing


本は来年の中頃出す予定


No comments:

# スクラムマスターを雇う時に聞いてみるとよい47個の質問

  # スクラムマスターを雇う時に聞いてみるとよい47個の質問 スクラムマスターへの質問というPDFがあるので、回答してみた。 定期的に自分の回答がどう変わっていくのか楽しみだ。 Scrum Master Interview Questions: Free Download of...