2009-06-15 3 views
0

私はDSLについて学んでいます。私は理解できる文脈にそれらを入れようとしています。インターネット広告のための小さなカスタムDSLの例は何ですか?

たとえば、インターネット広告について話しています。これは、私が取り組んでいきたい分野なので、作成する小さなカスタムDSLの例は何ですか?

また、これを実装するために必要な高度な技術的なステップは何ですか?

答えて

1

ドメイン固有言語は、定義上、ドメイン専門家が使用するように設計された言語です。

トピックは非常に大きく、によってセグメント化することができます。

内部または外部
  • - それは、ホストプログラマが記述言語、またはスタンドアロンの一部です。
  • 必須または宣言的 - あなたは "プログラム"の流れを指示しますか、それとも実行する必要があるプロパティを書き留めていますか?
  • 観客は - ルールまたは推論エンジンによって一斉に評価されるルールとして記述することができ、これは、プログラマまたは非プログラマ

(以下を含む)のDSLの大きな部分集合によって書き込まれます。

インターネット広告の分野では、特定のページに表示される広告を決定する一連のビジネスルールが必要になる場合があります。

if page.popularity is high then use ads of account[valuable] 

if page.topic is not NSFW then use ads of topic[not NSFW] 

if browser does not support flash then use ads of capability[javascript] 

このような場合、きれいで人気のあるページは、最高のお支払いのアカウントから広告を受け取り、仕事に安全です。

これがあなたにとって響き合ったアプローチであれば、既存のルールエンジンを統合することができます。エンドユーザーが開発者でない場合は、DSLと同様に特定の量のツーリングを提供する必要があるため、これは特に賢明です。

1

私はVS2005のDSLツールを昨年使用していました。

それを学ぶために、あなたは スティーブ・クック、ガレス・ジョーンズ、スチュアート・ケントとアラン・キャメロンウィルズで「のVisual Studio DSLツールでドメイン固有の開発」 を読むべきです。

これはエントリポイントであり、いくつかの高度なトピックを含むテクノロジに関するあらゆる側面を網羅しています。

0

ゲーム後半に少し、しかし...

Googleは、特定の広告は、Googleの広告主が実行することができ、そのようなDSLを持っています。通常のGoogle検索(部分一致[引用符で囲まれていないテキスト]、フレーズ一致[引用文字シーケンス]、完全一致[括弧内の文字列])と、一致を排除するために使用されるGoogle検索である「除外キーワード。これは一連のフォームを通じて入力されるため、プログラミングのようには見えませんが、入力されるのは最終的にかなり簡潔なテキスト文字列です。それは非常に巧妙なDSL IMHOではありません(私は実際にそれを使用しなければなりませんでした、それはローエンドの正規表現とハイエンドの自然言語解析を含むことを望みます)。それは非常にリアルで、何百万人もの非プログラマ"

DSLを実装するには2つのステップがあります(解析内容を理解するため)。その意味を機械化します。構文解析はかなりよく理解されています。スタックオーバーフローの周囲で浮動小数点を解析する際の質問を参照してください。機械化はずっと難しい。私たちが "Google"と考えるのはで、そのDSLの機械化は主にです。

関連する問題