2012-03-19 11 views
0

DSLがいくつかの特定の分野で本当に強力であると聞きました。だから私は私のスキルセットに入れることができるかどうかを知りたい。明白な言葉でDSLは何ですか?

最初の問題が出てきました.DSLとは何ですか?いくつかの検索を行った後、GroovyがDSLをうまくサポートしているようです。それから、Groovyのドキュメントを読んで、自分で試してみてください。

DSLはテキスト、XMLからなる設定ファイルの一部であり、Groovyのようなツールを使用して解析するという印象を受けました。これは魔法のようにいくつかのメソッドや関数を呼び出すことができます。何が起こった?

私は何かを読んだが、それを直感的に理解することはできない。どんな助け?

答えて

4

thisを読んだか?マーティン・ファウラー(Martin Fowler)は、主題と偉大な作家の権威です。誰もが最初の段落で改善するのではないかと思う。あなたがまだそれを取得しない場合は、それをいくつかの時間を与え、数回記事を再読してください。私はJetBrainのMPS

ブックに探してお勧めします

は圧倒的なことかもしれないが、relatively new one availableがあります。

そして、それを解析し、それは魔法のようにあなたが 呼び出すことができますいくつかのメソッドや関数になって私はXMLS、DSLは、構成のほんのいくつかの種類のテキストからなる ファイルであるという印象を持って、あなたは にGroovyのようないくつかのツールを使用しています。何が起こった?

あなたの印象は完全に正確ではないと思います。私はGroovyと解析とすべての実装の詳細を今は忘れてしまいます。 DSLが解決しようとしている問題に注目してください。

DSLの設計者は、Groovyのか、JavaやC#などのプログラミング言語と見知らぬある専門家は、彼らは問題を解決彼らの方法を説明シンプル言語として認識することになることを擬似プログラミング言語を思い付くしようとします。

DSLは、おなじみの用語と概念を使用しています。は、そのドメインに関する知識があります。

DSLは、基本的な実装の詳細からユーザーを保護し、問題をどのように攻撃するかに集中できます。

DSLは、ビジネスユーザー(開発者ではありません)の便宜のために書かれています。

これを念頭に置き、残りは実装です。目を覚ます....

+0

私は、大きな画像を最初に取得し、一般的なDSLの仕組みを理解しようとしています。 – George

+0

マーティン・ファウラーの絵の具よりも大きなイメージが得られるとは思わない。 – duffymo

+0

私はちょうどマーティンファウラーのことを理解したいと思います。私はできません。 – George

2

ドメイン特有の言語(DSL)は、完全には紹介されていないプログラミング言語です。要点は、汎用言語でのプログラミングよりもDSLでのプログラミングが簡単で、バグが発生しにくいことです。 「ドメイン固有言語」の「ドメイン」は、その言語が使用される特定の目的を指します。

たとえば、電卓が+ - *と数字だけで使用する言語は、ドメイン固有の言語と呼ぶことができます。それはプログラムが決してセグメンテーション、クラッシュ、永遠にループするなどという点で、通常のプログラミング言語よりも利点があります。ドメインの他の例として、Web開発があります。たとえば、Ur/WebはWebアプリケーションを構築するためのDSLです。 SQLは、データベースドメイン固有の言語です。

Groovyについてよく分かりませんが、DSLを作成するための特別なツールがあるようです。基本的に、DSLを作成するには、何らかのセマンティクスとともに構文を指定する必要があります。どのようにGroovyがこれを行うのか、私は知らない。

2

DSLは特定のドメイン専用の言語です。たとえば、よく知られているCSSは、ドキュメントの表示と書式設定に役立つドメイン固有の言語です。

Groovyを使用すると、選択したドメインに焦点を当てた独自のDSLを作成できます。これは、この分野のニーズを満たす共通の用語を使用することを意味します。この言語は、必ずしも技術的ではない(たとえば会計士など)このド​​メインの人々が容易に理解できるようになります。場合によっては、非プログラマが使用することに重点を置いています。特にGroovyは、エンドユーザーがVBでExcelと同じように動的にコードスクリプトを追加できるようにする動的言語です。設定ファイルを使用します。

Martin Fowlerの出版物については、この件に興味があれば掘り下げて調べてください。

+0

ありがとうございます。私は彼の本を注文しました。 – George

+0

-1 - この回答はトートロジーです:http://en.wikipedia.org/wiki/Tautology – duffymo

+0

"DSLは特定のドメイン専用の言語です"。 – duffymo

関連する問題