タグ

dslに関するfoaranのブックマーク (3)

  • DSL 概要 (DSL (Domain Specific Language))

    最近は、互いの利点・欠点を補うために、 両者を混在させた開発というのがはやりつつあります。 言語といっても・・・ まあ、専用言語といっても、そんなたいした話ではないんですね。 そりゃ、中には、コンパイラ作りからやるような格的な人もいますけど。 多くの場合は、「設定ファイル」とか「ライブラリ」程度のものです。 有名なところでは、Apache の設定ファイルなんかは結構立派な構文を持っていますし、 emacs の設定にいたっては LISP 言語で書きます。 ああいうのも、一種の DSL です。 ということで、 まず、「設定ファイル」とか「ライブラリ」が DSL の第1歩という話から始めてみたいと思います。 抽象定義と具象定義 DSL と設定ファイル、ライブラリの関係性を話す前に、 ちょっと補足的な説明をしておきます。 まあ、アプリケーションの設定を外部ファイルに持ったりすることは結構あるわけ

  • モデル駆動開発(DSL (Domain Specific Language))

    概要 まずはじめに、「モデル化って何?」って話から。 モデル化とは モデル化とは、 現実の問題から、問題解決に必要な部分だけを抜き出して簡単化・抽象化することです。 例えば、物理学なんかでは、物体の運動を考える場合に、 質点(体積 0 の動く点)というものを考えます。 物体の回転や空気抵抗などを無視して考える(逆に言うと無視しても十分な精度が得られる)場合、 物体の体積を考える必要はないので、 体積は無視してしまおうということです。 これが物事の簡単化・抽象化、すなわちモデル化です。 もし物体の回転も考慮する必要がでてくれば、 剛体(どんな力をかけても絶対に変形しない物体)を使ってモデル化します。 さらに、物体の変形や流動性まで考慮する必要があるなら、流体モデルを使います。 質点 → 剛体 → 流体と、 右側に行くほど扱える物理現象の幅は広がりますが、 理論も計算も難しくなります。 回転も

    モデル駆動開発(DSL (Domain Specific Language))
  • Interpreterパターンとミニ言語 - 当面C#と.NETな記録

    GoFの23デザインパターンの一つ、インタプリタパターン。最近、インタプリタパターンを使ってミニ言語を実装したので、その際に参考にした資料をまとめてみました。実装については触れませんので、各記事を参考にしてください。 インタプリタパターンは頻繁に使うパターンではないけれど、知っているとものすごく役に立ちます。 GoF23パターンの中でも用途がとびきり具体的で、そのため理解も容易です。ほかの応用範囲の広い(そしていまひとつピンとこないような)デザインパターンとは毛色の異なるものです。 名前の通り、インタプリタを実装するためだけのパターンです。特にミニ言語向きで、複雑な言語向きではありません。ミニ言語を解析したり、実行/評価するために使います。 小難しく言うと構文木(Abstract Syntax Tree)を表現して、構文木への操作を簡単に記述する方法です。主な用途は構文木の解析と実行ですが

    Interpreterパターンとミニ言語 - 当面C#と.NETな記録
  • 1