浅海 智晴(あさみ ともはる)
最近はすっかりScalaプログラマ。代表作はXML SmartDoc(XML文書処理システム),Relaxer(XML/Javaスキーマコンパイラ)。現在はScala DSLモデルコンパイラSimpleModelerを開発中。近著は「上流工程UMLモデリング」(日経BP),「マインドマップではじめるモデリング講座」(翔泳社)。モデル駆動開発×クラウド・コンピューティングの研究プロジェクトedge2.cc(Edge to Cloud Computing)を中心に活動中。
今回の記事の目次
  1 はじめに
2 SimpleModeler 2.1 SimpleModelerの機能 2.2 モジュール構成 2.3 SimpleModelerの動作 2.4 ホームページ
3 SimpleModelerのDSL 3.1 CSVから移入 3.2 状態機械 3.3 Scala DSLの効用 3.4 コンポーネント組み立てのDSL
4 Scalaの感想 4.1 DSLのホスト言語として 4.2 モデル・コンパイラの実装言語として
5 まとめ

1 はじめに

 筆者がScalaでプログラミングを始めたのが昨年7月なので,かれこれ9カ月になりますが,筆者がこれまで使ってきた数々のプログラミング言語の中で最高に使いやすいというのが実感です。

 この9カ月間Scalaでプログラミングしていたのは,Scala DSLを用いたモデル・コンパイラSimpleModelerです。SimpleModelerは,Scala DSLからJava,Grails,Google App Engineの実装やクラス図やステートマシーン図を含んだWeb仕様書を生成します。

 本記事では,このSimpleModelerを素材に,Scalaを用いて何ができるのか,Scalaを用いると何がよいのか,という切り口でScalaを紹介していきたいと思います。

2 SimpleModeler

 Scalaの話に入る前に,本記事で素材として使用するモデル・コンパイラSimpleModelerについて駆け足で説明していきましょう。

Agile Modegramming for Cloud

 SimpleModelerは,SimpleModelingという筆者が整備しているオブジェクト・モデリング手法の構成要素の一つです。SimpleModelingでは,「Agile Modegramming for Cloud」(図1)をビジョンとして掲げています。

 Modegrammingとは,テキストDSL(Domain Specific Language)&モデル・コンパイラによってモデリングとプログラミングを融合する技術です。「Aigle Modegramming for Cloud」はModegrammingによって,アジャイル開発,オブジェクト・モデリング,モデル駆動開発を束ね,来るべきクラウド・コンピューティングのアプリケーション開発の基盤技術として整備することを目指しています。

図1●Agile Modegramming for Cloud
図1●Agile Modegramming for Cloud
[画像のクリックで拡大表示]

 SimpleModelerは,ツールとして単体で使用することもできますが,SimpleModelingの土台の上で使用するとより高い効果を得ることができます。