DSLについて



DSL(Domain Specific Language)

DSLとは

DSL(Domain Specific Language)とは、特定の処理遂行や問題解決に対して特化して設計されたプログラミング言語のことです。

「ドメイン固有言語」「ドメイン特化言語」などとも呼ばれます。


DSLは、汎用プログラミング言語と違って、ある特定の領域(ドメイン)の問題を解決するために作られています。

それゆえ、対象外の領域の問題を解くことは一般的に想定していません。

UNIXではシェルスクリプトなどDSLを古くから利用しており、「リトル言語」もしくは「ミニ言語」と呼んでいました。


DSL例


内部DSLと外部DSL

内部DSLとは、汎用のプログラミング言語で実装され、書き方を工夫して見かけ上の構文を自然言語に近づけた言語です。

利用される場面としては、プロセスやタスクの実行、データ構造の構築、依存関係の定義、他のシステムとの通信などが挙げられます。

ホスト言語のAPI、ライブラリ、ビジネスコードなどはラッピングされるため、技術や知識がなくても容易に利用できるようになります。

Lispは言語自身でDSLを記述することができ、「プログラム可能なプログラミング言語」と言われてます。


外部DSLとは、汎用のプログラミング言語とは別の構文を持った言語です。

ホスト言語とは異なる言語(XML,Makefileのような独自形式)で作成されたDSLを指します。

外部DSLの最大のメリットは,DSL設計者が自由にフォーマットを決められるということです。

技術や知識のない人にとっては、理解しにくいことがあります。


DSLライフサイクル

DSL開発において「DSLのライフサイクル」が提唱されています。

DSLライフサイクルは以下のフェーズから成り立っています。


DSMについて

DSM(Domain-Specific Modeling:ドメイン固有モデリング)とは、グラフィカルなドメイン固有言語(DSL)を使用してシステムの様々な面を表現するシステム設計開発手法です。




スポンサード リンク