タグ

DSLに関するOgachaのブックマーク (3)

  • BooをDIコンテナのDSLとして使う - coma2n’s diary

    BooはDSLの構築に適しているという評判なので、そのへんの事を確かめてみる。 そもそもDSLとはDomain Specific Language(ドメイン固有言語)の略で、C#なんかのプログラミング言語が汎用的なのに対して、特定のドメイン(領域)に特化した言語のことをいう。 例えば、最近巷で話題のSilverlightでUIを記述するマークアップ言語であるXAMLもその一つ。来SilverlightでのUIの構築はC#やVBで行うようになっているけど、コードで記述するのはあまりに冗長で見通しが悪いので、XAMLのような宣言型の形式を取ることでその部分を解決している(冗長なのは変わりないけどね)。 まぁ、要するにコードで書くのが面倒くさいから、なんかもっとわかりやすい表現にして楽しようということだ。 で、DSLがあると便利なもので真っ先に私が思い浮かべるものは「DIコンテナ」だ。 普段S

    BooをDIコンテナのDSLとして使う - coma2n’s diary
  • InfoQ: 複雑な外部DSLを開発する

    Railsフレームワークは、Rubyで書かれたWebアプリケーションを管理するための、RubyベースのDSLと呼ばれています。RailsがDSLと呼ばれる理由の一つは、汎用的な目的のRuby言語とは対照的にRailsがプログラミングでは無いように思えるのに対して、Ruby言語の機能のいくつかがプログラミングをするのに利用されているからです。言語として考えたとき、その基盤がそれ自体で言語となるのにとても有利なスタートであるとして、RailsRuby上で作られました。 Dave Thomas (PragDave)が、Rails全体をDSLとして考えているのかは私にはわかりません。しかし、Railsのいくつかの機能が異なるDSLによって支えられていると彼は言っています。彼が示す例は、DSLとしてのActive Record宣言です。ドメインモデルのエンティティの関連に特有な、いくつかの単純な専

    InfoQ: 複雑な外部DSLを開発する
    Ogacha
    Ogacha 2010/03/19
  • InfoQ: CLR上でのドメイン特化言語の構築

    私の好みは、ほとんどすべての場合、構文の柔軟性が高い言語に基づいた内部DSLに取り組むことです。私は、ほぼ例外なくCLRで作業する傾向があるため、このプラットフォームで動作するホスト言語の使用を望みます。それにより、骨を折って得たCLRに関する知識の多くを再利用できます。この利点を過小評価しないでください。手近に馴染みのある環境を持つことは、極めて重要です。 言語について掘り下げる前に、まず「構文の柔軟性が高い言語」とは一体何でしょうか? 内部DSLに適したホスティング環境を提供するために、言語にはどのような機能が必要でしょうか? 私には自分の考えを示すために適切な手段が必要です。意図的に名前を明らかにし、ドメイン特化の概念を表現し、そして一般に汎用プログラミング言語のアプローチから離れることで、これを達成できます。あなたは第四世代言語(4GL)を作成し、それを容易に行えるようになることを

    InfoQ: CLR上でのドメイン特化言語の構築
    Ogacha
    Ogacha 2010/03/19
  • 1